@uiw/react-amap-hawk-eye-control
Version:
鹰眼控件,用于显示缩略地图,显示于地图右下角,可以随主图的视口变化而变化,也可以配置成固定位置实现类似于南海附图的效果。
44 lines • 1.28 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 [hawkEyeControl, setHawkEyeControl] = useState();
var {
offset,
visiable,
visible
} = props,
other = _objectWithoutPropertiesLoose(props, _excluded);
var {
map
} = useMapContext();
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
};
}