UNPKG

@uiw/react-amap-hawk-eye-control

Version:

鹰眼控件,用于显示缩略地图,显示于地图右下角,可以随主图的视口变化而变化,也可以配置成固定位置实现类似于南海附图的效果。

44 lines 1.4 kB
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 }; }