@vortex-ui/env-puzzle 2.0.0-beta.9 → 3.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +46 -46
- package/lib/b-map/b-map.d.ts +1 -1
- package/lib/b-map/b-map.js +100 -162
- package/lib/b-map/b-map.js.map +1 -1
- package/lib/b-map/custom-overlay.js +17 -37
- package/lib/b-map/custom-overlay.js.map +1 -1
- package/lib/b-map/drawing.js +11 -25
- package/lib/b-map/drawing.js.map +1 -1
- package/lib/b-map/index.d.ts +2 -2
- package/lib/b-map/index.js +4 -16
- package/lib/b-map/index.js.map +1 -1
- package/lib/b-map/js/marker-clusterer.js +223 -339
- package/lib/b-map/js/marker-clusterer.js.map +1 -1
- package/lib/b-map/lushu.js +17 -36
- package/lib/b-map/lushu.js.map +1 -1
- package/lib/b-map/marker-clusterer.js +6 -14
- package/lib/b-map/marker-clusterer.js.map +1 -1
- package/lib/b-map/marker.js +32 -70
- package/lib/b-map/marker.js.map +1 -1
- package/lib/b-map/polygon.js +5 -13
- package/lib/b-map/polygon.js.map +1 -1
- package/lib/b-map/style/css.js.map +1 -1
- package/lib/b-map/style/index.js.map +1 -1
- package/lib/b-map/style/index.less +10 -10
- package/lib/create-modal/create-modal.d.ts +3 -2
- package/lib/create-modal/create-modal.js +163 -307
- package/lib/create-modal/create-modal.js.map +1 -1
- package/lib/create-modal/index.d.ts +1 -2
- package/lib/create-modal/index.js +2 -8
- package/lib/create-modal/index.js.map +1 -1
- package/lib/create-modal/style/css.js +0 -18
- package/lib/create-modal/style/css.js.map +1 -1
- package/lib/create-modal/style/index.css +2 -2
- package/lib/create-modal/style/index.d.ts +0 -9
- package/lib/create-modal/style/index.js +0 -18
- package/lib/create-modal/style/index.js.map +1 -1
- package/lib/create-modal/style/index.less +116 -119
- package/lib/global.less +5 -6
- package/lib/import-modal/import-modal.d.ts +3 -1
- package/lib/import-modal/import-modal.js +140 -204
- package/lib/import-modal/import-modal.js.map +1 -1
- package/lib/import-modal/index.js +2 -6
- package/lib/import-modal/index.js.map +1 -1
- package/lib/import-modal/style/css.js +0 -10
- package/lib/import-modal/style/css.js.map +1 -1
- package/lib/import-modal/style/index.d.ts +0 -5
- package/lib/import-modal/style/index.js +0 -10
- package/lib/import-modal/style/index.js.map +1 -1
- package/lib/import-modal/style/index.less +14 -15
- package/lib/index.js +1 -14
- package/lib/index.js.map +1 -1
- package/lib/interface/index.js.map +1 -1
- package/lib/mapv-Layer/Function.js +0 -2
- package/lib/mapv-Layer/Function.js.map +1 -1
- package/lib/mapv-Layer/index.js +2 -6
- package/lib/mapv-Layer/index.js.map +1 -1
- package/lib/mapv-Layer/mapv-Layer.js +19 -40
- package/lib/mapv-Layer/mapv-Layer.js.map +1 -1
- package/lib/mapv-Layer/style/css.js.map +1 -1
- package/lib/mapv-Layer/style/index.js.map +1 -1
- package/lib/percent/index.d.ts +1 -1
- package/lib/percent/index.js +2 -7
- package/lib/percent/index.js.map +1 -1
- package/lib/percent/interface.js.map +1 -1
- package/lib/percent/line-percent.js +20 -37
- package/lib/percent/line-percent.js.map +1 -1
- package/lib/percent/percent.js +20 -43
- package/lib/percent/percent.js.map +1 -1
- package/lib/percent/style/css.js.map +1 -1
- package/lib/percent/style/index.js.map +1 -1
- package/lib/percent/style/index.less +41 -41
- package/lib/scroll/index.js +2 -6
- package/lib/scroll/index.js.map +1 -1
- package/lib/scroll/scroll.d.ts +1 -1
- package/lib/scroll/scroll.js +19 -47
- package/lib/scroll/scroll.js.map +1 -1
- package/lib/scroll/style/css.js.map +1 -1
- package/lib/scroll/style/index.js.map +1 -1
- package/lib/scroll/style/index.less +3 -3
- package/lib/scroll-select/index.js +2 -6
- package/lib/scroll-select/index.js.map +1 -1
- package/lib/scroll-select/scrollSelect.d.ts +2 -1
- package/lib/scroll-select/scrollSelect.js +144 -218
- package/lib/scroll-select/scrollSelect.js.map +1 -1
- package/lib/scroll-select/style/css.js +0 -2
- package/lib/scroll-select/style/css.js.map +1 -1
- package/lib/scroll-select/style/index.d.ts +0 -1
- package/lib/scroll-select/style/index.js +0 -2
- package/lib/scroll-select/style/index.js.map +1 -1
- package/lib/scroll-select/style/index.less +7 -7
- package/lib/style/color.less +1 -1
- package/lib/table/index.js +2 -6
- package/lib/table/index.js.map +1 -1
- package/lib/table/style/css.js +0 -2
- package/lib/table/style/css.js.map +1 -1
- package/lib/table/style/index.d.ts +0 -1
- package/lib/table/style/index.js +0 -2
- package/lib/table/style/index.js.map +1 -1
- package/lib/table/table.d.ts +1 -1
- package/lib/table/table.js +24 -56
- package/lib/table/table.js.map +1 -1
- package/lib/template/action.d.ts +3 -1
- package/lib/template/action.js +93 -132
- package/lib/template/action.js.map +1 -1
- package/lib/template/card-table.d.ts +7 -6
- package/lib/template/card-table.js +40 -82
- package/lib/template/card-table.js.map +1 -1
- package/lib/template/card.d.ts +1 -1
- package/lib/template/card.js +20 -38
- package/lib/template/card.js.map +1 -1
- package/lib/template/check-row.d.ts +2 -1
- package/lib/template/check-row.js +7 -12
- package/lib/template/check-row.js.map +1 -1
- package/lib/template/field.js +8 -24
- package/lib/template/field.js.map +1 -1
- package/lib/template/filter.d.ts +1 -2
- package/lib/template/filter.js +25 -63
- package/lib/template/filter.js.map +1 -1
- package/lib/template/icon.js +4 -15
- package/lib/template/icon.js.map +1 -1
- package/lib/template/index.d.ts +2 -3
- package/lib/template/index.js +4 -12
- package/lib/template/index.js.map +1 -1
- package/lib/template/interface.js.map +1 -1
- package/lib/template/renderColumnButtons.js +80 -104
- package/lib/template/renderColumnButtons.js.map +1 -1
- package/lib/template/style/action.css +3 -2
- package/lib/template/style/action.less +74 -71
- package/lib/template/style/card.css +2 -2
- package/lib/template/style/card.less +87 -88
- package/lib/template/style/check-row.less +27 -27
- package/lib/template/style/css.js +0 -36
- package/lib/template/style/css.js.map +1 -1
- package/lib/template/style/field.less +11 -11
- package/lib/template/style/filter.css +0 -29
- package/lib/template/style/filter.less +46 -72
- package/lib/template/style/icon.less +7 -7
- package/lib/template/style/index.css +8 -42
- package/lib/template/style/index.d.ts +0 -18
- package/lib/template/style/index.js +0 -36
- package/lib/template/style/index.js.map +1 -1
- package/lib/template/style/index.less +48 -49
- package/lib/template/style/table.css +0 -6
- package/lib/template/style/table.less +79 -91
- package/lib/template/table.d.ts +7 -5
- package/lib/template/table.js +23 -45
- package/lib/template/table.js.map +1 -1
- package/lib/template/template.d.ts +4 -4
- package/lib/template/template.js +134 -258
- package/lib/template/template.js.map +1 -1
- package/lib/template/toolbar.d.ts +1 -1
- package/lib/template/toolbar.js +57 -63
- package/lib/template/toolbar.js.map +1 -1
- package/lib/to-map/container.js +58 -112
- package/lib/to-map/container.js.map +1 -1
- package/lib/to-map/draw-area.js +14 -34
- package/lib/to-map/draw-area.js.map +1 -1
- package/lib/to-map/index.d.ts +1 -1
- package/lib/to-map/index.js +2 -7
- package/lib/to-map/index.js.map +1 -1
- package/lib/to-map/style/css.js +0 -2
- package/lib/to-map/style/css.js.map +1 -1
- package/lib/to-map/style/index.d.ts +0 -1
- package/lib/to-map/style/index.js +0 -2
- package/lib/to-map/style/index.js.map +1 -1
- package/lib/to-map/style/index.less +86 -86
- package/lib/to-map/to-map.js +22 -49
- package/lib/to-map/to-map.js.map +1 -1
- package/lib/upload/index.js +2 -6
- package/lib/upload/index.js.map +1 -1
- package/lib/upload/style/css.js +0 -5
- package/lib/upload/style/css.js.map +1 -1
- package/lib/upload/style/index.d.ts +0 -2
- package/lib/upload/style/index.js +0 -5
- package/lib/upload/style/index.js.map +1 -1
- package/lib/upload/upload.d.ts +4 -1
- package/lib/upload/upload.js +164 -245
- package/lib/upload/upload.js.map +1 -1
- package/lib/use-simple-res/demos/index.d.ts +2 -1
- package/lib/use-simple-res/demos/index.js +31 -59
- package/lib/use-simple-res/demos/index.js.map +1 -1
- package/lib/use-simple-res/index.d.ts +0 -1
- package/lib/use-simple-res/index.js +61 -75
- package/lib/use-simple-res/index.js.map +1 -1
- package/lib/use-simple-res/style/css.js.map +1 -1
- package/lib/use-simple-res/style/index.js.map +1 -1
- package/lib/utils/dom-util.js +8 -27
- package/lib/utils/dom-util.js.map +1 -1
- package/lib/utils/request-util.d.ts +10 -1
- package/lib/utils/request-util.js +170 -45
- package/lib/utils/request-util.js.map +1 -1
- package/lib/utils/string-util.d.ts +2 -0
- package/lib/utils/string-util.js +34 -16
- package/lib/utils/string-util.js.map +1 -1
- package/lib/view-modal/index.d.ts +0 -1
- package/lib/view-modal/index.js +2 -8
- package/lib/view-modal/index.js.map +1 -1
- package/lib/view-modal/style/css.js +0 -12
- package/lib/view-modal/style/css.js.map +1 -1
- package/lib/view-modal/style/index.css +3 -41
- package/lib/view-modal/style/index.d.ts +0 -7
- package/lib/view-modal/style/index.js +0 -12
- package/lib/view-modal/style/index.js.map +1 -1
- package/lib/view-modal/style/index.less +42 -57
- package/lib/view-modal/view-modal.d.ts +1 -1
- package/lib/view-modal/view-modal.js +36 -86
- package/lib/view-modal/view-modal.js.map +1 -1
- package/package.json +157 -143
- package/lib/style/css.js +0 -13
- package/lib/style/css.js.map +0 -1
- package/lib/style/darkGreen.css +0 -719
- package/lib/style/darkGreen.less +0 -482
- package/lib/style/index.d.ts +0 -2
- package/lib/style/index.js +0 -13
- package/lib/style/index.js.map +0 -1
- package/lib/template/vtx-search/index.d.ts +0 -2
- package/lib/template/vtx-search/index.js +0 -126
- package/lib/template/vtx-search/index.js.map +0 -1
- package/lib/template/vtx-search/style/index.css +0 -92
- package/lib/template/vtx-search/style/index.less +0 -92
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marker-clusterer.js","names":["BMapLib","window","getExtendedBounds","map","bounds","gridSize","cutBoundsInRange","pixelNE","pointToPixel","getNorthEast","pixelSW","getSouthWest","x","y","newNE","pixelToPoint","newSW","BMap","Bounds","maxX","getRange","lng","minX","maxY","lat","minY","Point","i","mix","max","Math","min","isArray","source","Object","prototype","toString","call","indexOf","item","index","m","MarkerClusterer","options","_map","_markers","_clusters","opts","_gridSize","_maxZoom","_minClusterSize","_isAverageCenter","undefined","_styles","that","addEventListener","_redraw","mkrs","addMarkers","markers","len","length","_pushMarkerTo","_createClusters","marker","isInCluster","push","addMarker","mapBounds","getBounds","extendedBounds","containsPoint","getPosition","_addToClosestCluster","render","distance","clusterToAddTo","position","cluster","center","getCenter","d","getDistance","isMarkerInClusterBounds","Cluster","_clearLastClusters","remove","_removeMarkersFromCluster","_removeMarkersFromMap","tmplabel","getLabel","removeOverlay","setLabel","_removeMarker","splice","removeMarker","success","removeMarkers","r","clearMarkers","getGridSize","setGridSize","size","getMaxZoom","setMaxZoom","maxZoom","getStyles","setStyles","styles","getMinClusterSize","setMinClusterSize","isAverageCenter","getMap","getMarkers","getClustersCount","count","isReal","markerClusterer","_markerClusterer","_center","_gridBounds","_isReal","_clusterMarker","TextIconOverlay","isMarkerInCluster","updateGridBounds","l","addOverlay","updateClusterMarker","getZoom","hide","setPosition","setText","thatMap","thatBounds","event","setViewport","extend"],"sources":["b-map/js/marker-clusterer.js"],"sourcesContent":["/* eslint-disable*/\r\n/**\r\n * @fileoverview MarkerClusterer标记聚合器用来解决加载大量点要素到地图上产生覆盖现象的问题,并提高性能。\r\n * 主入口类是<a href=\"symbols/BMapLib.MarkerClusterer.html\">MarkerClusterer</a>,\r\n * 基于Baidu Map API 1.2。\r\n *\r\n * @author Baidu Map Api Group\r\n * @version 1.2\r\n */\r\n\r\n/**\r\n * @namespace BMap的所有library类均放在BMapLib命名空间下\r\n */\r\nvar BMapLib = (window.BMapLib = BMapLib || {});\r\n(function () {\r\n /**\r\n * 获取一个扩展的视图范围,把上下左右都扩大一样的像素值。\r\n * @param {Map} map BMap.Map的实例化对象\r\n * @param {BMap.Bounds} bounds BMap.Bounds的实例化对象\r\n * @param {Number} gridSize 要扩大的像素值\r\n *\r\n * @return {BMap.Bounds} 返回扩大后的视图范围。\r\n */\r\n var getExtendedBounds = function (map, bounds, gridSize) {\r\n bounds = cutBoundsInRange(bounds);\r\n var pixelNE = map.pointToPixel(bounds.getNorthEast());\r\n var pixelSW = map.pointToPixel(bounds.getSouthWest());\r\n pixelNE.x += gridSize;\r\n pixelNE.y -= gridSize;\r\n pixelSW.x -= gridSize;\r\n pixelSW.y += gridSize;\r\n var newNE = map.pixelToPoint(pixelNE);\r\n var newSW = map.pixelToPoint(pixelSW);\r\n return new BMap.Bounds(newSW, newNE);\r\n };\r\n\r\n /**\r\n * 按照百度地图支持的世界范围对bounds进行边界处理\r\n * @param {BMap.Bounds} bounds BMap.Bounds的实例化对象\r\n *\r\n * @return {BMap.Bounds} 返回不越界的视图范围\r\n */\r\n var cutBoundsInRange = function (bounds) {\r\n var maxX = getRange(bounds.getNorthEast().lng, -180, 180);\r\n var minX = getRange(bounds.getSouthWest().lng, -180, 180);\r\n var maxY = getRange(bounds.getNorthEast().lat, -74, 74);\r\n var minY = getRange(bounds.getSouthWest().lat, -74, 74);\r\n return new BMap.Bounds(\r\n new BMap.Point(minX, minY),\r\n new BMap.Point(maxX, maxY),\r\n );\r\n };\r\n\r\n /**\r\n * 对单个值进行边界处理。\r\n * @param {Number} i 要处理的数值\r\n * @param {Number} min 下边界值\r\n * @param {Number} max 上边界值\r\n *\r\n * @return {Number} 返回不越界的数值\r\n */\r\n var getRange = function (i, mix, max) {\r\n mix && (i = Math.max(i, mix));\r\n max && (i = Math.min(i, max));\r\n return i;\r\n };\r\n\r\n /**\r\n * 判断给定的对象是否为数组\r\n * @param {Object} source 要测试的对象\r\n *\r\n * @return {Boolean} 如果是数组返回true,否则返回false\r\n */\r\n var isArray = function (source) {\r\n return '[object Array]' === Object.prototype.toString.call(source);\r\n };\r\n\r\n /**\r\n * 返回item在source中的索引位置\r\n * @param {Object} item 要测试的对象\r\n * @param {Array} source 数组\r\n *\r\n * @return {Number} 如果在数组内,返回索引,否则返回-1\r\n */\r\n var indexOf = function (item, source) {\r\n var index = -1;\r\n if (isArray(source)) {\r\n if (source.indexOf) {\r\n index = source.indexOf(item);\r\n } else {\r\n for (var i = 0, m; (m = source[i]); i++) {\r\n if (m === item) {\r\n index = i;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n return index;\r\n };\r\n\r\n /**\r\n *@exports MarkerClusterer as BMapLib.MarkerClusterer\r\n */\r\n var MarkerClusterer =\r\n /**\r\n * MarkerClusterer\r\n * @class 用来解决加载大量点要素到地图上产生覆盖现象的问题,并提高性能\r\n * @constructor\r\n * @param {Map} map 地图的一个实例。\r\n * @param {Json Object} options 可选参数,可选项包括:<br />\r\n * markers {Array<Marker>} 要聚合的标记数组<br />\r\n * girdSize {Number} 聚合计算时网格的像素大小,默认60<br />\r\n * maxZoom {Number} 最大的聚合级别,大于该级别就不进行相应的聚合<br />\r\n * minClusterSize {Number} 最小的聚合数量,小于该数量的不能成为一个聚合,默认为2<br />\r\n * isAverangeCenter {Boolean} 聚合点的落脚位置是否是所有聚合在内点的平均值,默认为否,落脚在聚合内的第一个点<br />\r\n * styles {Array<IconStyle>} 自定义聚合后的图标风格,请参考TextIconOverlay类<br />\r\n */\r\n (BMapLib.MarkerClusterer = function (map, options) {\r\n if (!map) {\r\n return;\r\n }\r\n this._map = map;\r\n this._markers = [];\r\n this._clusters = [];\r\n\r\n var opts = options || {};\r\n this._gridSize = opts['gridSize'] || 60;\r\n this._maxZoom = opts['maxZoom'] || 18;\r\n this._minClusterSize = opts['minClusterSize'] || 2;\r\n this._isAverageCenter = false;\r\n if (opts['isAverageCenter'] != undefined) {\r\n this._isAverageCenter = opts['isAverageCenter'];\r\n }\r\n this._styles = opts['styles'] || [];\r\n\r\n var that = this;\r\n this._map.addEventListener('zoomend', function () {\r\n that._redraw();\r\n });\r\n\r\n this._map.addEventListener('moveend', function () {\r\n that._redraw();\r\n });\r\n\r\n var mkrs = opts['markers'];\r\n isArray(mkrs) && this.addMarkers(mkrs);\r\n });\r\n\r\n /**\r\n * 添加要聚合的标记数组。\r\n * @param {Array<Marker>} markers 要聚合的标记数组\r\n *\r\n * @return 无返回值。\r\n */\r\n MarkerClusterer.prototype.addMarkers = function (markers) {\r\n for (var i = 0, len = markers.length; i < len; i++) {\r\n this._pushMarkerTo(markers[i]);\r\n }\r\n this._createClusters();\r\n };\r\n\r\n /**\r\n * 把一个标记添加到要聚合的标记数组中\r\n * @param {BMap.Marker} marker 要添加的标记\r\n *\r\n * @return 无返回值。\r\n */\r\n MarkerClusterer.prototype._pushMarkerTo = function (marker) {\r\n var index = indexOf(marker, this._markers);\r\n if (index === -1) {\r\n marker.isInCluster = false;\r\n this._markers.push(marker); //Marker拖放后enableDragging不做变化,忽略\r\n }\r\n };\r\n\r\n /**\r\n * 添加一个聚合的标记。\r\n * @param {BMap.Marker} marker 要聚合的单个标记。\r\n * @return 无返回值。\r\n */\r\n MarkerClusterer.prototype.addMarker = function (marker) {\r\n this._pushMarkerTo(marker);\r\n this._createClusters();\r\n };\r\n\r\n /**\r\n * 根据所给定的标记,创建聚合点,并且遍历所有聚合点\r\n * @return 无返回值\r\n */\r\n MarkerClusterer.prototype._createClusters = function () {\r\n var mapBounds = this._map.getBounds();\r\n var extendedBounds = getExtendedBounds(\r\n this._map,\r\n mapBounds,\r\n this._gridSize,\r\n );\r\n for (var i = 0, marker; (marker = this._markers[i]); i++) {\r\n if (\r\n !marker.isInCluster &&\r\n extendedBounds.containsPoint(marker.getPosition())\r\n ) {\r\n this._addToClosestCluster(marker);\r\n }\r\n }\r\n\r\n var len = this._markers.length;\r\n for (var i = 0; i < len; i++) {\r\n if (this._clusters[i]) {\r\n this._clusters[i].render();\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * 根据标记的位置,把它添加到最近的聚合中\r\n * @param {BMap.Marker} marker 要进行聚合的单个标记\r\n *\r\n * @return 无返回值。\r\n */\r\n MarkerClusterer.prototype._addToClosestCluster = function (marker) {\r\n var distance = 4000000;\r\n var clusterToAddTo = null;\r\n var position = marker.getPosition();\r\n for (var i = 0, cluster; (cluster = this._clusters[i]); i++) {\r\n var center = cluster.getCenter();\r\n if (center) {\r\n var d = this._map.getDistance(center, marker.getPosition());\r\n if (d < distance) {\r\n distance = d;\r\n clusterToAddTo = cluster;\r\n }\r\n }\r\n }\r\n\r\n if (clusterToAddTo && clusterToAddTo.isMarkerInClusterBounds(marker)) {\r\n clusterToAddTo.addMarker(marker);\r\n } else {\r\n var cluster = new Cluster(this);\r\n cluster.addMarker(marker);\r\n this._clusters.push(cluster);\r\n }\r\n };\r\n\r\n /**\r\n * 清除上一次的聚合的结果\r\n * @return 无返回值。\r\n */\r\n MarkerClusterer.prototype._clearLastClusters = function () {\r\n for (var i = 0, cluster; (cluster = this._clusters[i]); i++) {\r\n cluster.remove();\r\n }\r\n this._clusters = []; //置空Cluster数组\r\n this._removeMarkersFromCluster(); //把Marker的cluster标记设为false\r\n };\r\n\r\n /**\r\n * 清除某个聚合中的所有标记\r\n * @return 无返回值\r\n */\r\n MarkerClusterer.prototype._removeMarkersFromCluster = function () {\r\n for (var i = 0, marker; (marker = this._markers[i]); i++) {\r\n marker.isInCluster = false;\r\n }\r\n };\r\n\r\n /**\r\n * 把所有的标记从地图上清除\r\n * @return 无返回值\r\n */\r\n MarkerClusterer.prototype._removeMarkersFromMap = function () {\r\n for (var i = 0, marker; (marker = this._markers[i]); i++) {\r\n marker.isInCluster = false;\r\n tmplabel = marker.getLabel();\r\n this._map.removeOverlay(marker);\r\n marker.setLabel(tmplabel);\r\n }\r\n };\r\n\r\n /**\r\n * 删除单个标记\r\n * @param {BMap.Marker} marker 需要被删除的marker\r\n *\r\n * @return {Boolean} 删除成功返回true,否则返回false\r\n */\r\n MarkerClusterer.prototype._removeMarker = function (marker) {\r\n var index = indexOf(marker, this._markers);\r\n if (index === -1) {\r\n return false;\r\n }\r\n tmplabel = marker.getLabel();\r\n this._map.removeOverlay(marker);\r\n marker.setLabel(tmplabel);\r\n this._markers.splice(index, 1);\r\n return true;\r\n };\r\n\r\n /**\r\n * 删除单个标记\r\n * @param {BMap.Marker} marker 需要被删除的marker\r\n *\r\n * @return {Boolean} 删除成功返回true,否则返回false\r\n */\r\n MarkerClusterer.prototype.removeMarker = function (marker) {\r\n var success = this._removeMarker(marker);\r\n if (success) {\r\n this._clearLastClusters();\r\n this._createClusters();\r\n }\r\n return success;\r\n };\r\n\r\n /**\r\n * 删除一组标记\r\n * @param {Array<BMap.Marker>} markers 需要被删除的marker数组\r\n *\r\n * @return {Boolean} 删除成功返回true,否则返回false\r\n */\r\n MarkerClusterer.prototype.removeMarkers = function (markers) {\r\n var success = false;\r\n for (var i = 0; i < markers.length; i++) {\r\n var r = this._removeMarker(markers[i]);\r\n success = success || r;\r\n }\r\n\r\n if (success) {\r\n this._clearLastClusters();\r\n this._createClusters();\r\n }\r\n return success;\r\n };\r\n\r\n /**\r\n * 从地图上彻底清除所有的标记\r\n * @return 无返回值\r\n */\r\n MarkerClusterer.prototype.clearMarkers = function () {\r\n this._clearLastClusters();\r\n this._removeMarkersFromMap();\r\n this._markers = [];\r\n };\r\n\r\n /**\r\n * 重新生成,比如改变了属性等\r\n * @return 无返回值\r\n */\r\n MarkerClusterer.prototype._redraw = function () {\r\n this._clearLastClusters();\r\n this._createClusters();\r\n };\r\n\r\n /**\r\n * 获取网格大小\r\n * @return {Number} 网格大小\r\n */\r\n MarkerClusterer.prototype.getGridSize = function () {\r\n return this._gridSize;\r\n };\r\n\r\n /**\r\n * 设置网格大小\r\n * @param {Number} size 网格大小\r\n * @return 无返回值\r\n */\r\n MarkerClusterer.prototype.setGridSize = function (size) {\r\n this._gridSize = size;\r\n this._redraw();\r\n };\r\n\r\n /**\r\n * 获取聚合的最大缩放级别。\r\n * @return {Number} 聚合的最大缩放级别。\r\n */\r\n MarkerClusterer.prototype.getMaxZoom = function () {\r\n return this._maxZoom;\r\n };\r\n\r\n /**\r\n * 设置聚合的最大缩放级别\r\n * @param {Number} maxZoom 聚合的最大缩放级别\r\n * @return 无返回值\r\n */\r\n MarkerClusterer.prototype.setMaxZoom = function (maxZoom) {\r\n this._maxZoom = maxZoom;\r\n this._redraw();\r\n };\r\n\r\n /**\r\n * 获取聚合的样式风格集合\r\n * @return {Array<IconStyle>} 聚合的样式风格集合\r\n */\r\n MarkerClusterer.prototype.getStyles = function () {\r\n return this._styles;\r\n };\r\n\r\n /**\r\n * 设置聚合的样式风格集合\r\n * @param {Array<IconStyle>} styles 样式风格数组\r\n * @return 无返回值\r\n */\r\n MarkerClusterer.prototype.setStyles = function (styles) {\r\n this._styles = styles;\r\n this._redraw();\r\n };\r\n\r\n /**\r\n * 获取单个聚合的最小数量。\r\n * @return {Number} 单个聚合的最小数量。\r\n */\r\n MarkerClusterer.prototype.getMinClusterSize = function () {\r\n return this._minClusterSize;\r\n };\r\n\r\n /**\r\n * 设置单个聚合的最小数量。\r\n * @param {Number} size 单个聚合的最小数量。\r\n * @return 无返回值。\r\n */\r\n MarkerClusterer.prototype.setMinClusterSize = function (size) {\r\n this._minClusterSize = size;\r\n this._redraw();\r\n };\r\n\r\n /**\r\n * 获取单个聚合的落脚点是否是聚合内所有标记的平均中心。\r\n * @return {Boolean} true或false。\r\n */\r\n MarkerClusterer.prototype.isAverageCenter = function () {\r\n return this._isAverageCenter;\r\n };\r\n\r\n /**\r\n * 获取聚合的Map实例。\r\n * @return {Map} Map的示例。\r\n */\r\n MarkerClusterer.prototype.getMap = function () {\r\n return this._map;\r\n };\r\n\r\n /**\r\n * 获取所有的标记数组。\r\n * @return {Array<Marker>} 标记数组。\r\n */\r\n MarkerClusterer.prototype.getMarkers = function () {\r\n return this._markers;\r\n };\r\n\r\n /**\r\n * 获取聚合的总数量。\r\n * @return {Number} 聚合的总数量。\r\n */\r\n MarkerClusterer.prototype.getClustersCount = function () {\r\n var count = 0;\r\n for (var i = 0, cluster; (cluster = this._clusters[i]); i++) {\r\n cluster.isReal() && count++;\r\n }\r\n return count;\r\n };\r\n\r\n /**\r\n * @ignore\r\n * Cluster\r\n * @class 表示一个聚合对象,该聚合,包含有N个标记,这N个标记组成的范围,并有予以显示在Map上的TextIconOverlay等。\r\n * @constructor\r\n * @param {MarkerClusterer} markerClusterer 一个标记聚合器示例。\r\n */\r\n function Cluster(markerClusterer) {\r\n this._markerClusterer = markerClusterer;\r\n this._map = markerClusterer.getMap();\r\n this._minClusterSize = markerClusterer.getMinClusterSize();\r\n this._isAverageCenter = markerClusterer.isAverageCenter();\r\n this._center = null; //落脚位置\r\n this._markers = []; //这个Cluster中所包含的markers\r\n this._gridBounds = null; //以中心点为准,向四边扩大gridSize个像素的范围,也即网格范围\r\n this._isReal = false; //真的是个聚合\r\n\r\n this._clusterMarker = new BMapLib.TextIconOverlay(\r\n this._center,\r\n this._markers.length,\r\n {\r\n styles: this._markerClusterer.getStyles(),\r\n },\r\n );\r\n //this._map.addOverlay(this._clusterMarker);\r\n }\r\n\r\n /**\r\n * 向该聚合添加一个标记。\r\n * @param {Marker} marker 要添加的标记。\r\n * @return 无返回值。\r\n */\r\n Cluster.prototype.addMarker = function (marker) {\r\n if (this.isMarkerInCluster(marker)) {\r\n return false;\r\n } //也可用marker.isInCluster判断,外面判断OK,这里基本不会命中\r\n\r\n if (!this._center) {\r\n this._center = marker.getPosition();\r\n this.updateGridBounds(); //\r\n } else {\r\n if (this._isAverageCenter) {\r\n var l = this._markers.length + 1;\r\n var lat =\r\n (this._center.lat * (l - 1) + marker.getPosition().lat) / l;\r\n var lng =\r\n (this._center.lng * (l - 1) + marker.getPosition().lng) / l;\r\n this._center = new BMap.Point(lng, lat);\r\n this.updateGridBounds();\r\n } //计算新的Center\r\n }\r\n\r\n marker.isInCluster = true;\r\n this._markers.push(marker);\r\n };\r\n\r\n /**\r\n * 进行dom操作\r\n * @return 无返回值\r\n */\r\n Cluster.prototype.render = function () {\r\n var len = this._markers.length;\r\n\r\n if (len < this._minClusterSize) {\r\n for (var i = 0; i < len; i++) {\r\n this._map.addOverlay(this._markers[i]);\r\n }\r\n } else {\r\n this._map.addOverlay(this._clusterMarker);\r\n this._isReal = true;\r\n this.updateClusterMarker();\r\n }\r\n };\r\n\r\n /**\r\n * 判断一个标记是否在该聚合中。\r\n * @param {Marker} marker 要判断的标记。\r\n * @return {Boolean} true或false。\r\n */\r\n Cluster.prototype.isMarkerInCluster = function (marker) {\r\n if (this._markers.indexOf) {\r\n return this._markers.indexOf(marker) != -1;\r\n } else {\r\n for (var i = 0, m; (m = this._markers[i]); i++) {\r\n if (m === marker) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n /**\r\n * 判断一个标记是否在该聚合网格范围中。\r\n * @param {Marker} marker 要判断的标记。\r\n * @return {Boolean} true或false。\r\n */\r\n Cluster.prototype.isMarkerInClusterBounds = function (marker) {\r\n return this._gridBounds.containsPoint(marker.getPosition());\r\n };\r\n\r\n Cluster.prototype.isReal = function (marker) {\r\n return this._isReal;\r\n };\r\n\r\n /**\r\n * 更新该聚合的网格范围。\r\n * @return 无返回值。\r\n */\r\n Cluster.prototype.updateGridBounds = function () {\r\n var bounds = new BMap.Bounds(this._center, this._center);\r\n this._gridBounds = getExtendedBounds(\r\n this._map,\r\n bounds,\r\n this._markerClusterer.getGridSize(),\r\n );\r\n };\r\n\r\n /**\r\n * 更新该聚合的显示样式,也即TextIconOverlay。\r\n * @return 无返回值。\r\n */\r\n Cluster.prototype.updateClusterMarker = function () {\r\n if (this._map.getZoom() > this._markerClusterer.getMaxZoom()) {\r\n this._clusterMarker && this._map.removeOverlay(this._clusterMarker);\r\n for (var i = 0, marker; (marker = this._markers[i]); i++) {\r\n this._map.addOverlay(marker);\r\n }\r\n return;\r\n }\r\n\r\n if (this._markers.length < this._minClusterSize) {\r\n this._clusterMarker.hide();\r\n return;\r\n }\r\n\r\n this._clusterMarker.setPosition(this._center);\r\n\r\n this._clusterMarker.setText(this._markers.length);\r\n\r\n var thatMap = this._map;\r\n var thatBounds = this.getBounds();\r\n this._clusterMarker.addEventListener('click', function (event) {\r\n thatMap.setViewport(thatBounds);\r\n });\r\n };\r\n\r\n /**\r\n * 删除该聚合。\r\n * @return 无返回值。\r\n */\r\n Cluster.prototype.remove = function () {\r\n for (var i = 0, m; (m = this._markers[i]); i++) {\r\n tmplabel = this._markers[i].getLabel();\r\n this._markers[i].getMap() &&\r\n this._map.removeOverlay(this._markers[i]);\r\n this._markers[i].setLabel(tmplabel);\r\n } //清除散的标记点\r\n this._map.removeOverlay(this._clusterMarker);\r\n this._markers.length = 0;\r\n delete this._markers;\r\n };\r\n\r\n /**\r\n * 获取该聚合所包含的所有标记的最小外接矩形的范围。\r\n * @return {BMap.Bounds} 计算出的范围。\r\n */\r\n Cluster.prototype.getBounds = function () {\r\n var bounds = new BMap.Bounds(this._center, this._center);\r\n for (var i = 0, marker; (marker = this._markers[i]); i++) {\r\n bounds.extend(marker.getPosition());\r\n }\r\n return bounds;\r\n };\r\n\r\n /**\r\n * 获取该聚合的落脚点。\r\n * @return {BMap.Point} 该聚合的落脚点。\r\n */\r\n Cluster.prototype.getCenter = function () {\r\n return this._center;\r\n };\r\n})();\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"marker-clusterer.js","names":["BMapLib","window","getExtendedBounds","map","bounds","gridSize","cutBoundsInRange","pixelNE","pointToPixel","getNorthEast","pixelSW","getSouthWest","x","y","newNE","pixelToPoint","newSW","BMap","Bounds","maxX","getRange","lng","minX","maxY","lat","minY","Point","i","mix","max","Math","min","isArray","source","Object","prototype","toString","call","indexOf","item","index","m","MarkerClusterer","options","_map","_markers","_clusters","opts","_gridSize","_maxZoom","_minClusterSize","_isAverageCenter","undefined","_styles","that","addEventListener","_redraw","mkrs","addMarkers","markers","len","length","_pushMarkerTo","_createClusters","marker","isInCluster","push","addMarker","mapBounds","getBounds","extendedBounds","containsPoint","getPosition","_addToClosestCluster","render","distance","clusterToAddTo","position","cluster","center","getCenter","d","getDistance","isMarkerInClusterBounds","Cluster","_clearLastClusters","remove","_removeMarkersFromCluster","_removeMarkersFromMap","tmplabel","getLabel","removeOverlay","setLabel","_removeMarker","splice","removeMarker","success","removeMarkers","r","clearMarkers","getGridSize","setGridSize","size","getMaxZoom","setMaxZoom","maxZoom","getStyles","setStyles","styles","getMinClusterSize","setMinClusterSize","isAverageCenter","getMap","getMarkers","getClustersCount","count","isReal","markerClusterer","_markerClusterer","_center","_gridBounds","_isReal","_clusterMarker","TextIconOverlay","isMarkerInCluster","updateGridBounds","l","addOverlay","updateClusterMarker","getZoom","hide","setPosition","setText","thatMap","thatBounds","event","setViewport","extend"],"sources":["b-map/js/marker-clusterer.js"],"sourcesContent":["/* eslint-disable*/\n/**\n * @fileoverview MarkerClusterer标记聚合器用来解决加载大量点要素到地图上产生覆盖现象的问题,并提高性能。\n * 主入口类是<a href=\"symbols/BMapLib.MarkerClusterer.html\">MarkerClusterer</a>,\n * 基于Baidu Map API 1.2。\n *\n * @author Baidu Map Api Group\n * @version 1.2\n */\n\n/**\n * @namespace BMap的所有library类均放在BMapLib命名空间下\n */\nvar BMapLib = (window.BMapLib = BMapLib || {});\n(function () {\n /**\n * 获取一个扩展的视图范围,把上下左右都扩大一样的像素值。\n * @param {Map} map BMap.Map的实例化对象\n * @param {BMap.Bounds} bounds BMap.Bounds的实例化对象\n * @param {Number} gridSize 要扩大的像素值\n *\n * @return {BMap.Bounds} 返回扩大后的视图范围。\n */\n var getExtendedBounds = function (map, bounds, gridSize) {\n bounds = cutBoundsInRange(bounds);\n var pixelNE = map.pointToPixel(bounds.getNorthEast());\n var pixelSW = map.pointToPixel(bounds.getSouthWest());\n pixelNE.x += gridSize;\n pixelNE.y -= gridSize;\n pixelSW.x -= gridSize;\n pixelSW.y += gridSize;\n var newNE = map.pixelToPoint(pixelNE);\n var newSW = map.pixelToPoint(pixelSW);\n return new BMap.Bounds(newSW, newNE);\n };\n\n /**\n * 按照百度地图支持的世界范围对bounds进行边界处理\n * @param {BMap.Bounds} bounds BMap.Bounds的实例化对象\n *\n * @return {BMap.Bounds} 返回不越界的视图范围\n */\n var cutBoundsInRange = function (bounds) {\n var maxX = getRange(bounds.getNorthEast().lng, -180, 180);\n var minX = getRange(bounds.getSouthWest().lng, -180, 180);\n var maxY = getRange(bounds.getNorthEast().lat, -74, 74);\n var minY = getRange(bounds.getSouthWest().lat, -74, 74);\n return new BMap.Bounds(\n new BMap.Point(minX, minY),\n new BMap.Point(maxX, maxY),\n );\n };\n\n /**\n * 对单个值进行边界处理。\n * @param {Number} i 要处理的数值\n * @param {Number} min 下边界值\n * @param {Number} max 上边界值\n *\n * @return {Number} 返回不越界的数值\n */\n var getRange = function (i, mix, max) {\n mix && (i = Math.max(i, mix));\n max && (i = Math.min(i, max));\n return i;\n };\n\n /**\n * 判断给定的对象是否为数组\n * @param {Object} source 要测试的对象\n *\n * @return {Boolean} 如果是数组返回true,否则返回false\n */\n var isArray = function (source) {\n return '[object Array]' === Object.prototype.toString.call(source);\n };\n\n /**\n * 返回item在source中的索引位置\n * @param {Object} item 要测试的对象\n * @param {Array} source 数组\n *\n * @return {Number} 如果在数组内,返回索引,否则返回-1\n */\n var indexOf = function (item, source) {\n var index = -1;\n if (isArray(source)) {\n if (source.indexOf) {\n index = source.indexOf(item);\n } else {\n for (var i = 0, m; (m = source[i]); i++) {\n if (m === item) {\n index = i;\n break;\n }\n }\n }\n }\n return index;\n };\n\n /**\n *@exports MarkerClusterer as BMapLib.MarkerClusterer\n */\n var MarkerClusterer =\n /**\n * MarkerClusterer\n * @class 用来解决加载大量点要素到地图上产生覆盖现象的问题,并提高性能\n * @constructor\n * @param {Map} map 地图的一个实例。\n * @param {Json Object} options 可选参数,可选项包括:<br />\n * markers {Array<Marker>} 要聚合的标记数组<br />\n * girdSize {Number} 聚合计算时网格的像素大小,默认60<br />\n * maxZoom {Number} 最大的聚合级别,大于该级别就不进行相应的聚合<br />\n * minClusterSize {Number} 最小的聚合数量,小于该数量的不能成为一个聚合,默认为2<br />\n * isAverangeCenter {Boolean} 聚合点的落脚位置是否是所有聚合在内点的平均值,默认为否,落脚在聚合内的第一个点<br />\n * styles {Array<IconStyle>} 自定义聚合后的图标风格,请参考TextIconOverlay类<br />\n */\n (BMapLib.MarkerClusterer = function (map, options) {\n if (!map) {\n return;\n }\n this._map = map;\n this._markers = [];\n this._clusters = [];\n\n var opts = options || {};\n this._gridSize = opts['gridSize'] || 60;\n this._maxZoom = opts['maxZoom'] || 18;\n this._minClusterSize = opts['minClusterSize'] || 2;\n this._isAverageCenter = false;\n if (opts['isAverageCenter'] != undefined) {\n this._isAverageCenter = opts['isAverageCenter'];\n }\n this._styles = opts['styles'] || [];\n\n var that = this;\n this._map.addEventListener('zoomend', function () {\n that._redraw();\n });\n\n this._map.addEventListener('moveend', function () {\n that._redraw();\n });\n\n var mkrs = opts['markers'];\n isArray(mkrs) && this.addMarkers(mkrs);\n });\n\n /**\n * 添加要聚合的标记数组。\n * @param {Array<Marker>} markers 要聚合的标记数组\n *\n * @return 无返回值。\n */\n MarkerClusterer.prototype.addMarkers = function (markers) {\n for (var i = 0, len = markers.length; i < len; i++) {\n this._pushMarkerTo(markers[i]);\n }\n this._createClusters();\n };\n\n /**\n * 把一个标记添加到要聚合的标记数组中\n * @param {BMap.Marker} marker 要添加的标记\n *\n * @return 无返回值。\n */\n MarkerClusterer.prototype._pushMarkerTo = function (marker) {\n var index = indexOf(marker, this._markers);\n if (index === -1) {\n marker.isInCluster = false;\n this._markers.push(marker); //Marker拖放后enableDragging不做变化,忽略\n }\n };\n\n /**\n * 添加一个聚合的标记。\n * @param {BMap.Marker} marker 要聚合的单个标记。\n * @return 无返回值。\n */\n MarkerClusterer.prototype.addMarker = function (marker) {\n this._pushMarkerTo(marker);\n this._createClusters();\n };\n\n /**\n * 根据所给定的标记,创建聚合点,并且遍历所有聚合点\n * @return 无返回值\n */\n MarkerClusterer.prototype._createClusters = function () {\n var mapBounds = this._map.getBounds();\n var extendedBounds = getExtendedBounds(\n this._map,\n mapBounds,\n this._gridSize,\n );\n for (var i = 0, marker; (marker = this._markers[i]); i++) {\n if (\n !marker.isInCluster &&\n extendedBounds.containsPoint(marker.getPosition())\n ) {\n this._addToClosestCluster(marker);\n }\n }\n\n var len = this._markers.length;\n for (var i = 0; i < len; i++) {\n if (this._clusters[i]) {\n this._clusters[i].render();\n }\n }\n };\n\n /**\n * 根据标记的位置,把它添加到最近的聚合中\n * @param {BMap.Marker} marker 要进行聚合的单个标记\n *\n * @return 无返回值。\n */\n MarkerClusterer.prototype._addToClosestCluster = function (marker) {\n var distance = 4000000;\n var clusterToAddTo = null;\n var position = marker.getPosition();\n for (var i = 0, cluster; (cluster = this._clusters[i]); i++) {\n var center = cluster.getCenter();\n if (center) {\n var d = this._map.getDistance(center, marker.getPosition());\n if (d < distance) {\n distance = d;\n clusterToAddTo = cluster;\n }\n }\n }\n\n if (clusterToAddTo && clusterToAddTo.isMarkerInClusterBounds(marker)) {\n clusterToAddTo.addMarker(marker);\n } else {\n var cluster = new Cluster(this);\n cluster.addMarker(marker);\n this._clusters.push(cluster);\n }\n };\n\n /**\n * 清除上一次的聚合的结果\n * @return 无返回值。\n */\n MarkerClusterer.prototype._clearLastClusters = function () {\n for (var i = 0, cluster; (cluster = this._clusters[i]); i++) {\n cluster.remove();\n }\n this._clusters = []; //置空Cluster数组\n this._removeMarkersFromCluster(); //把Marker的cluster标记设为false\n };\n\n /**\n * 清除某个聚合中的所有标记\n * @return 无返回值\n */\n MarkerClusterer.prototype._removeMarkersFromCluster = function () {\n for (var i = 0, marker; (marker = this._markers[i]); i++) {\n marker.isInCluster = false;\n }\n };\n\n /**\n * 把所有的标记从地图上清除\n * @return 无返回值\n */\n MarkerClusterer.prototype._removeMarkersFromMap = function () {\n for (var i = 0, marker; (marker = this._markers[i]); i++) {\n marker.isInCluster = false;\n tmplabel = marker.getLabel();\n this._map.removeOverlay(marker);\n marker.setLabel(tmplabel);\n }\n };\n\n /**\n * 删除单个标记\n * @param {BMap.Marker} marker 需要被删除的marker\n *\n * @return {Boolean} 删除成功返回true,否则返回false\n */\n MarkerClusterer.prototype._removeMarker = function (marker) {\n var index = indexOf(marker, this._markers);\n if (index === -1) {\n return false;\n }\n tmplabel = marker.getLabel();\n this._map.removeOverlay(marker);\n marker.setLabel(tmplabel);\n this._markers.splice(index, 1);\n return true;\n };\n\n /**\n * 删除单个标记\n * @param {BMap.Marker} marker 需要被删除的marker\n *\n * @return {Boolean} 删除成功返回true,否则返回false\n */\n MarkerClusterer.prototype.removeMarker = function (marker) {\n var success = this._removeMarker(marker);\n if (success) {\n this._clearLastClusters();\n this._createClusters();\n }\n return success;\n };\n\n /**\n * 删除一组标记\n * @param {Array<BMap.Marker>} markers 需要被删除的marker数组\n *\n * @return {Boolean} 删除成功返回true,否则返回false\n */\n MarkerClusterer.prototype.removeMarkers = function (markers) {\n var success = false;\n for (var i = 0; i < markers.length; i++) {\n var r = this._removeMarker(markers[i]);\n success = success || r;\n }\n\n if (success) {\n this._clearLastClusters();\n this._createClusters();\n }\n return success;\n };\n\n /**\n * 从地图上彻底清除所有的标记\n * @return 无返回值\n */\n MarkerClusterer.prototype.clearMarkers = function () {\n this._clearLastClusters();\n this._removeMarkersFromMap();\n this._markers = [];\n };\n\n /**\n * 重新生成,比如改变了属性等\n * @return 无返回值\n */\n MarkerClusterer.prototype._redraw = function () {\n this._clearLastClusters();\n this._createClusters();\n };\n\n /**\n * 获取网格大小\n * @return {Number} 网格大小\n */\n MarkerClusterer.prototype.getGridSize = function () {\n return this._gridSize;\n };\n\n /**\n * 设置网格大小\n * @param {Number} size 网格大小\n * @return 无返回值\n */\n MarkerClusterer.prototype.setGridSize = function (size) {\n this._gridSize = size;\n this._redraw();\n };\n\n /**\n * 获取聚合的最大缩放级别。\n * @return {Number} 聚合的最大缩放级别。\n */\n MarkerClusterer.prototype.getMaxZoom = function () {\n return this._maxZoom;\n };\n\n /**\n * 设置聚合的最大缩放级别\n * @param {Number} maxZoom 聚合的最大缩放级别\n * @return 无返回值\n */\n MarkerClusterer.prototype.setMaxZoom = function (maxZoom) {\n this._maxZoom = maxZoom;\n this._redraw();\n };\n\n /**\n * 获取聚合的样式风格集合\n * @return {Array<IconStyle>} 聚合的样式风格集合\n */\n MarkerClusterer.prototype.getStyles = function () {\n return this._styles;\n };\n\n /**\n * 设置聚合的样式风格集合\n * @param {Array<IconStyle>} styles 样式风格数组\n * @return 无返回值\n */\n MarkerClusterer.prototype.setStyles = function (styles) {\n this._styles = styles;\n this._redraw();\n };\n\n /**\n * 获取单个聚合的最小数量。\n * @return {Number} 单个聚合的最小数量。\n */\n MarkerClusterer.prototype.getMinClusterSize = function () {\n return this._minClusterSize;\n };\n\n /**\n * 设置单个聚合的最小数量。\n * @param {Number} size 单个聚合的最小数量。\n * @return 无返回值。\n */\n MarkerClusterer.prototype.setMinClusterSize = function (size) {\n this._minClusterSize = size;\n this._redraw();\n };\n\n /**\n * 获取单个聚合的落脚点是否是聚合内所有标记的平均中心。\n * @return {Boolean} true或false。\n */\n MarkerClusterer.prototype.isAverageCenter = function () {\n return this._isAverageCenter;\n };\n\n /**\n * 获取聚合的Map实例。\n * @return {Map} Map的示例。\n */\n MarkerClusterer.prototype.getMap = function () {\n return this._map;\n };\n\n /**\n * 获取所有的标记数组。\n * @return {Array<Marker>} 标记数组。\n */\n MarkerClusterer.prototype.getMarkers = function () {\n return this._markers;\n };\n\n /**\n * 获取聚合的总数量。\n * @return {Number} 聚合的总数量。\n */\n MarkerClusterer.prototype.getClustersCount = function () {\n var count = 0;\n for (var i = 0, cluster; (cluster = this._clusters[i]); i++) {\n cluster.isReal() && count++;\n }\n return count;\n };\n\n /**\n * @ignore\n * Cluster\n * @class 表示一个聚合对象,该聚合,包含有N个标记,这N个标记组成的范围,并有予以显示在Map上的TextIconOverlay等。\n * @constructor\n * @param {MarkerClusterer} markerClusterer 一个标记聚合器示例。\n */\n function Cluster(markerClusterer) {\n this._markerClusterer = markerClusterer;\n this._map = markerClusterer.getMap();\n this._minClusterSize = markerClusterer.getMinClusterSize();\n this._isAverageCenter = markerClusterer.isAverageCenter();\n this._center = null; //落脚位置\n this._markers = []; //这个Cluster中所包含的markers\n this._gridBounds = null; //以中心点为准,向四边扩大gridSize个像素的范围,也即网格范围\n this._isReal = false; //真的是个聚合\n\n this._clusterMarker = new BMapLib.TextIconOverlay(\n this._center,\n this._markers.length,\n {\n styles: this._markerClusterer.getStyles(),\n },\n );\n //this._map.addOverlay(this._clusterMarker);\n }\n\n /**\n * 向该聚合添加一个标记。\n * @param {Marker} marker 要添加的标记。\n * @return 无返回值。\n */\n Cluster.prototype.addMarker = function (marker) {\n if (this.isMarkerInCluster(marker)) {\n return false;\n } //也可用marker.isInCluster判断,外面判断OK,这里基本不会命中\n\n if (!this._center) {\n this._center = marker.getPosition();\n this.updateGridBounds(); //\n } else {\n if (this._isAverageCenter) {\n var l = this._markers.length + 1;\n var lat =\n (this._center.lat * (l - 1) + marker.getPosition().lat) / l;\n var lng =\n (this._center.lng * (l - 1) + marker.getPosition().lng) / l;\n this._center = new BMap.Point(lng, lat);\n this.updateGridBounds();\n } //计算新的Center\n }\n\n marker.isInCluster = true;\n this._markers.push(marker);\n };\n\n /**\n * 进行dom操作\n * @return 无返回值\n */\n Cluster.prototype.render = function () {\n var len = this._markers.length;\n\n if (len < this._minClusterSize) {\n for (var i = 0; i < len; i++) {\n this._map.addOverlay(this._markers[i]);\n }\n } else {\n this._map.addOverlay(this._clusterMarker);\n this._isReal = true;\n this.updateClusterMarker();\n }\n };\n\n /**\n * 判断一个标记是否在该聚合中。\n * @param {Marker} marker 要判断的标记。\n * @return {Boolean} true或false。\n */\n Cluster.prototype.isMarkerInCluster = function (marker) {\n if (this._markers.indexOf) {\n return this._markers.indexOf(marker) != -1;\n } else {\n for (var i = 0, m; (m = this._markers[i]); i++) {\n if (m === marker) {\n return true;\n }\n }\n }\n return false;\n };\n\n /**\n * 判断一个标记是否在该聚合网格范围中。\n * @param {Marker} marker 要判断的标记。\n * @return {Boolean} true或false。\n */\n Cluster.prototype.isMarkerInClusterBounds = function (marker) {\n return this._gridBounds.containsPoint(marker.getPosition());\n };\n\n Cluster.prototype.isReal = function (marker) {\n return this._isReal;\n };\n\n /**\n * 更新该聚合的网格范围。\n * @return 无返回值。\n */\n Cluster.prototype.updateGridBounds = function () {\n var bounds = new BMap.Bounds(this._center, this._center);\n this._gridBounds = getExtendedBounds(\n this._map,\n bounds,\n this._markerClusterer.getGridSize(),\n );\n };\n\n /**\n * 更新该聚合的显示样式,也即TextIconOverlay。\n * @return 无返回值。\n */\n Cluster.prototype.updateClusterMarker = function () {\n if (this._map.getZoom() > this._markerClusterer.getMaxZoom()) {\n this._clusterMarker && this._map.removeOverlay(this._clusterMarker);\n for (var i = 0, marker; (marker = this._markers[i]); i++) {\n this._map.addOverlay(marker);\n }\n return;\n }\n\n if (this._markers.length < this._minClusterSize) {\n this._clusterMarker.hide();\n return;\n }\n\n this._clusterMarker.setPosition(this._center);\n\n this._clusterMarker.setText(this._markers.length);\n\n var thatMap = this._map;\n var thatBounds = this.getBounds();\n this._clusterMarker.addEventListener('click', function (event) {\n thatMap.setViewport(thatBounds);\n });\n };\n\n /**\n * 删除该聚合。\n * @return 无返回值。\n */\n Cluster.prototype.remove = function () {\n for (var i = 0, m; (m = this._markers[i]); i++) {\n tmplabel = this._markers[i].getLabel();\n this._markers[i].getMap() &&\n this._map.removeOverlay(this._markers[i]);\n this._markers[i].setLabel(tmplabel);\n } //清除散的标记点\n this._map.removeOverlay(this._clusterMarker);\n this._markers.length = 0;\n delete this._markers;\n };\n\n /**\n * 获取该聚合所包含的所有标记的最小外接矩形的范围。\n * @return {BMap.Bounds} 计算出的范围。\n */\n Cluster.prototype.getBounds = function () {\n var bounds = new BMap.Bounds(this._center, this._center);\n for (var i = 0, marker; (marker = this._markers[i]); i++) {\n bounds.extend(marker.getPosition());\n }\n return bounds;\n };\n\n /**\n * 获取该聚合的落脚点。\n * @return {BMap.Point} 该聚合的落脚点。\n */\n Cluster.prototype.getCenter = function () {\n return this._center;\n };\n})();\n"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAIA,OAAO,GAAIC,MAAM,CAACD,OAAO,GAAGA,OAAO,IAAI,CAAC,CAAE;AAC9C,CAAC,YAAY;EACT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EACI,IAAIE,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAaC,GAAG,EAAEC,MAAM,EAAEC,QAAQ,EAAE;IACrDD,MAAM,GAAGE,gBAAgB,CAACF,MAAM,CAAC;IACjC,IAAIG,OAAO,GAAGJ,GAAG,CAACK,YAAY,CAACJ,MAAM,CAACK,YAAY,CAAC,CAAC,CAAC;IACrD,IAAIC,OAAO,GAAGP,GAAG,CAACK,YAAY,CAACJ,MAAM,CAACO,YAAY,CAAC,CAAC,CAAC;IACrDJ,OAAO,CAACK,CAAC,IAAIP,QAAQ;IACrBE,OAAO,CAACM,CAAC,IAAIR,QAAQ;IACrBK,OAAO,CAACE,CAAC,IAAIP,QAAQ;IACrBK,OAAO,CAACG,CAAC,IAAIR,QAAQ;IACrB,IAAIS,KAAK,GAAGX,GAAG,CAACY,YAAY,CAACR,OAAO,CAAC;IACrC,IAAIS,KAAK,GAAGb,GAAG,CAACY,YAAY,CAACL,OAAO,CAAC;IACrC,OAAO,IAAIO,IAAI,CAACC,MAAM,CAACF,KAAK,EAAEF,KAAK,CAAC;EACxC,CAAC;;EAED;AACJ;AACA;AACA;AACA;AACA;EACI,IAAIR,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAaF,MAAM,EAAE;IACrC,IAAIe,IAAI,GAAGC,QAAQ,CAAChB,MAAM,CAACK,YAAY,CAAC,CAAC,CAACY,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;IACzD,IAAIC,IAAI,GAAGF,QAAQ,CAAChB,MAAM,CAACO,YAAY,CAAC,CAAC,CAACU,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;IACzD,IAAIE,IAAI,GAAGH,QAAQ,CAAChB,MAAM,CAACK,YAAY,CAAC,CAAC,CAACe,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;IACvD,IAAIC,IAAI,GAAGL,QAAQ,CAAChB,MAAM,CAACO,YAAY,CAAC,CAAC,CAACa,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;IACvD,OAAO,IAAIP,IAAI,CAACC,MAAM,CAClB,IAAID,IAAI,CAACS,KAAK,CAACJ,IAAI,EAAEG,IAAI,CAAC,EAC1B,IAAIR,IAAI,CAACS,KAAK,CAACP,IAAI,EAAEI,IAAI,CAC7B,CAAC;EACL,CAAC;;EAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EACI,IAAIH,QAAQ,GAAG,SAAXA,QAAQA,CAAaO,CAAC,EAAEC,GAAG,EAAEC,GAAG,EAAE;IAClCD,GAAG,KAAKD,CAAC,GAAGG,IAAI,CAACD,GAAG,CAACF,CAAC,EAAEC,GAAG,CAAC,CAAC;IAC7BC,GAAG,KAAKF,CAAC,GAAGG,IAAI,CAACC,GAAG,CAACJ,CAAC,EAAEE,GAAG,CAAC,CAAC;IAC7B,OAAOF,CAAC;EACZ,CAAC;;EAED;AACJ;AACA;AACA;AACA;AACA;EACI,IAAIK,OAAO,GAAG,SAAVA,OAAOA,CAAaC,MAAM,EAAE;IAC5B,OAAO,gBAAgB,KAAKC,MAAM,CAACC,SAAS,CAACC,QAAQ,CAACC,IAAI,CAACJ,MAAM,CAAC;EACtE,CAAC;;EAED;AACJ;AACA;AACA;AACA;AACA;AACA;EACI,IAAIK,OAAO,GAAG,SAAVA,OAAOA,CAAaC,IAAI,EAAEN,MAAM,EAAE;IAClC,IAAIO,KAAK,GAAG,CAAC,CAAC;IACd,IAAIR,OAAO,CAACC,MAAM,CAAC,EAAE;MACjB,IAAIA,MAAM,CAACK,OAAO,EAAE;QAChBE,KAAK,GAAGP,MAAM,CAACK,OAAO,CAACC,IAAI,CAAC;MAChC,CAAC,MAAM;QACH,KAAK,IAAIZ,CAAC,GAAG,CAAC,EAAEc,CAAC,EAAGA,CAAC,GAAGR,MAAM,CAACN,CAAC,CAAC,EAAGA,CAAC,EAAE,EAAE;UACrC,IAAIc,CAAC,KAAKF,IAAI,EAAE;YACZC,KAAK,GAAGb,CAAC;YACT;UACJ;QACJ;MACJ;IACJ;IACA,OAAOa,KAAK;EAChB,CAAC;;EAED;AACJ;AACA;EACI,IAAIE,eAAe;EACf;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACS1C,OAAO,CAAC0C,eAAe,GAAG,UAAUvC,GAAG,EAAEwC,OAAO,EAAE;IAC/C,IAAI,CAACxC,GAAG,EAAE;MACN;IACJ;IACA,IAAI,CAACyC,IAAI,GAAGzC,GAAG;IACf,IAAI,CAAC0C,QAAQ,GAAG,EAAE;IAClB,IAAI,CAACC,SAAS,GAAG,EAAE;IAEnB,IAAIC,IAAI,GAAGJ,OAAO,IAAI,CAAC,CAAC;IACxB,IAAI,CAACK,SAAS,GAAGD,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;IACvC,IAAI,CAACE,QAAQ,GAAGF,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;IACrC,IAAI,CAACG,eAAe,GAAGH,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;IAClD,IAAI,CAACI,gBAAgB,GAAG,KAAK;IAC7B,IAAIJ,IAAI,CAAC,iBAAiB,CAAC,IAAIK,SAAS,EAAE;MACtC,IAAI,CAACD,gBAAgB,GAAGJ,IAAI,CAAC,iBAAiB,CAAC;IACnD;IACA,IAAI,CAACM,OAAO,GAAGN,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;IAEnC,IAAIO,IAAI,GAAG,IAAI;IACf,IAAI,CAACV,IAAI,CAACW,gBAAgB,CAAC,SAAS,EAAE,YAAY;MAC9CD,IAAI,CAACE,OAAO,CAAC,CAAC;IAClB,CAAC,CAAC;IAEF,IAAI,CAACZ,IAAI,CAACW,gBAAgB,CAAC,SAAS,EAAE,YAAY;MAC9CD,IAAI,CAACE,OAAO,CAAC,CAAC;IAClB,CAAC,CAAC;IAEF,IAAIC,IAAI,GAAGV,IAAI,CAAC,SAAS,CAAC;IAC1Bf,OAAO,CAACyB,IAAI,CAAC,IAAI,IAAI,CAACC,UAAU,CAACD,IAAI,CAAC;EAC1C,CAAE;;EAEN;AACJ;AACA;AACA;AACA;AACA;EACIf,eAAe,CAACP,SAAS,CAACuB,UAAU,GAAG,UAAUC,OAAO,EAAE;IACtD,KAAK,IAAIhC,CAAC,GAAG,CAAC,EAAEiC,GAAG,GAAGD,OAAO,CAACE,MAAM,EAAElC,CAAC,GAAGiC,GAAG,EAAEjC,CAAC,EAAE,EAAE;MAChD,IAAI,CAACmC,aAAa,CAACH,OAAO,CAAChC,CAAC,CAAC,CAAC;IAClC;IACA,IAAI,CAACoC,eAAe,CAAC,CAAC;EAC1B,CAAC;;EAED;AACJ;AACA;AACA;AACA;AACA;EACIrB,eAAe,CAACP,SAAS,CAAC2B,aAAa,GAAG,UAAUE,MAAM,EAAE;IACxD,IAAIxB,KAAK,GAAGF,OAAO,CAAC0B,MAAM,EAAE,IAAI,CAACnB,QAAQ,CAAC;IAC1C,IAAIL,KAAK,KAAK,CAAC,CAAC,EAAE;MACdwB,MAAM,CAACC,WAAW,GAAG,KAAK;MAC1B,IAAI,CAACpB,QAAQ,CAACqB,IAAI,CAACF,MAAM,CAAC,CAAC,CAAC;IAChC;EACJ,CAAC;;EAED;AACJ;AACA;AACA;AACA;EACItB,eAAe,CAACP,SAAS,CAACgC,SAAS,GAAG,UAAUH,MAAM,EAAE;IACpD,IAAI,CAACF,aAAa,CAACE,MAAM,CAAC;IAC1B,IAAI,CAACD,eAAe,CAAC,CAAC;EAC1B,CAAC;;EAED;AACJ;AACA;AACA;EACIrB,eAAe,CAACP,SAAS,CAAC4B,eAAe,GAAG,YAAY;IACpD,IAAIK,SAAS,GAAG,IAAI,CAACxB,IAAI,CAACyB,SAAS,CAAC,CAAC;IACrC,IAAIC,cAAc,GAAGpE,iBAAiB,CAClC,IAAI,CAAC0C,IAAI,EACTwB,SAAS,EACT,IAAI,CAACpB,SACT,CAAC;IACD,KAAK,IAAIrB,CAAC,GAAG,CAAC,EAAEqC,MAAM,EAAGA,MAAM,GAAG,IAAI,CAACnB,QAAQ,CAAClB,CAAC,CAAC,EAAGA,CAAC,EAAE,EAAE;MACtD,IACI,CAACqC,MAAM,CAACC,WAAW,IACnBK,cAAc,CAACC,aAAa,CAACP,MAAM,CAACQ,WAAW,CAAC,CAAC,CAAC,EACpD;QACE,IAAI,CAACC,oBAAoB,CAACT,MAAM,CAAC;MACrC;IACJ;IAEA,IAAIJ,GAAG,GAAG,IAAI,CAACf,QAAQ,CAACgB,MAAM;IAC9B,KAAK,IAAIlC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGiC,GAAG,EAAEjC,CAAC,EAAE,EAAE;MAC1B,IAAI,IAAI,CAACmB,SAAS,CAACnB,CAAC,CAAC,EAAE;QACnB,IAAI,CAACmB,SAAS,CAACnB,CAAC,CAAC,CAAC+C,MAAM,CAAC,CAAC;MAC9B;IACJ;EACJ,CAAC;;EAED;AACJ;AACA;AACA;AACA;AACA;EACIhC,eAAe,CAACP,SAAS,CAACsC,oBAAoB,GAAG,UAAUT,MAAM,EAAE;IAC/D,IAAIW,QAAQ,GAAG,OAAO;IACtB,IAAIC,cAAc,GAAG,IAAI;IACzB,IAAIC,QAAQ,GAAGb,MAAM,CAACQ,WAAW,CAAC,CAAC;IACnC,KAAK,IAAI7C,CAAC,GAAG,CAAC,EAAEmD,OAAO,EAAGA,OAAO,GAAG,IAAI,CAAChC,SAAS,CAACnB,CAAC,CAAC,EAAGA,CAAC,EAAE,EAAE;MACzD,IAAIoD,MAAM,GAAGD,OAAO,CAACE,SAAS,CAAC,CAAC;MAChC,IAAID,MAAM,EAAE;QACR,IAAIE,CAAC,GAAG,IAAI,CAACrC,IAAI,CAACsC,WAAW,CAACH,MAAM,EAAEf,MAAM,CAACQ,WAAW,CAAC,CAAC,CAAC;QAC3D,IAAIS,CAAC,GAAGN,QAAQ,EAAE;UACdA,QAAQ,GAAGM,CAAC;UACZL,cAAc,GAAGE,OAAO;QAC5B;MACJ;IACJ;IAEA,IAAIF,cAAc,IAAIA,cAAc,CAACO,uBAAuB,CAACnB,MAAM,CAAC,EAAE;MAClEY,cAAc,CAACT,SAAS,CAACH,MAAM,CAAC;IACpC,CAAC,MAAM;MACH,IAAIc,OAAO,GAAG,IAAIM,OAAO,CAAC,IAAI,CAAC;MAC/BN,OAAO,CAACX,SAAS,CAACH,MAAM,CAAC;MACzB,IAAI,CAAClB,SAAS,CAACoB,IAAI,CAACY,OAAO,CAAC;IAChC;EACJ,CAAC;;EAED;AACJ;AACA;AACA;EACIpC,eAAe,CAACP,SAAS,CAACkD,kBAAkB,GAAG,YAAY;IACvD,KAAK,IAAI1D,CAAC,GAAG,CAAC,EAAEmD,OAAO,EAAGA,OAAO,GAAG,IAAI,CAAChC,SAAS,CAACnB,CAAC,CAAC,EAAGA,CAAC,EAAE,EAAE;MACzDmD,OAAO,CAACQ,MAAM,CAAC,CAAC;IACpB;IACA,IAAI,CAACxC,SAAS,GAAG,EAAE,CAAC,CAAC;IACrB,IAAI,CAACyC,yBAAyB,CAAC,CAAC,CAAC,CAAC;EACtC,CAAC;;EAED;AACJ;AACA;AACA;EACI7C,eAAe,CAACP,SAAS,CAACoD,yBAAyB,GAAG,YAAY;IAC9D,KAAK,IAAI5D,CAAC,GAAG,CAAC,EAAEqC,MAAM,EAAGA,MAAM,GAAG,IAAI,CAACnB,QAAQ,CAAClB,CAAC,CAAC,EAAGA,CAAC,EAAE,EAAE;MACtDqC,MAAM,CAACC,WAAW,GAAG,KAAK;IAC9B;EACJ,CAAC;;EAED;AACJ;AACA;AACA;EACIvB,eAAe,CAACP,SAAS,CAACqD,qBAAqB,GAAG,YAAY;IAC1D,KAAK,IAAI7D,CAAC,GAAG,CAAC,EAAEqC,MAAM,EAAGA,MAAM,GAAG,IAAI,CAACnB,QAAQ,CAAClB,CAAC,CAAC,EAAGA,CAAC,EAAE,EAAE;MACtDqC,MAAM,CAACC,WAAW,GAAG,KAAK;MAC1BwB,QAAQ,GAAGzB,MAAM,CAAC0B,QAAQ,CAAC,CAAC;MAC5B,IAAI,CAAC9C,IAAI,CAAC+C,aAAa,CAAC3B,MAAM,CAAC;MAC/BA,MAAM,CAAC4B,QAAQ,CAACH,QAAQ,CAAC;IAC7B;EACJ,CAAC;;EAED;AACJ;AACA;AACA;AACA;AACA;EACI/C,eAAe,CAACP,SAAS,CAAC0D,aAAa,GAAG,UAAU7B,MAAM,EAAE;IACxD,IAAIxB,KAAK,GAAGF,OAAO,CAAC0B,MAAM,EAAE,IAAI,CAACnB,QAAQ,CAAC;IAC1C,IAAIL,KAAK,KAAK,CAAC,CAAC,EAAE;MACd,OAAO,KAAK;IAChB;IACAiD,QAAQ,GAAGzB,MAAM,CAAC0B,QAAQ,CAAC,CAAC;IAC5B,IAAI,CAAC9C,IAAI,CAAC+C,aAAa,CAAC3B,MAAM,CAAC;IAC/BA,MAAM,CAAC4B,QAAQ,CAACH,QAAQ,CAAC;IACzB,IAAI,CAAC5C,QAAQ,CAACiD,MAAM,CAACtD,KAAK,EAAE,CAAC,CAAC;IAC9B,OAAO,IAAI;EACf,CAAC;;EAED;AACJ;AACA;AACA;AACA;AACA;EACIE,eAAe,CAACP,SAAS,CAAC4D,YAAY,GAAG,UAAU/B,MAAM,EAAE;IACvD,IAAIgC,OAAO,GAAG,IAAI,CAACH,aAAa,CAAC7B,MAAM,CAAC;IACxC,IAAIgC,OAAO,EAAE;MACT,IAAI,CAACX,kBAAkB,CAAC,CAAC;MACzB,IAAI,CAACtB,eAAe,CAAC,CAAC;IAC1B;IACA,OAAOiC,OAAO;EAClB,CAAC;;EAED;AACJ;AACA;AACA;AACA;AACA;EACItD,eAAe,CAACP,SAAS,CAAC8D,aAAa,GAAG,UAAUtC,OAAO,EAAE;IACzD,IAAIqC,OAAO,GAAG,KAAK;IACnB,KAAK,IAAIrE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGgC,OAAO,CAACE,MAAM,EAAElC,CAAC,EAAE,EAAE;MACrC,IAAIuE,CAAC,GAAG,IAAI,CAACL,aAAa,CAAClC,OAAO,CAAChC,CAAC,CAAC,CAAC;MACtCqE,OAAO,GAAGA,OAAO,IAAIE,CAAC;IAC1B;IAEA,IAAIF,OAAO,EAAE;MACT,IAAI,CAACX,kBAAkB,CAAC,CAAC;MACzB,IAAI,CAACtB,eAAe,CAAC,CAAC;IAC1B;IACA,OAAOiC,OAAO;EAClB,CAAC;;EAED;AACJ;AACA;AACA;EACItD,eAAe,CAACP,SAAS,CAACgE,YAAY,GAAG,YAAY;IACjD,IAAI,CAACd,kBAAkB,CAAC,CAAC;IACzB,IAAI,CAACG,qBAAqB,CAAC,CAAC;IAC5B,IAAI,CAAC3C,QAAQ,GAAG,EAAE;EACtB,CAAC;;EAED;AACJ;AACA;AACA;EACIH,eAAe,CAACP,SAAS,CAACqB,OAAO,GAAG,YAAY;IAC5C,IAAI,CAAC6B,kBAAkB,CAAC,CAAC;IACzB,IAAI,CAACtB,eAAe,CAAC,CAAC;EAC1B,CAAC;;EAED;AACJ;AACA;AACA;EACIrB,eAAe,CAACP,SAAS,CAACiE,WAAW,GAAG,YAAY;IAChD,OAAO,IAAI,CAACpD,SAAS;EACzB,CAAC;;EAED;AACJ;AACA;AACA;AACA;EACIN,eAAe,CAACP,SAAS,CAACkE,WAAW,GAAG,UAAUC,IAAI,EAAE;IACpD,IAAI,CAACtD,SAAS,GAAGsD,IAAI;IACrB,IAAI,CAAC9C,OAAO,CAAC,CAAC;EAClB,CAAC;;EAED;AACJ;AACA;AACA;EACId,eAAe,CAACP,SAAS,CAACoE,UAAU,GAAG,YAAY;IAC/C,OAAO,IAAI,CAACtD,QAAQ;EACxB,CAAC;;EAED;AACJ;AACA;AACA;AACA;EACIP,eAAe,CAACP,SAAS,CAACqE,UAAU,GAAG,UAAUC,OAAO,EAAE;IACtD,IAAI,CAACxD,QAAQ,GAAGwD,OAAO;IACvB,IAAI,CAACjD,OAAO,CAAC,CAAC;EAClB,CAAC;;EAED;AACJ;AACA;AACA;EACId,eAAe,CAACP,SAAS,CAACuE,SAAS,GAAG,YAAY;IAC9C,OAAO,IAAI,CAACrD,OAAO;EACvB,CAAC;;EAED;AACJ;AACA;AACA;AACA;EACIX,eAAe,CAACP,SAAS,CAACwE,SAAS,GAAG,UAAUC,MAAM,EAAE;IACpD,IAAI,CAACvD,OAAO,GAAGuD,MAAM;IACrB,IAAI,CAACpD,OAAO,CAAC,CAAC;EAClB,CAAC;;EAED;AACJ;AACA;AACA;EACId,eAAe,CAACP,SAAS,CAAC0E,iBAAiB,GAAG,YAAY;IACtD,OAAO,IAAI,CAAC3D,eAAe;EAC/B,CAAC;;EAED;AACJ;AACA;AACA;AACA;EACIR,eAAe,CAACP,SAAS,CAAC2E,iBAAiB,GAAG,UAAUR,IAAI,EAAE;IAC1D,IAAI,CAACpD,eAAe,GAAGoD,IAAI;IAC3B,IAAI,CAAC9C,OAAO,CAAC,CAAC;EAClB,CAAC;;EAED;AACJ;AACA;AACA;EACId,eAAe,CAACP,SAAS,CAAC4E,eAAe,GAAG,YAAY;IACpD,OAAO,IAAI,CAAC5D,gBAAgB;EAChC,CAAC;;EAED;AACJ;AACA;AACA;EACIT,eAAe,CAACP,SAAS,CAAC6E,MAAM,GAAG,YAAY;IAC3C,OAAO,IAAI,CAACpE,IAAI;EACpB,CAAC;;EAED;AACJ;AACA;AACA;EACIF,eAAe,CAACP,SAAS,CAAC8E,UAAU,GAAG,YAAY;IAC/C,OAAO,IAAI,CAACpE,QAAQ;EACxB,CAAC;;EAED;AACJ;AACA;AACA;EACIH,eAAe,CAACP,SAAS,CAAC+E,gBAAgB,GAAG,YAAY;IACrD,IAAIC,KAAK,GAAG,CAAC;IACb,KAAK,IAAIxF,CAAC,GAAG,CAAC,EAAEmD,OAAO,EAAGA,OAAO,GAAG,IAAI,CAAChC,SAAS,CAACnB,CAAC,CAAC,EAAGA,CAAC,EAAE,EAAE;MACzDmD,OAAO,CAACsC,MAAM,CAAC,CAAC,IAAID,KAAK,EAAE;IAC/B;IACA,OAAOA,KAAK;EAChB,CAAC;;EAED;AACJ;AACA;AACA;AACA;AACA;AACA;EACI,SAAS/B,OAAOA,CAACiC,eAAe,EAAE;IAC9B,IAAI,CAACC,gBAAgB,GAAGD,eAAe;IACvC,IAAI,CAACzE,IAAI,GAAGyE,eAAe,CAACL,MAAM,CAAC,CAAC;IACpC,IAAI,CAAC9D,eAAe,GAAGmE,eAAe,CAACR,iBAAiB,CAAC,CAAC;IAC1D,IAAI,CAAC1D,gBAAgB,GAAGkE,eAAe,CAACN,eAAe,CAAC,CAAC;IACzD,IAAI,CAACQ,OAAO,GAAG,IAAI,CAAC,CAAC;IACrB,IAAI,CAAC1E,QAAQ,GAAG,EAAE,CAAC,CAAC;IACpB,IAAI,CAAC2E,WAAW,GAAG,IAAI,CAAC,CAAC;IACzB,IAAI,CAACC,OAAO,GAAG,KAAK,CAAC,CAAC;;IAEtB,IAAI,CAACC,cAAc,GAAG,IAAI1H,OAAO,CAAC2H,eAAe,CAC7C,IAAI,CAACJ,OAAO,EACZ,IAAI,CAAC1E,QAAQ,CAACgB,MAAM,EACpB;MACI+C,MAAM,EAAE,IAAI,CAACU,gBAAgB,CAACZ,SAAS,CAAC;IAC5C,CACJ,CAAC;IACD;EACJ;;EAEA;AACJ;AACA;AACA;AACA;EACItB,OAAO,CAACjD,SAAS,CAACgC,SAAS,GAAG,UAAUH,MAAM,EAAE;IAC5C,IAAI,IAAI,CAAC4D,iBAAiB,CAAC5D,MAAM,CAAC,EAAE;MAChC,OAAO,KAAK;IAChB,CAAC,CAAC;;IAEF,IAAI,CAAC,IAAI,CAACuD,OAAO,EAAE;MACf,IAAI,CAACA,OAAO,GAAGvD,MAAM,CAACQ,WAAW,CAAC,CAAC;MACnC,IAAI,CAACqD,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC,MAAM;MACH,IAAI,IAAI,CAAC1E,gBAAgB,EAAE;QACvB,IAAI2E,CAAC,GAAG,IAAI,CAACjF,QAAQ,CAACgB,MAAM,GAAG,CAAC;QAChC,IAAIrC,GAAG,GACH,CAAC,IAAI,CAAC+F,OAAO,CAAC/F,GAAG,IAAIsG,CAAC,GAAG,CAAC,CAAC,GAAG9D,MAAM,CAACQ,WAAW,CAAC,CAAC,CAAChD,GAAG,IAAIsG,CAAC;QAC/D,IAAIzG,GAAG,GACH,CAAC,IAAI,CAACkG,OAAO,CAAClG,GAAG,IAAIyG,CAAC,GAAG,CAAC,CAAC,GAAG9D,MAAM,CAACQ,WAAW,CAAC,CAAC,CAACnD,GAAG,IAAIyG,CAAC;QAC/D,IAAI,CAACP,OAAO,GAAG,IAAItG,IAAI,CAACS,KAAK,CAACL,GAAG,EAAEG,GAAG,CAAC;QACvC,IAAI,CAACqG,gBAAgB,CAAC,CAAC;MAC3B,CAAC,CAAC;IACN;IAEA7D,MAAM,CAACC,WAAW,GAAG,IAAI;IACzB,IAAI,CAACpB,QAAQ,CAACqB,IAAI,CAACF,MAAM,CAAC;EAC9B,CAAC;;EAED;AACJ;AACA;AACA;EACIoB,OAAO,CAACjD,SAAS,CAACuC,MAAM,GAAG,YAAY;IACnC,IAAId,GAAG,GAAG,IAAI,CAACf,QAAQ,CAACgB,MAAM;IAE9B,IAAID,GAAG,GAAG,IAAI,CAACV,eAAe,EAAE;MAC5B,KAAK,IAAIvB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGiC,GAAG,EAAEjC,CAAC,EAAE,EAAE;QAC1B,IAAI,CAACiB,IAAI,CAACmF,UAAU,CAAC,IAAI,CAAClF,QAAQ,CAAClB,CAAC,CAAC,CAAC;MAC1C;IACJ,CAAC,MAAM;MACH,IAAI,CAACiB,IAAI,CAACmF,UAAU,CAAC,IAAI,CAACL,cAAc,CAAC;MACzC,IAAI,CAACD,OAAO,GAAG,IAAI;MACnB,IAAI,CAACO,mBAAmB,CAAC,CAAC;IAC9B;EACJ,CAAC;;EAED;AACJ;AACA;AACA;AACA;EACI5C,OAAO,CAACjD,SAAS,CAACyF,iBAAiB,GAAG,UAAU5D,MAAM,EAAE;IACpD,IAAI,IAAI,CAACnB,QAAQ,CAACP,OAAO,EAAE;MACvB,OAAO,IAAI,CAACO,QAAQ,CAACP,OAAO,CAAC0B,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC,MAAM;MACH,KAAK,IAAIrC,CAAC,GAAG,CAAC,EAAEc,CAAC,EAAGA,CAAC,GAAG,IAAI,CAACI,QAAQ,CAAClB,CAAC,CAAC,EAAGA,CAAC,EAAE,EAAE;QAC5C,IAAIc,CAAC,KAAKuB,MAAM,EAAE;UACd,OAAO,IAAI;QACf;MACJ;IACJ;IACA,OAAO,KAAK;EAChB,CAAC;;EAED;AACJ;AACA;AACA;AACA;EACIoB,OAAO,CAACjD,SAAS,CAACgD,uBAAuB,GAAG,UAAUnB,MAAM,EAAE;IAC1D,OAAO,IAAI,CAACwD,WAAW,CAACjD,aAAa,CAACP,MAAM,CAACQ,WAAW,CAAC,CAAC,CAAC;EAC/D,CAAC;EAEDY,OAAO,CAACjD,SAAS,CAACiF,MAAM,GAAG,UAAUpD,MAAM,EAAE;IACzC,OAAO,IAAI,CAACyD,OAAO;EACvB,CAAC;;EAED;AACJ;AACA;AACA;EACIrC,OAAO,CAACjD,SAAS,CAAC0F,gBAAgB,GAAG,YAAY;IAC7C,IAAIzH,MAAM,GAAG,IAAIa,IAAI,CAACC,MAAM,CAAC,IAAI,CAACqG,OAAO,EAAE,IAAI,CAACA,OAAO,CAAC;IACxD,IAAI,CAACC,WAAW,GAAGtH,iBAAiB,CAChC,IAAI,CAAC0C,IAAI,EACTxC,MAAM,EACN,IAAI,CAACkH,gBAAgB,CAAClB,WAAW,CAAC,CACtC,CAAC;EACL,CAAC;;EAED;AACJ;AACA;AACA;EACIhB,OAAO,CAACjD,SAAS,CAAC6F,mBAAmB,GAAG,YAAY;IAChD,IAAI,IAAI,CAACpF,IAAI,CAACqF,OAAO,CAAC,CAAC,GAAG,IAAI,CAACX,gBAAgB,CAACf,UAAU,CAAC,CAAC,EAAE;MAC1D,IAAI,CAACmB,cAAc,IAAI,IAAI,CAAC9E,IAAI,CAAC+C,aAAa,CAAC,IAAI,CAAC+B,cAAc,CAAC;MACnE,KAAK,IAAI/F,CAAC,GAAG,CAAC,EAAEqC,MAAM,EAAGA,MAAM,GAAG,IAAI,CAACnB,QAAQ,CAAClB,CAAC,CAAC,EAAGA,CAAC,EAAE,EAAE;QACtD,IAAI,CAACiB,IAAI,CAACmF,UAAU,CAAC/D,MAAM,CAAC;MAChC;MACA;IACJ;IAEA,IAAI,IAAI,CAACnB,QAAQ,CAACgB,MAAM,GAAG,IAAI,CAACX,eAAe,EAAE;MAC7C,IAAI,CAACwE,cAAc,CAACQ,IAAI,CAAC,CAAC;MAC1B;IACJ;IAEA,IAAI,CAACR,cAAc,CAACS,WAAW,CAAC,IAAI,CAACZ,OAAO,CAAC;IAE7C,IAAI,CAACG,cAAc,CAACU,OAAO,CAAC,IAAI,CAACvF,QAAQ,CAACgB,MAAM,CAAC;IAEjD,IAAIwE,OAAO,GAAG,IAAI,CAACzF,IAAI;IACvB,IAAI0F,UAAU,GAAG,IAAI,CAACjE,SAAS,CAAC,CAAC;IACjC,IAAI,CAACqD,cAAc,CAACnE,gBAAgB,CAAC,OAAO,EAAE,UAAUgF,KAAK,EAAE;MAC3DF,OAAO,CAACG,WAAW,CAACF,UAAU,CAAC;IACnC,CAAC,CAAC;EACN,CAAC;;EAED;AACJ;AACA;AACA;EACIlD,OAAO,CAACjD,SAAS,CAACmD,MAAM,GAAG,YAAY;IACnC,KAAK,IAAI3D,CAAC,GAAG,CAAC,EAAEc,CAAC,EAAGA,CAAC,GAAG,IAAI,CAACI,QAAQ,CAAClB,CAAC,CAAC,EAAGA,CAAC,EAAE,EAAE;MAC5C8D,QAAQ,GAAG,IAAI,CAAC5C,QAAQ,CAAClB,CAAC,CAAC,CAAC+D,QAAQ,CAAC,CAAC;MACtC,IAAI,CAAC7C,QAAQ,CAAClB,CAAC,CAAC,CAACqF,MAAM,CAAC,CAAC,IACrB,IAAI,CAACpE,IAAI,CAAC+C,aAAa,CAAC,IAAI,CAAC9C,QAAQ,CAAClB,CAAC,CAAC,CAAC;MAC7C,IAAI,CAACkB,QAAQ,CAAClB,CAAC,CAAC,CAACiE,QAAQ,CAACH,QAAQ,CAAC;IACvC,CAAC,CAAC;IACF,IAAI,CAAC7C,IAAI,CAAC+C,aAAa,CAAC,IAAI,CAAC+B,cAAc,CAAC;IAC5C,IAAI,CAAC7E,QAAQ,CAACgB,MAAM,GAAG,CAAC;IACxB,OAAO,IAAI,CAAChB,QAAQ;EACxB,CAAC;;EAED;AACJ;AACA;AACA;EACIuC,OAAO,CAACjD,SAAS,CAACkC,SAAS,GAAG,YAAY;IACtC,IAAIjE,MAAM,GAAG,IAAIa,IAAI,CAACC,MAAM,CAAC,IAAI,CAACqG,OAAO,EAAE,IAAI,CAACA,OAAO,CAAC;IACxD,KAAK,IAAI5F,CAAC,GAAG,CAAC,EAAEqC,MAAM,EAAGA,MAAM,GAAG,IAAI,CAACnB,QAAQ,CAAClB,CAAC,CAAC,EAAGA,CAAC,EAAE,EAAE;MACtDvB,MAAM,CAACqI,MAAM,CAACzE,MAAM,CAACQ,WAAW,CAAC,CAAC,CAAC;IACvC;IACA,OAAOpE,MAAM;EACjB,CAAC;;EAED;AACJ;AACA;AACA;EACIgF,OAAO,CAACjD,SAAS,CAAC6C,SAAS,GAAG,YAAY;IACtC,OAAO,IAAI,CAACuC,OAAO;EACvB,CAAC;AACL,CAAC,EAAE,CAAC","ignoreList":[]}
|
package/lib/b-map/lushu.js
CHANGED
|
@@ -1,44 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function _typeof(
|
|
4
|
-
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports["default"] = void 0;
|
|
9
|
-
|
|
10
|
-
var _moment = _interopRequireDefault(require("moment"));
|
|
11
|
-
|
|
8
|
+
var _dayjs = _interopRequireDefault(require("dayjs"));
|
|
12
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
13
|
-
|
|
14
|
-
function
|
|
15
|
-
|
|
16
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
17
|
-
|
|
18
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
19
|
-
|
|
20
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
21
|
-
|
|
10
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
12
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
22
13
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
23
|
-
|
|
24
|
-
function
|
|
25
|
-
|
|
26
|
-
function
|
|
27
|
-
|
|
28
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
29
|
-
|
|
30
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
31
|
-
|
|
14
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
15
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
16
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
17
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
32
18
|
var LuShu = function LuShu(props, ref) {
|
|
33
19
|
var map = props.map,
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
20
|
+
points = props.points,
|
|
21
|
+
icon = props.icon;
|
|
37
22
|
var _useState = (0, _react.useState)(),
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
23
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
24
|
+
instance = _useState2[0],
|
|
25
|
+
setInstance = _useState2[1];
|
|
42
26
|
(0, _react.useImperativeHandle)(ref, function () {
|
|
43
27
|
return {
|
|
44
28
|
lushu: instance
|
|
@@ -48,11 +32,11 @@ var LuShu = function LuShu(props, ref) {
|
|
|
48
32
|
var path = [];
|
|
49
33
|
points.forEach(function (item) {
|
|
50
34
|
var lng = item.lng,
|
|
51
|
-
|
|
35
|
+
lat = item.lat;
|
|
52
36
|
path.push(new window.BMap.Point(lng, lat));
|
|
53
37
|
});
|
|
54
38
|
var line = new window.BMap.Polyline(path);
|
|
55
|
-
line.name = (0,
|
|
39
|
+
line.name = (0, _dayjs["default"])().valueOf();
|
|
56
40
|
map.addOverlay(line);
|
|
57
41
|
var lushu = new window.BMapLib.LuShu(map, path, {
|
|
58
42
|
landmarkPois: [],
|
|
@@ -71,8 +55,5 @@ var LuShu = function LuShu(props, ref) {
|
|
|
71
55
|
}, [points]);
|
|
72
56
|
return /*#__PURE__*/_react["default"].createElement("div", null);
|
|
73
57
|
};
|
|
74
|
-
|
|
75
|
-
var _default = /*#__PURE__*/(0, _react.forwardRef)(LuShu);
|
|
76
|
-
|
|
77
|
-
exports["default"] = _default;
|
|
58
|
+
var _default = exports["default"] = /*#__PURE__*/(0, _react.forwardRef)(LuShu);
|
|
78
59
|
//# sourceMappingURL=lushu.js.map
|
package/lib/b-map/lushu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lushu.js","names":["LuShu","props","ref","map","points","icon","useState","instance","setInstance","useImperativeHandle","lushu","useEffect","path","forEach","item","lng","lat","
|
|
1
|
+
{"version":3,"file":"lushu.js","names":["_dayjs","_interopRequireDefault","require","_react","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","a","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","length","l","Symbol","iterator","u","next","done","push","value","isArray","LuShu","props","ref","map","points","icon","_useState","useState","_useState2","instance","setInstance","useImperativeHandle","lushu","useEffect","path","forEach","item","lng","lat","window","BMap","Point","line","Polyline","dayjs","valueOf","addOverlay","BMapLib","landmarkPois","Icon","url","Size","width","height","defaultContent","enableRotation","start","stop","hideInfoWindow","removeOverlay","_marker","React","createElement","_default","exports","forwardRef"],"sources":["b-map/lushu.js"],"sourcesContent":["import dayjs from 'dayjs';\nimport React, { forwardRef, useEffect, useImperativeHandle, useState, } from 'react';\nconst LuShu = (props, ref) => {\n const { map, points, icon } = props;\n const [instance, setInstance] = useState();\n useImperativeHandle(ref, () => ({\n lushu: instance,\n }));\n useEffect(() => {\n const path = [];\n points.forEach((item) => {\n const { lng, lat } = item;\n path.push(new window.BMap.Point(lng, lat));\n });\n const line = new window.BMap.Polyline(path);\n line.name = dayjs().valueOf();\n map.addOverlay(line);\n const lushu = new window.BMapLib.LuShu(map, path, {\n landmarkPois: [],\n icon: new window.BMap.Icon(icon === null || icon === void 0 ? void 0 : icon.url, new window.BMap.Size(icon === null || icon === void 0 ? void 0 : icon.width, icon === null || icon === void 0 ? void 0 : icon.height)),\n defaultContent: '',\n enableRotation: true,\n });\n setInstance(lushu);\n lushu.start();\n return () => {\n lushu.stop();\n lushu.hideInfoWindow();\n map.removeOverlay(line);\n map.removeOverlay(lushu._marker);\n };\n }, [points]);\n return React.createElement(\"div\", null);\n};\nexport default forwardRef(LuShu);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,20 +4,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
|
|
10
8
|
require("./js/marker-clusterer.js");
|
|
11
|
-
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
13
|
-
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
14
10
|
var MarkerCluster = function MarkerCluster(props) {
|
|
15
11
|
var map = props.map,
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
12
|
+
markerIcon = props.markerIcon,
|
|
13
|
+
markerClusterIcon = props.markerClusterIcon,
|
|
14
|
+
points = props.points,
|
|
15
|
+
onMarkerClick = props.onMarkerClick;
|
|
21
16
|
_react["default"].useEffect(function () {
|
|
22
17
|
var markers = [];
|
|
23
18
|
var myIcon = new window.BMap.Icon(markerIcon.url, new window.BMap.Size(markerIcon.width, markerIcon.height));
|
|
@@ -43,10 +38,7 @@ var MarkerCluster = function MarkerCluster(props) {
|
|
|
43
38
|
markerClusterer.clearMarkers();
|
|
44
39
|
};
|
|
45
40
|
}, [points]);
|
|
46
|
-
|
|
47
41
|
return /*#__PURE__*/_react["default"].createElement("div", null);
|
|
48
42
|
};
|
|
49
|
-
|
|
50
|
-
var _default = MarkerCluster;
|
|
51
|
-
exports["default"] = _default;
|
|
43
|
+
var _default = exports["default"] = MarkerCluster;
|
|
52
44
|
//# sourceMappingURL=marker-clusterer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marker-clusterer.js","names":["MarkerCluster","props","map","markerIcon","markerClusterIcon","points","onMarkerClick","React","useEffect","markers","myIcon","window","BMap","Icon","url","Size","width","height","markerClusterer","undefined","forEach","item","point","Point","lng","lat","marker","Marker","icon","addEventListener","push","BMapLib","MarkerClusterer","styles","size","clearMarkers","createElement"],"sources":["b-map/marker-clusterer.js"],"sourcesContent":["import React from 'react';\nimport './js/marker-clusterer.js';\nconst MarkerCluster = (props) => {\n const { map, markerIcon, markerClusterIcon, points, onMarkerClick } = props;\n React.useEffect(() => {\n const markers = [];\n const myIcon = new window.BMap.Icon(markerIcon.url, new window.BMap.Size(markerIcon.width, markerIcon.height));\n let markerClusterer = undefined;\n points.forEach((item) => {\n const point = new window.BMap.Point(item.lng, item.lat);\n const marker = new window.BMap.Marker(point, {\n icon: myIcon,\n });\n marker.addEventListener('click', () => {\n onMarkerClick && onMarkerClick(item);\n });\n markers.push(marker);\n });\n markerClusterer = new window.BMapLib.MarkerClusterer(map, {\n markers,\n styles: [\n {\n url: markerClusterIcon.url,\n size: new window.BMap.Size(markerClusterIcon.width, markerClusterIcon.height),\n },\n ],\n });\n return () => {\n markerClusterer.clearMarkers();\n };\n }, [points]);\n return React.createElement(\"div\", null);\n};\nexport default MarkerCluster;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"marker-clusterer.js","names":["_react","_interopRequireDefault","require","e","__esModule","MarkerCluster","props","map","markerIcon","markerClusterIcon","points","onMarkerClick","React","useEffect","markers","myIcon","window","BMap","Icon","url","Size","width","height","markerClusterer","undefined","forEach","item","point","Point","lng","lat","marker","Marker","icon","addEventListener","push","BMapLib","MarkerClusterer","styles","size","clearMarkers","createElement","_default","exports"],"sources":["b-map/marker-clusterer.js"],"sourcesContent":["import React from 'react';\nimport './js/marker-clusterer.js';\nconst MarkerCluster = (props) => {\n const { map, markerIcon, markerClusterIcon, points, onMarkerClick } = props;\n React.useEffect(() => {\n const markers = [];\n const myIcon = new window.BMap.Icon(markerIcon.url, new window.BMap.Size(markerIcon.width, markerIcon.height));\n let markerClusterer = undefined;\n points.forEach((item) => {\n const point = new window.BMap.Point(item.lng, item.lat);\n const marker = new window.BMap.Marker(point, {\n icon: myIcon,\n });\n marker.addEventListener('click', () => {\n onMarkerClick && onMarkerClick(item);\n });\n markers.push(marker);\n });\n markerClusterer = new window.BMapLib.MarkerClusterer(map, {\n markers,\n styles: [\n {\n url: markerClusterIcon.url,\n size: new window.BMap.Size(markerClusterIcon.width, markerClusterIcon.height),\n },\n ],\n });\n return () => {\n markerClusterer.clearMarkers();\n };\n }, [points]);\n return React.createElement(\"div\", null);\n};\nexport default MarkerCluster;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACAA,OAAA;AAAkC,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,gBAAAA,CAAA;AAClC,IAAME,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,KAAK,EAAK;EAC7B,IAAQC,GAAG,GAA2DD,KAAK,CAAnEC,GAAG;IAAEC,UAAU,GAA+CF,KAAK,CAA9DE,UAAU;IAAEC,iBAAiB,GAA4BH,KAAK,CAAlDG,iBAAiB;IAAEC,MAAM,GAAoBJ,KAAK,CAA/BI,MAAM;IAAEC,aAAa,GAAKL,KAAK,CAAvBK,aAAa;EACjEC,iBAAK,CAACC,SAAS,CAAC,YAAM;IAClB,IAAMC,OAAO,GAAG,EAAE;IAClB,IAAMC,MAAM,GAAG,IAAIC,MAAM,CAACC,IAAI,CAACC,IAAI,CAACV,UAAU,CAACW,GAAG,EAAE,IAAIH,MAAM,CAACC,IAAI,CAACG,IAAI,CAACZ,UAAU,CAACa,KAAK,EAAEb,UAAU,CAACc,MAAM,CAAC,CAAC;IAC9G,IAAIC,eAAe,GAAGC,SAAS;IAC/Bd,MAAM,CAACe,OAAO,CAAC,UAACC,IAAI,EAAK;MACrB,IAAMC,KAAK,GAAG,IAAIX,MAAM,CAACC,IAAI,CAACW,KAAK,CAACF,IAAI,CAACG,GAAG,EAAEH,IAAI,CAACI,GAAG,CAAC;MACvD,IAAMC,MAAM,GAAG,IAAIf,MAAM,CAACC,IAAI,CAACe,MAAM,CAACL,KAAK,EAAE;QACzCM,IAAI,EAAElB;MACV,CAAC,CAAC;MACFgB,MAAM,CAACG,gBAAgB,CAAC,OAAO,EAAE,YAAM;QACnCvB,aAAa,IAAIA,aAAa,CAACe,IAAI,CAAC;MACxC,CAAC,CAAC;MACFZ,OAAO,CAACqB,IAAI,CAACJ,MAAM,CAAC;IACxB,CAAC,CAAC;IACFR,eAAe,GAAG,IAAIP,MAAM,CAACoB,OAAO,CAACC,eAAe,CAAC9B,GAAG,EAAE;MACtDO,OAAO,EAAPA,OAAO;MACPwB,MAAM,EAAE,CACJ;QACInB,GAAG,EAAEV,iBAAiB,CAACU,GAAG;QAC1BoB,IAAI,EAAE,IAAIvB,MAAM,CAACC,IAAI,CAACG,IAAI,CAACX,iBAAiB,CAACY,KAAK,EAAEZ,iBAAiB,CAACa,MAAM;MAChF,CAAC;IAET,CAAC,CAAC;IACF,OAAO,YAAM;MACTC,eAAe,CAACiB,YAAY,CAAC,CAAC;IAClC,CAAC;EACL,CAAC,EAAE,CAAC9B,MAAM,CAAC,CAAC;EACZ,oBAAOE,iBAAK,CAAC6B,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC;AAC3C,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,cACatC,aAAa","ignoreList":[]}
|
package/lib/b-map/marker.js
CHANGED
|
@@ -1,59 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function _typeof(
|
|
4
|
-
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports["default"] = void 0;
|
|
9
|
-
|
|
10
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
-
|
|
12
9
|
var _reactDom = require("react-dom");
|
|
13
|
-
|
|
14
10
|
var _customOverlay = _interopRequireDefault(require("./custom-overlay"));
|
|
15
|
-
|
|
16
|
-
function
|
|
17
|
-
|
|
18
|
-
function
|
|
19
|
-
|
|
20
|
-
function
|
|
21
|
-
|
|
22
|
-
function
|
|
23
|
-
|
|
24
|
-
function
|
|
25
|
-
|
|
26
|
-
function
|
|
27
|
-
|
|
28
|
-
function
|
|
29
|
-
|
|
30
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
31
|
-
|
|
32
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
33
|
-
|
|
34
|
-
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
35
|
-
|
|
36
|
-
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
37
|
-
|
|
38
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
39
|
-
|
|
40
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
41
|
-
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
12
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
13
|
+
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
|
|
14
|
+
function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
|
|
15
|
+
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
|
|
16
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
17
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
18
|
+
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
19
|
+
function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); }
|
|
20
|
+
function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
|
|
21
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
22
|
+
function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
|
|
23
|
+
function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
|
|
24
|
+
function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); } /* eslint-disable */
|
|
42
25
|
/**
|
|
43
26
|
* 百度地图的Marker组件,用于在地图上标记点位
|
|
44
27
|
*/
|
|
45
28
|
var Marker = /*#__PURE__*/function (_Component) {
|
|
46
|
-
_inherits(Marker, _Component);
|
|
47
|
-
|
|
48
|
-
var _super = _createSuper(Marker);
|
|
49
|
-
|
|
50
29
|
function Marker() {
|
|
51
30
|
_classCallCheck(this, Marker);
|
|
52
|
-
|
|
53
|
-
return _super.apply(this, arguments);
|
|
31
|
+
return _callSuper(this, Marker, arguments);
|
|
54
32
|
}
|
|
55
|
-
|
|
56
|
-
_createClass(Marker, [{
|
|
33
|
+
_inherits(Marker, _Component);
|
|
34
|
+
return _createClass(Marker, [{
|
|
57
35
|
key: "componentDidMount",
|
|
58
36
|
value: function componentDidMount() {
|
|
59
37
|
this.init();
|
|
@@ -71,12 +49,10 @@ var Marker = /*#__PURE__*/function (_Component) {
|
|
|
71
49
|
/**
|
|
72
50
|
* 在组件销毁的时候以及点位更新的时候, 需要在地图上先清空点位
|
|
73
51
|
*/
|
|
74
|
-
|
|
75
52
|
}, {
|
|
76
53
|
key: "destroy",
|
|
77
54
|
value: function destroy() {
|
|
78
55
|
var map = this.props.map;
|
|
79
|
-
|
|
80
56
|
if (this.marker) {
|
|
81
57
|
map.removeOverlay(this.marker);
|
|
82
58
|
this.marker = null;
|
|
@@ -88,26 +64,24 @@ var Marker = /*#__PURE__*/function (_Component) {
|
|
|
88
64
|
* 2. 自定义点位 -> 传入children初始化
|
|
89
65
|
* 当使用自定义点位初始化的时候, 暂不支持拖拽, 但是能够使用css修改样式, 更为灵活。
|
|
90
66
|
*/
|
|
91
|
-
|
|
92
67
|
}, {
|
|
93
68
|
key: "init",
|
|
94
69
|
value: function init() {
|
|
95
70
|
this.destroy();
|
|
96
71
|
var _this$props = this.props,
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
72
|
+
zIndex = _this$props.zIndex,
|
|
73
|
+
icon = _this$props.icon,
|
|
74
|
+
map = _this$props.map,
|
|
75
|
+
lng = _this$props.lng,
|
|
76
|
+
lat = _this$props.lat,
|
|
77
|
+
onClick = _this$props.onClick,
|
|
78
|
+
onDragend = _this$props.onDragend,
|
|
79
|
+
children = _this$props.children,
|
|
80
|
+
jump = _this$props.jump,
|
|
81
|
+
offset = _this$props.offset;
|
|
108
82
|
if (children) {
|
|
109
83
|
var contentDom = document.createElement('div');
|
|
110
|
-
(0, _reactDom.render)(
|
|
84
|
+
(0, _reactDom.render)(/*#__PURE__*/_react["default"].createElement("div", {
|
|
111
85
|
className: "eh-bmap-marker__point"
|
|
112
86
|
}, children), contentDom);
|
|
113
87
|
var CustomOverlay = (0, _customOverlay["default"])(window.BMap.Overlay);
|
|
@@ -121,36 +95,28 @@ var Marker = /*#__PURE__*/function (_Component) {
|
|
|
121
95
|
} else {
|
|
122
96
|
var point = new window.BMap.Point(lng, lat);
|
|
123
97
|
var markerOptions = {};
|
|
124
|
-
|
|
125
98
|
if (icon) {
|
|
126
99
|
var myIcon = new window.BMap.Icon(icon.url, new window.BMap.Size(icon.width, icon.height));
|
|
127
100
|
markerOptions.icon = myIcon;
|
|
128
101
|
}
|
|
129
|
-
|
|
130
102
|
if (offset) {
|
|
131
103
|
var offsetSize = new window.BMap.Size(offset.width, offset.height);
|
|
132
104
|
markerOptions.offset = offsetSize;
|
|
133
105
|
}
|
|
134
|
-
|
|
135
106
|
this.marker = new window.BMap.Marker(point, markerOptions);
|
|
136
|
-
|
|
137
107
|
if (zIndex) {
|
|
138
108
|
this.marker.setZIndex(zIndex);
|
|
139
109
|
}
|
|
140
|
-
|
|
141
110
|
map.addOverlay(this.marker);
|
|
142
|
-
|
|
143
111
|
if (jump) {
|
|
144
112
|
this.marker.setAnimation(window.BMAP_ANIMATION_BOUNCE);
|
|
145
113
|
}
|
|
146
|
-
|
|
147
114
|
if (onClick) {
|
|
148
115
|
this.marker.addEventListener('click', function () {
|
|
149
116
|
return onClick.apply(void 0, arguments);
|
|
150
117
|
});
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
|
|
118
|
+
}
|
|
119
|
+
// 设置拖拽事件
|
|
154
120
|
if (onDragend) {
|
|
155
121
|
var myGeo = new window.BMap.Geocoder({
|
|
156
122
|
extensions_town: true
|
|
@@ -172,13 +138,9 @@ var Marker = /*#__PURE__*/function (_Component) {
|
|
|
172
138
|
return null;
|
|
173
139
|
}
|
|
174
140
|
}]);
|
|
175
|
-
|
|
176
|
-
return Marker;
|
|
177
141
|
}(_react.Component);
|
|
178
|
-
|
|
179
142
|
Marker.defaultProps = {
|
|
180
143
|
jump: false
|
|
181
144
|
};
|
|
182
|
-
var _default = Marker;
|
|
183
|
-
exports["default"] = _default;
|
|
145
|
+
var _default = exports["default"] = Marker;
|
|
184
146
|
//# sourceMappingURL=marker.js.map
|