UNPKG

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

Version:

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

50 lines (49 loc) 2.01 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; Object.defineProperty(exports, "__esModule", { value: true }); exports.useHawkEyeControl = useHawkEyeControl; var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _react = require("react"); var _reactAmapUtils = require("@uiw/react-amap-utils"); var _reactAmapMap = require("@uiw/react-amap-map"); var _excluded = ["offset", "visiable", "visible"]; function useHawkEyeControl() { var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var _useState = (0, _react.useState)(), _useState2 = (0, _slicedToArray2["default"])(_useState, 2), hawkEyeControl = _useState2[0], setHawkEyeControl = _useState2[1]; var offset = props.offset, visiable = props.visiable, visible = props.visible, other = (0, _objectWithoutProperties2["default"])(props, _excluded); var _useMapContext = (0, _reactAmapMap.useMapContext)(), map = _useMapContext.map; (0, _react.useEffect)(function () { if (map && !hawkEyeControl) { var instance; map.plugin(['AMap.HawkEye'], function () { instance = new AMap.HawkEye((0, _objectSpread2["default"])({ offset: offset }, other)); map.addControl(instance); setHawkEyeControl(instance); }); } return function () { if (hawkEyeControl && map) { map && map.removeControl(hawkEyeControl); setHawkEyeControl(undefined); } }; }, [map, hawkEyeControl]); (0, _reactAmapUtils.useVisiable)(hawkEyeControl, visible !== null && visible !== void 0 ? visible : visiable); return { hawkEyeControl: hawkEyeControl, setHawkEyeControl: setHawkEyeControl }; }