@uiw/react-amap-hawk-eye-control
Version:
鹰眼控件,用于显示缩略地图,显示于地图右下角,可以随主图的视口变化而变化,也可以配置成固定位置实现类似于南海附图的效果。
50 lines (49 loc) • 2.01 kB
JavaScript
;
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
};
}