UNPKG

@uiw/react-baidu-map-ground-overlay

Version:

Baidu Map ground-overlay Components for React.

48 lines (47 loc) 1.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useGroundOverlay = useGroundOverlay; var _react = require("react"); var _reactBaiduMapMap = require("@uiw/react-baidu-map-map"); var _reactBaiduMapUtils = require("@uiw/react-baidu-map-utils"); function useGroundOverlay() { let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; const [groundOverlay, setGroundOverlay] = (0, _react.useState)(); const { bounds, opacity, imageURL, displayOnMinLevel, displayOnMaxLevel } = props; const { map } = (0, _reactBaiduMapMap.useMapContext)(); (0, _react.useEffect)(() => { if (!groundOverlay && bounds && map) { const instance = new BMap.GroundOverlay(bounds, { opacity, imageURL, displayOnMinLevel, displayOnMaxLevel }); map.addOverlay(instance); setGroundOverlay(instance); return () => { if (map && instance) { map.removeOverlay(instance); } }; } // eslint-disable-next-line react-hooks/exhaustive-deps }, [map]); (0, _reactBaiduMapUtils.useVisiable)(groundOverlay, props); (0, _reactBaiduMapUtils.useEventProperties)(groundOverlay, props, ['Click', 'DblClick']); (0, _reactBaiduMapUtils.useProperties)(groundOverlay, props, ['Bounds', 'Opacity', 'ImageURL', 'DisplayOnMinLevel', 'DispalyOnMaxLevel']); return { groundOverlay, setGroundOverlay }; }