UNPKG

rc-bmap

Version:

<p align="center"> <img src="https://bmap.jser-club.com/home.png" width="200px"> </p> <p align="center">基于 React 的百度地图组件</p>

47 lines (37 loc) 1.11 kB
import Util from '../utils'; import BMapUtil from '../utils/map'; class CustomOverlay { constructor(config, map) { this.config = { ...config }; this.map = map; this.processOptions(config); } config = {} processOptions = ({ visible }) => { if (!Util.isNil(visible)) { if (!visible) { this.hide(); } else { this.show(); } } } repaint = (config) => { const diffConfig = Util.compareConfig(this.config, config); this.processOptions(diffConfig); this.config = { ...this.config, ...diffConfig }; } destroy = () => { this.map.removeOverlay(this); } } // 异步加载时,BMap对象不存在,所以提供获得类方法,确保调用时BMap对象存在。 const initCustomOverlay = (config, initialize, draw, mapInstance) => { CustomOverlay.prototype = BMapUtil.BOverlay(); CustomOverlay.prototype.initialize = initialize; CustomOverlay.prototype.draw = draw; const overlay = new CustomOverlay(config, mapInstance); mapInstance.addOverlay(overlay); return overlay; }; export default initCustomOverlay;