UNPKG

rc-bmap

Version:

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

86 lines (63 loc) 2.44 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _class, _temp, _initialiseProps; var _utils = require('../utils'); var _utils2 = _interopRequireDefault(_utils); var _map = require('../utils/map'); var _map2 = _interopRequireDefault(_map); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var CustomControl = (_temp = _class = function CustomControl(config, map) { (0, _classCallCheck3.default)(this, CustomControl); _initialiseProps.call(this); this.map = map; config = (0, _extends3.default)({}, config, _utils2.default.convertControlOptions(config)); this.config = (0, _extends3.default)({}, config); this.defaultAnchor = config.anchor; this.defaultOffset = config.offset; }, _initialiseProps = function _initialiseProps() { var _this = this; this.config = {}; this.processOptions = function (_ref) { var anchor = _ref.anchor, offset = _ref.offset, visible = _ref.visible; if (anchor) { _this.setAnchor(anchor); } if (offset) { _this.setOffset(offset); } if (!_utils2.default.isNil(visible)) { if (!visible) { _this.hide(); } else { _this.show(); } } }; this.repaint = function (config) { config = (0, _extends3.default)({}, config, _utils2.default.convertControlOptions(config)); var diffConfig = _utils2.default.compareConfig(_this.config, config); _this.processOptions(diffConfig); _this.config = (0, _extends3.default)({}, _this.config, diffConfig); }; this.destroy = function () { _this.map.removeControl(_this); }; }, _temp); // 异步加载时,BMap对象不存在,所以提供获得类方法,确保调用时BMap对象存在。 var initCustomControl = function initCustomControl(config, initialize, mapInstance) { CustomControl.prototype = _map2.default.BControl(); CustomControl.prototype.initialize = initialize; var control = new CustomControl(config, mapInstance); mapInstance.addControl(control); _utils2.default.processControlVisible(control, config.visible); return control; }; exports.default = initCustomControl;