UNPKG

@uiw/react-baidu-map-tile-layer

Version:

Baidu Map tile-layer Components for React.

61 lines (60 loc) 1.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useTileLayer = useTileLayer; var _react = require("react"); var _reactBaiduMapMap = require("@uiw/react-baidu-map-map"); /** * https://lbsyun.baidu.com/jsdemo.htm#g0_2 */ function useTileLayer() { let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; const [tileLayer, setTileLayer] = (0, _react.useState)(); const { transparentPng = true, tileUrlTemplate, copyright, zIndex } = props; const { map } = (0, _reactBaiduMapMap.useMapContext)(); (0, _react.useEffect)(() => { if (map && !tileLayer) { const instance = new BMap.TileLayer({ transparentPng, tileUrlTemplate, copyright, zIndex }); if (!!props.getTilesUrl) { instance.getTilesUrl = props.getTilesUrl; } if (!!props.getCopyright) { instance.getCopyright = props.getCopyright; } map.addTileLayer(instance); setTileLayer(instance); return () => { if (instance) { map.removeTileLayer(instance); } }; } // eslint-disable-next-line react-hooks/exhaustive-deps }, [map]); const [visiable, setVisiable] = (0, _react.useState)(props.visiable); (0, _react.useEffect)(() => { if (map && tileLayer) { visiable ? map.addTileLayer(tileLayer) : map.removeTileLayer(tileLayer); } // eslint-disable-next-line react-hooks/exhaustive-deps }, [visiable, map]); return { tileLayer, setTileLayer, visiable, setVisiable }; }