@uiw/react-amap-hawk-eye-control
Version:
鹰眼控件,用于显示缩略地图,显示于地图右下角,可以随主图的视口变化而变化,也可以配置成固定位置实现类似于南海附图的效果。
44 lines • 1.4 kB
JavaScript
import _extends from "@babel/runtime/helpers/extends";
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose";
var _excluded = ["offset", "visiable", "visible"];
import { useEffect, useState } from 'react';
import { useVisiable } from '@uiw/react-amap-utils';
import { useMapContext } from '@uiw/react-amap-map';
export function useHawkEyeControl(props) {
if (props === void 0) {
props = {};
}
var _useState = useState(),
hawkEyeControl = _useState[0],
setHawkEyeControl = _useState[1];
var _props = props,
offset = _props.offset,
visiable = _props.visiable,
visible = _props.visible,
other = _objectWithoutPropertiesLoose(_props, _excluded);
var _useMapContext = useMapContext(),
map = _useMapContext.map;
useEffect(() => {
if (map && !hawkEyeControl) {
var instance;
map.plugin(['AMap.HawkEye'], () => {
instance = new AMap.HawkEye(_extends({
offset: offset
}, other));
map.addControl(instance);
setHawkEyeControl(instance);
});
}
return () => {
if (hawkEyeControl && map) {
map && map.removeControl(hawkEyeControl);
setHawkEyeControl(undefined);
}
};
}, [map, hawkEyeControl]);
useVisiable(hawkEyeControl, visible != null ? visible : visiable);
return {
hawkEyeControl,
setHawkEyeControl
};
}