@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.
Files changed (220) hide show
  1. package/README.md +46 -46
  2. package/lib/b-map/b-map.d.ts +1 -1
  3. package/lib/b-map/b-map.js +100 -162
  4. package/lib/b-map/b-map.js.map +1 -1
  5. package/lib/b-map/custom-overlay.js +17 -37
  6. package/lib/b-map/custom-overlay.js.map +1 -1
  7. package/lib/b-map/drawing.js +11 -25
  8. package/lib/b-map/drawing.js.map +1 -1
  9. package/lib/b-map/index.d.ts +2 -2
  10. package/lib/b-map/index.js +4 -16
  11. package/lib/b-map/index.js.map +1 -1
  12. package/lib/b-map/js/marker-clusterer.js +223 -339
  13. package/lib/b-map/js/marker-clusterer.js.map +1 -1
  14. package/lib/b-map/lushu.js +17 -36
  15. package/lib/b-map/lushu.js.map +1 -1
  16. package/lib/b-map/marker-clusterer.js +6 -14
  17. package/lib/b-map/marker-clusterer.js.map +1 -1
  18. package/lib/b-map/marker.js +32 -70
  19. package/lib/b-map/marker.js.map +1 -1
  20. package/lib/b-map/polygon.js +5 -13
  21. package/lib/b-map/polygon.js.map +1 -1
  22. package/lib/b-map/style/css.js.map +1 -1
  23. package/lib/b-map/style/index.js.map +1 -1
  24. package/lib/b-map/style/index.less +10 -10
  25. package/lib/create-modal/create-modal.d.ts +3 -2
  26. package/lib/create-modal/create-modal.js +163 -307
  27. package/lib/create-modal/create-modal.js.map +1 -1
  28. package/lib/create-modal/index.d.ts +1 -2
  29. package/lib/create-modal/index.js +2 -8
  30. package/lib/create-modal/index.js.map +1 -1
  31. package/lib/create-modal/style/css.js +0 -18
  32. package/lib/create-modal/style/css.js.map +1 -1
  33. package/lib/create-modal/style/index.css +2 -2
  34. package/lib/create-modal/style/index.d.ts +0 -9
  35. package/lib/create-modal/style/index.js +0 -18
  36. package/lib/create-modal/style/index.js.map +1 -1
  37. package/lib/create-modal/style/index.less +116 -119
  38. package/lib/global.less +5 -6
  39. package/lib/import-modal/import-modal.d.ts +3 -1
  40. package/lib/import-modal/import-modal.js +140 -204
  41. package/lib/import-modal/import-modal.js.map +1 -1
  42. package/lib/import-modal/index.js +2 -6
  43. package/lib/import-modal/index.js.map +1 -1
  44. package/lib/import-modal/style/css.js +0 -10
  45. package/lib/import-modal/style/css.js.map +1 -1
  46. package/lib/import-modal/style/index.d.ts +0 -5
  47. package/lib/import-modal/style/index.js +0 -10
  48. package/lib/import-modal/style/index.js.map +1 -1
  49. package/lib/import-modal/style/index.less +14 -15
  50. package/lib/index.js +1 -14
  51. package/lib/index.js.map +1 -1
  52. package/lib/interface/index.js.map +1 -1
  53. package/lib/mapv-Layer/Function.js +0 -2
  54. package/lib/mapv-Layer/Function.js.map +1 -1
  55. package/lib/mapv-Layer/index.js +2 -6
  56. package/lib/mapv-Layer/index.js.map +1 -1
  57. package/lib/mapv-Layer/mapv-Layer.js +19 -40
  58. package/lib/mapv-Layer/mapv-Layer.js.map +1 -1
  59. package/lib/mapv-Layer/style/css.js.map +1 -1
  60. package/lib/mapv-Layer/style/index.js.map +1 -1
  61. package/lib/percent/index.d.ts +1 -1
  62. package/lib/percent/index.js +2 -7
  63. package/lib/percent/index.js.map +1 -1
  64. package/lib/percent/interface.js.map +1 -1
  65. package/lib/percent/line-percent.js +20 -37
  66. package/lib/percent/line-percent.js.map +1 -1
  67. package/lib/percent/percent.js +20 -43
  68. package/lib/percent/percent.js.map +1 -1
  69. package/lib/percent/style/css.js.map +1 -1
  70. package/lib/percent/style/index.js.map +1 -1
  71. package/lib/percent/style/index.less +41 -41
  72. package/lib/scroll/index.js +2 -6
  73. package/lib/scroll/index.js.map +1 -1
  74. package/lib/scroll/scroll.d.ts +1 -1
  75. package/lib/scroll/scroll.js +19 -47
  76. package/lib/scroll/scroll.js.map +1 -1
  77. package/lib/scroll/style/css.js.map +1 -1
  78. package/lib/scroll/style/index.js.map +1 -1
  79. package/lib/scroll/style/index.less +3 -3
  80. package/lib/scroll-select/index.js +2 -6
  81. package/lib/scroll-select/index.js.map +1 -1
  82. package/lib/scroll-select/scrollSelect.d.ts +2 -1
  83. package/lib/scroll-select/scrollSelect.js +144 -218
  84. package/lib/scroll-select/scrollSelect.js.map +1 -1
  85. package/lib/scroll-select/style/css.js +0 -2
  86. package/lib/scroll-select/style/css.js.map +1 -1
  87. package/lib/scroll-select/style/index.d.ts +0 -1
  88. package/lib/scroll-select/style/index.js +0 -2
  89. package/lib/scroll-select/style/index.js.map +1 -1
  90. package/lib/scroll-select/style/index.less +7 -7
  91. package/lib/style/color.less +1 -1
  92. package/lib/table/index.js +2 -6
  93. package/lib/table/index.js.map +1 -1
  94. package/lib/table/style/css.js +0 -2
  95. package/lib/table/style/css.js.map +1 -1
  96. package/lib/table/style/index.d.ts +0 -1
  97. package/lib/table/style/index.js +0 -2
  98. package/lib/table/style/index.js.map +1 -1
  99. package/lib/table/table.d.ts +1 -1
  100. package/lib/table/table.js +24 -56
  101. package/lib/table/table.js.map +1 -1
  102. package/lib/template/action.d.ts +3 -1
  103. package/lib/template/action.js +93 -132
  104. package/lib/template/action.js.map +1 -1
  105. package/lib/template/card-table.d.ts +7 -6
  106. package/lib/template/card-table.js +40 -82
  107. package/lib/template/card-table.js.map +1 -1
  108. package/lib/template/card.d.ts +1 -1
  109. package/lib/template/card.js +20 -38
  110. package/lib/template/card.js.map +1 -1
  111. package/lib/template/check-row.d.ts +2 -1
  112. package/lib/template/check-row.js +7 -12
  113. package/lib/template/check-row.js.map +1 -1
  114. package/lib/template/field.js +8 -24
  115. package/lib/template/field.js.map +1 -1
  116. package/lib/template/filter.d.ts +1 -2
  117. package/lib/template/filter.js +25 -63
  118. package/lib/template/filter.js.map +1 -1
  119. package/lib/template/icon.js +4 -15
  120. package/lib/template/icon.js.map +1 -1
  121. package/lib/template/index.d.ts +2 -3
  122. package/lib/template/index.js +4 -12
  123. package/lib/template/index.js.map +1 -1
  124. package/lib/template/interface.js.map +1 -1
  125. package/lib/template/renderColumnButtons.js +80 -104
  126. package/lib/template/renderColumnButtons.js.map +1 -1
  127. package/lib/template/style/action.css +3 -2
  128. package/lib/template/style/action.less +74 -71
  129. package/lib/template/style/card.css +2 -2
  130. package/lib/template/style/card.less +87 -88
  131. package/lib/template/style/check-row.less +27 -27
  132. package/lib/template/style/css.js +0 -36
  133. package/lib/template/style/css.js.map +1 -1
  134. package/lib/template/style/field.less +11 -11
  135. package/lib/template/style/filter.css +0 -29
  136. package/lib/template/style/filter.less +46 -72
  137. package/lib/template/style/icon.less +7 -7
  138. package/lib/template/style/index.css +8 -42
  139. package/lib/template/style/index.d.ts +0 -18
  140. package/lib/template/style/index.js +0 -36
  141. package/lib/template/style/index.js.map +1 -1
  142. package/lib/template/style/index.less +48 -49
  143. package/lib/template/style/table.css +0 -6
  144. package/lib/template/style/table.less +79 -91
  145. package/lib/template/table.d.ts +7 -5
  146. package/lib/template/table.js +23 -45
  147. package/lib/template/table.js.map +1 -1
  148. package/lib/template/template.d.ts +4 -4
  149. package/lib/template/template.js +134 -258
  150. package/lib/template/template.js.map +1 -1
  151. package/lib/template/toolbar.d.ts +1 -1
  152. package/lib/template/toolbar.js +57 -63
  153. package/lib/template/toolbar.js.map +1 -1
  154. package/lib/to-map/container.js +58 -112
  155. package/lib/to-map/container.js.map +1 -1
  156. package/lib/to-map/draw-area.js +14 -34
  157. package/lib/to-map/draw-area.js.map +1 -1
  158. package/lib/to-map/index.d.ts +1 -1
  159. package/lib/to-map/index.js +2 -7
  160. package/lib/to-map/index.js.map +1 -1
  161. package/lib/to-map/style/css.js +0 -2
  162. package/lib/to-map/style/css.js.map +1 -1
  163. package/lib/to-map/style/index.d.ts +0 -1
  164. package/lib/to-map/style/index.js +0 -2
  165. package/lib/to-map/style/index.js.map +1 -1
  166. package/lib/to-map/style/index.less +86 -86
  167. package/lib/to-map/to-map.js +22 -49
  168. package/lib/to-map/to-map.js.map +1 -1
  169. package/lib/upload/index.js +2 -6
  170. package/lib/upload/index.js.map +1 -1
  171. package/lib/upload/style/css.js +0 -5
  172. package/lib/upload/style/css.js.map +1 -1
  173. package/lib/upload/style/index.d.ts +0 -2
  174. package/lib/upload/style/index.js +0 -5
  175. package/lib/upload/style/index.js.map +1 -1
  176. package/lib/upload/upload.d.ts +4 -1
  177. package/lib/upload/upload.js +164 -245
  178. package/lib/upload/upload.js.map +1 -1
  179. package/lib/use-simple-res/demos/index.d.ts +2 -1
  180. package/lib/use-simple-res/demos/index.js +31 -59
  181. package/lib/use-simple-res/demos/index.js.map +1 -1
  182. package/lib/use-simple-res/index.d.ts +0 -1
  183. package/lib/use-simple-res/index.js +61 -75
  184. package/lib/use-simple-res/index.js.map +1 -1
  185. package/lib/use-simple-res/style/css.js.map +1 -1
  186. package/lib/use-simple-res/style/index.js.map +1 -1
  187. package/lib/utils/dom-util.js +8 -27
  188. package/lib/utils/dom-util.js.map +1 -1
  189. package/lib/utils/request-util.d.ts +10 -1
  190. package/lib/utils/request-util.js +170 -45
  191. package/lib/utils/request-util.js.map +1 -1
  192. package/lib/utils/string-util.d.ts +2 -0
  193. package/lib/utils/string-util.js +34 -16
  194. package/lib/utils/string-util.js.map +1 -1
  195. package/lib/view-modal/index.d.ts +0 -1
  196. package/lib/view-modal/index.js +2 -8
  197. package/lib/view-modal/index.js.map +1 -1
  198. package/lib/view-modal/style/css.js +0 -12
  199. package/lib/view-modal/style/css.js.map +1 -1
  200. package/lib/view-modal/style/index.css +3 -41
  201. package/lib/view-modal/style/index.d.ts +0 -7
  202. package/lib/view-modal/style/index.js +0 -12
  203. package/lib/view-modal/style/index.js.map +1 -1
  204. package/lib/view-modal/style/index.less +42 -57
  205. package/lib/view-modal/view-modal.d.ts +1 -1
  206. package/lib/view-modal/view-modal.js +36 -86
  207. package/lib/view-modal/view-modal.js.map +1 -1
  208. package/package.json +157 -143
  209. package/lib/style/css.js +0 -13
  210. package/lib/style/css.js.map +0 -1
  211. package/lib/style/darkGreen.css +0 -719
  212. package/lib/style/darkGreen.less +0 -482
  213. package/lib/style/index.d.ts +0 -2
  214. package/lib/style/index.js +0 -13
  215. package/lib/style/index.js.map +0 -1
  216. package/lib/template/vtx-search/index.d.ts +0 -2
  217. package/lib/template/vtx-search/index.js +0 -126
  218. package/lib/template/vtx-search/index.js.map +0 -1
  219. package/lib/template/vtx-search/style/index.css +0 -92
  220. package/lib/template/vtx-search/style/index.less +0 -92
@@ -1,29 +1,27 @@
1
1
  "use strict";
2
2
 
3
3
  /* eslint-disable*/
4
-
5
- /**
6
- * @fileoverview MarkerClusterer标记聚合器用来解决加载大量点要素到地图上产生覆盖现象的问题,并提高性能。
7
- * 主入口类是<a href="symbols/BMapLib.MarkerClusterer.html">MarkerClusterer</a>,
8
- * 基于Baidu Map API 1.2。
9
- *
10
- * @author Baidu Map Api Group
11
- * @version 1.2
4
+ /**
5
+ * @fileoverview MarkerClusterer标记聚合器用来解决加载大量点要素到地图上产生覆盖现象的问题,并提高性能。
6
+ * 主入口类是<a href="symbols/BMapLib.MarkerClusterer.html">MarkerClusterer</a>,
7
+ * 基于Baidu Map API 1.2。
8
+ *
9
+ * @author Baidu Map Api Group
10
+ * @version 1.2
12
11
  */
13
12
 
14
- /**
15
- * @namespace BMap的所有library类均放在BMapLib命名空间下
13
+ /**
14
+ * @namespace BMap的所有library类均放在BMapLib命名空间下
16
15
  */
17
16
  var BMapLib = window.BMapLib = BMapLib || {};
18
-
19
17
  (function () {
20
- /**
21
- * 获取一个扩展的视图范围,把上下左右都扩大一样的像素值。
22
- * @param {Map} map BMap.Map的实例化对象
23
- * @param {BMap.Bounds} bounds BMap.Bounds的实例化对象
24
- * @param {Number} gridSize 要扩大的像素值
25
- *
26
- * @return {BMap.Bounds} 返回扩大后的视图范围。
18
+ /**
19
+ * 获取一个扩展的视图范围,把上下左右都扩大一样的像素值。
20
+ * @param {Map} map BMap.Map的实例化对象
21
+ * @param {BMap.Bounds} bounds BMap.Bounds的实例化对象
22
+ * @param {Number} gridSize 要扩大的像素值
23
+ *
24
+ * @return {BMap.Bounds} 返回扩大后的视图范围。
27
25
  */
28
26
  var getExtendedBounds = function getExtendedBounds(map, bounds, gridSize) {
29
27
  bounds = cutBoundsInRange(bounds);
@@ -37,14 +35,13 @@ var BMapLib = window.BMapLib = BMapLib || {};
37
35
  var newSW = map.pixelToPoint(pixelSW);
38
36
  return new BMap.Bounds(newSW, newNE);
39
37
  };
40
- /**
41
- * 按照百度地图支持的世界范围对bounds进行边界处理
42
- * @param {BMap.Bounds} bounds BMap.Bounds的实例化对象
43
- *
44
- * @return {BMap.Bounds} 返回不越界的视图范围
45
- */
46
-
47
38
 
39
+ /**
40
+ * 按照百度地图支持的世界范围对bounds进行边界处理
41
+ * @param {BMap.Bounds} bounds BMap.Bounds的实例化对象
42
+ *
43
+ * @return {BMap.Bounds} 返回不越界的视图范围
44
+ */
48
45
  var cutBoundsInRange = function cutBoundsInRange(bounds) {
49
46
  var maxX = getRange(bounds.getNorthEast().lng, -180, 180);
50
47
  var minX = getRange(bounds.getSouthWest().lng, -180, 180);
@@ -52,44 +49,40 @@ var BMapLib = window.BMapLib = BMapLib || {};
52
49
  var minY = getRange(bounds.getSouthWest().lat, -74, 74);
53
50
  return new BMap.Bounds(new BMap.Point(minX, minY), new BMap.Point(maxX, maxY));
54
51
  };
55
- /**
56
- * 对单个值进行边界处理。
57
- * @param {Number} i 要处理的数值
58
- * @param {Number} min 下边界值
59
- * @param {Number} max 上边界值
60
- *
61
- * @return {Number} 返回不越界的数值
62
- */
63
-
64
52
 
53
+ /**
54
+ * 对单个值进行边界处理。
55
+ * @param {Number} i 要处理的数值
56
+ * @param {Number} min 下边界值
57
+ * @param {Number} max 上边界值
58
+ *
59
+ * @return {Number} 返回不越界的数值
60
+ */
65
61
  var getRange = function getRange(i, mix, max) {
66
62
  mix && (i = Math.max(i, mix));
67
63
  max && (i = Math.min(i, max));
68
64
  return i;
69
65
  };
70
- /**
71
- * 判断给定的对象是否为数组
72
- * @param {Object} source 要测试的对象
73
- *
74
- * @return {Boolean} 如果是数组返回true,否则返回false
75
- */
76
-
77
66
 
67
+ /**
68
+ * 判断给定的对象是否为数组
69
+ * @param {Object} source 要测试的对象
70
+ *
71
+ * @return {Boolean} 如果是数组返回true,否则返回false
72
+ */
78
73
  var isArray = function isArray(source) {
79
74
  return '[object Array]' === Object.prototype.toString.call(source);
80
75
  };
81
- /**
82
- * 返回item在source中的索引位置
83
- * @param {Object} item 要测试的对象
84
- * @param {Array} source 数组
85
- *
86
- * @return {Number} 如果在数组内,返回索引,否则返回-1
87
- */
88
-
89
76
 
77
+ /**
78
+ * 返回item在source中的索引位置
79
+ * @param {Object} item 要测试的对象
80
+ * @param {Array} source 数组
81
+ *
82
+ * @return {Number} 如果在数组内,返回索引,否则返回-1
83
+ */
90
84
  var indexOf = function indexOf(item, source) {
91
85
  var index = -1;
92
-
93
86
  if (isArray(source)) {
94
87
  if (source.indexOf) {
95
88
  index = source.indexOf(item);
@@ -102,33 +95,30 @@ var BMapLib = window.BMapLib = BMapLib || {};
102
95
  }
103
96
  }
104
97
  }
105
-
106
98
  return index;
107
99
  };
108
- /**
109
- *@exports MarkerClusterer as BMapLib.MarkerClusterer
110
- */
111
-
112
100
 
101
+ /**
102
+ *@exports MarkerClusterer as BMapLib.MarkerClusterer
103
+ */
113
104
  var MarkerClusterer =
114
- /**
115
- * MarkerClusterer
116
- * @class 用来解决加载大量点要素到地图上产生覆盖现象的问题,并提高性能
117
- * @constructor
118
- * @param {Map} map 地图的一个实例。
119
- * @param {Json Object} options 可选参数,可选项包括:<br />
120
- * markers {Array<Marker>} 要聚合的标记数组<br />
121
- * girdSize {Number} 聚合计算时网格的像素大小,默认60<br />
122
- * maxZoom {Number} 最大的聚合级别,大于该级别就不进行相应的聚合<br />
123
- * minClusterSize {Number} 最小的聚合数量,小于该数量的不能成为一个聚合,默认为2<br />
124
- * isAverangeCenter {Boolean} 聚合点的落脚位置是否是所有聚合在内点的平均值,默认为否,落脚在聚合内的第一个点<br />
125
- * styles {Array<IconStyle>} 自定义聚合后的图标风格,请参考TextIconOverlay类<br />
105
+ /**
106
+ * MarkerClusterer
107
+ * @class 用来解决加载大量点要素到地图上产生覆盖现象的问题,并提高性能
108
+ * @constructor
109
+ * @param {Map} map 地图的一个实例。
110
+ * @param {Json Object} options 可选参数,可选项包括:<br />
111
+ * markers {Array<Marker>} 要聚合的标记数组<br />
112
+ * girdSize {Number} 聚合计算时网格的像素大小,默认60<br />
113
+ * maxZoom {Number} 最大的聚合级别,大于该级别就不进行相应的聚合<br />
114
+ * minClusterSize {Number} 最小的聚合数量,小于该数量的不能成为一个聚合,默认为2<br />
115
+ * isAverangeCenter {Boolean} 聚合点的落脚位置是否是所有聚合在内点的平均值,默认为否,落脚在聚合内的第一个点<br />
116
+ * styles {Array<IconStyle>} 自定义聚合后的图标风格,请参考TextIconOverlay类<br />
126
117
  */
127
118
  BMapLib.MarkerClusterer = function (map, options) {
128
119
  if (!map) {
129
120
  return;
130
121
  }
131
-
132
122
  this._map = map;
133
123
  this._markers = [];
134
124
  this._clusters = [];
@@ -137,431 +127,354 @@ var BMapLib = window.BMapLib = BMapLib || {};
137
127
  this._maxZoom = opts['maxZoom'] || 18;
138
128
  this._minClusterSize = opts['minClusterSize'] || 2;
139
129
  this._isAverageCenter = false;
140
-
141
130
  if (opts['isAverageCenter'] != undefined) {
142
131
  this._isAverageCenter = opts['isAverageCenter'];
143
132
  }
144
-
145
133
  this._styles = opts['styles'] || [];
146
134
  var that = this;
147
-
148
135
  this._map.addEventListener('zoomend', function () {
149
136
  that._redraw();
150
137
  });
151
-
152
138
  this._map.addEventListener('moveend', function () {
153
139
  that._redraw();
154
140
  });
155
-
156
141
  var mkrs = opts['markers'];
157
142
  isArray(mkrs) && this.addMarkers(mkrs);
158
143
  };
159
- /**
160
- * 添加要聚合的标记数组。
161
- * @param {Array<Marker>} markers 要聚合的标记数组
162
- *
163
- * @return 无返回值。
164
- */
165
-
166
144
 
145
+ /**
146
+ * 添加要聚合的标记数组。
147
+ * @param {Array<Marker>} markers 要聚合的标记数组
148
+ *
149
+ * @return 无返回值。
150
+ */
167
151
  MarkerClusterer.prototype.addMarkers = function (markers) {
168
152
  for (var i = 0, len = markers.length; i < len; i++) {
169
153
  this._pushMarkerTo(markers[i]);
170
154
  }
171
-
172
155
  this._createClusters();
173
156
  };
174
- /**
175
- * 把一个标记添加到要聚合的标记数组中
176
- * @param {BMap.Marker} marker 要添加的标记
177
- *
178
- * @return 无返回值。
179
- */
180
-
181
157
 
158
+ /**
159
+ * 把一个标记添加到要聚合的标记数组中
160
+ * @param {BMap.Marker} marker 要添加的标记
161
+ *
162
+ * @return 无返回值。
163
+ */
182
164
  MarkerClusterer.prototype._pushMarkerTo = function (marker) {
183
165
  var index = indexOf(marker, this._markers);
184
-
185
166
  if (index === -1) {
186
167
  marker.isInCluster = false;
187
-
188
168
  this._markers.push(marker); //Marker拖放后enableDragging不做变化,忽略
189
-
190
169
  }
191
170
  };
192
- /**
193
- * 添加一个聚合的标记。
194
- * @param {BMap.Marker} marker 要聚合的单个标记。
195
- * @return 无返回值。
196
- */
197
-
198
171
 
172
+ /**
173
+ * 添加一个聚合的标记。
174
+ * @param {BMap.Marker} marker 要聚合的单个标记。
175
+ * @return 无返回值。
176
+ */
199
177
  MarkerClusterer.prototype.addMarker = function (marker) {
200
178
  this._pushMarkerTo(marker);
201
-
202
179
  this._createClusters();
203
180
  };
204
- /**
205
- * 根据所给定的标记,创建聚合点,并且遍历所有聚合点
206
- * @return 无返回值
207
- */
208
-
209
181
 
182
+ /**
183
+ * 根据所给定的标记,创建聚合点,并且遍历所有聚合点
184
+ * @return 无返回值
185
+ */
210
186
  MarkerClusterer.prototype._createClusters = function () {
211
187
  var mapBounds = this._map.getBounds();
212
-
213
188
  var extendedBounds = getExtendedBounds(this._map, mapBounds, this._gridSize);
214
-
215
189
  for (var i = 0, marker; marker = this._markers[i]; i++) {
216
190
  if (!marker.isInCluster && extendedBounds.containsPoint(marker.getPosition())) {
217
191
  this._addToClosestCluster(marker);
218
192
  }
219
193
  }
220
-
221
194
  var len = this._markers.length;
222
-
223
195
  for (var i = 0; i < len; i++) {
224
196
  if (this._clusters[i]) {
225
197
  this._clusters[i].render();
226
198
  }
227
199
  }
228
200
  };
229
- /**
230
- * 根据标记的位置,把它添加到最近的聚合中
231
- * @param {BMap.Marker} marker 要进行聚合的单个标记
232
- *
233
- * @return 无返回值。
234
- */
235
-
236
201
 
202
+ /**
203
+ * 根据标记的位置,把它添加到最近的聚合中
204
+ * @param {BMap.Marker} marker 要进行聚合的单个标记
205
+ *
206
+ * @return 无返回值。
207
+ */
237
208
  MarkerClusterer.prototype._addToClosestCluster = function (marker) {
238
209
  var distance = 4000000;
239
210
  var clusterToAddTo = null;
240
211
  var position = marker.getPosition();
241
-
242
212
  for (var i = 0, cluster; cluster = this._clusters[i]; i++) {
243
213
  var center = cluster.getCenter();
244
-
245
214
  if (center) {
246
215
  var d = this._map.getDistance(center, marker.getPosition());
247
-
248
216
  if (d < distance) {
249
217
  distance = d;
250
218
  clusterToAddTo = cluster;
251
219
  }
252
220
  }
253
221
  }
254
-
255
222
  if (clusterToAddTo && clusterToAddTo.isMarkerInClusterBounds(marker)) {
256
223
  clusterToAddTo.addMarker(marker);
257
224
  } else {
258
225
  var cluster = new Cluster(this);
259
226
  cluster.addMarker(marker);
260
-
261
227
  this._clusters.push(cluster);
262
228
  }
263
229
  };
264
- /**
265
- * 清除上一次的聚合的结果
266
- * @return 无返回值。
267
- */
268
-
269
230
 
231
+ /**
232
+ * 清除上一次的聚合的结果
233
+ * @return 无返回值。
234
+ */
270
235
  MarkerClusterer.prototype._clearLastClusters = function () {
271
236
  for (var i = 0, cluster; cluster = this._clusters[i]; i++) {
272
237
  cluster.remove();
273
238
  }
274
-
275
239
  this._clusters = []; //置空Cluster数组
276
-
277
240
  this._removeMarkersFromCluster(); //把Marker的cluster标记设为false
278
-
279
241
  };
280
- /**
281
- * 清除某个聚合中的所有标记
282
- * @return 无返回值
283
- */
284
-
285
242
 
243
+ /**
244
+ * 清除某个聚合中的所有标记
245
+ * @return 无返回值
246
+ */
286
247
  MarkerClusterer.prototype._removeMarkersFromCluster = function () {
287
248
  for (var i = 0, marker; marker = this._markers[i]; i++) {
288
249
  marker.isInCluster = false;
289
250
  }
290
251
  };
291
- /**
292
- * 把所有的标记从地图上清除
293
- * @return 无返回值
294
- */
295
-
296
252
 
253
+ /**
254
+ * 把所有的标记从地图上清除
255
+ * @return 无返回值
256
+ */
297
257
  MarkerClusterer.prototype._removeMarkersFromMap = function () {
298
258
  for (var i = 0, marker; marker = this._markers[i]; i++) {
299
259
  marker.isInCluster = false;
300
260
  tmplabel = marker.getLabel();
301
-
302
261
  this._map.removeOverlay(marker);
303
-
304
262
  marker.setLabel(tmplabel);
305
263
  }
306
264
  };
307
- /**
308
- * 删除单个标记
309
- * @param {BMap.Marker} marker 需要被删除的marker
310
- *
311
- * @return {Boolean} 删除成功返回true,否则返回false
312
- */
313
-
314
265
 
266
+ /**
267
+ * 删除单个标记
268
+ * @param {BMap.Marker} marker 需要被删除的marker
269
+ *
270
+ * @return {Boolean} 删除成功返回true,否则返回false
271
+ */
315
272
  MarkerClusterer.prototype._removeMarker = function (marker) {
316
273
  var index = indexOf(marker, this._markers);
317
-
318
274
  if (index === -1) {
319
275
  return false;
320
276
  }
321
-
322
277
  tmplabel = marker.getLabel();
323
-
324
278
  this._map.removeOverlay(marker);
325
-
326
279
  marker.setLabel(tmplabel);
327
-
328
280
  this._markers.splice(index, 1);
329
-
330
281
  return true;
331
282
  };
332
- /**
333
- * 删除单个标记
334
- * @param {BMap.Marker} marker 需要被删除的marker
335
- *
336
- * @return {Boolean} 删除成功返回true,否则返回false
337
- */
338
-
339
283
 
284
+ /**
285
+ * 删除单个标记
286
+ * @param {BMap.Marker} marker 需要被删除的marker
287
+ *
288
+ * @return {Boolean} 删除成功返回true,否则返回false
289
+ */
340
290
  MarkerClusterer.prototype.removeMarker = function (marker) {
341
291
  var success = this._removeMarker(marker);
342
-
343
292
  if (success) {
344
293
  this._clearLastClusters();
345
-
346
294
  this._createClusters();
347
295
  }
348
-
349
296
  return success;
350
297
  };
351
- /**
352
- * 删除一组标记
353
- * @param {Array<BMap.Marker>} markers 需要被删除的marker数组
354
- *
355
- * @return {Boolean} 删除成功返回true,否则返回false
356
- */
357
-
358
298
 
299
+ /**
300
+ * 删除一组标记
301
+ * @param {Array<BMap.Marker>} markers 需要被删除的marker数组
302
+ *
303
+ * @return {Boolean} 删除成功返回true,否则返回false
304
+ */
359
305
  MarkerClusterer.prototype.removeMarkers = function (markers) {
360
306
  var success = false;
361
-
362
307
  for (var i = 0; i < markers.length; i++) {
363
308
  var r = this._removeMarker(markers[i]);
364
-
365
309
  success = success || r;
366
310
  }
367
-
368
311
  if (success) {
369
312
  this._clearLastClusters();
370
-
371
313
  this._createClusters();
372
314
  }
373
-
374
315
  return success;
375
316
  };
376
- /**
377
- * 从地图上彻底清除所有的标记
378
- * @return 无返回值
379
- */
380
-
381
317
 
318
+ /**
319
+ * 从地图上彻底清除所有的标记
320
+ * @return 无返回值
321
+ */
382
322
  MarkerClusterer.prototype.clearMarkers = function () {
383
323
  this._clearLastClusters();
384
-
385
324
  this._removeMarkersFromMap();
386
-
387
325
  this._markers = [];
388
326
  };
389
- /**
390
- * 重新生成,比如改变了属性等
391
- * @return 无返回值
392
- */
393
-
394
327
 
328
+ /**
329
+ * 重新生成,比如改变了属性等
330
+ * @return 无返回值
331
+ */
395
332
  MarkerClusterer.prototype._redraw = function () {
396
333
  this._clearLastClusters();
397
-
398
334
  this._createClusters();
399
335
  };
400
- /**
401
- * 获取网格大小
402
- * @return {Number} 网格大小
403
- */
404
-
405
336
 
337
+ /**
338
+ * 获取网格大小
339
+ * @return {Number} 网格大小
340
+ */
406
341
  MarkerClusterer.prototype.getGridSize = function () {
407
342
  return this._gridSize;
408
343
  };
409
- /**
410
- * 设置网格大小
411
- * @param {Number} size 网格大小
412
- * @return 无返回值
413
- */
414
-
415
344
 
345
+ /**
346
+ * 设置网格大小
347
+ * @param {Number} size 网格大小
348
+ * @return 无返回值
349
+ */
416
350
  MarkerClusterer.prototype.setGridSize = function (size) {
417
351
  this._gridSize = size;
418
-
419
352
  this._redraw();
420
353
  };
421
- /**
422
- * 获取聚合的最大缩放级别。
423
- * @return {Number} 聚合的最大缩放级别。
424
- */
425
-
426
354
 
355
+ /**
356
+ * 获取聚合的最大缩放级别。
357
+ * @return {Number} 聚合的最大缩放级别。
358
+ */
427
359
  MarkerClusterer.prototype.getMaxZoom = function () {
428
360
  return this._maxZoom;
429
361
  };
430
- /**
431
- * 设置聚合的最大缩放级别
432
- * @param {Number} maxZoom 聚合的最大缩放级别
433
- * @return 无返回值
434
- */
435
-
436
362
 
363
+ /**
364
+ * 设置聚合的最大缩放级别
365
+ * @param {Number} maxZoom 聚合的最大缩放级别
366
+ * @return 无返回值
367
+ */
437
368
  MarkerClusterer.prototype.setMaxZoom = function (maxZoom) {
438
369
  this._maxZoom = maxZoom;
439
-
440
370
  this._redraw();
441
371
  };
442
- /**
443
- * 获取聚合的样式风格集合
444
- * @return {Array<IconStyle>} 聚合的样式风格集合
445
- */
446
-
447
372
 
373
+ /**
374
+ * 获取聚合的样式风格集合
375
+ * @return {Array<IconStyle>} 聚合的样式风格集合
376
+ */
448
377
  MarkerClusterer.prototype.getStyles = function () {
449
378
  return this._styles;
450
379
  };
451
- /**
452
- * 设置聚合的样式风格集合
453
- * @param {Array<IconStyle>} styles 样式风格数组
454
- * @return 无返回值
455
- */
456
-
457
380
 
381
+ /**
382
+ * 设置聚合的样式风格集合
383
+ * @param {Array<IconStyle>} styles 样式风格数组
384
+ * @return 无返回值
385
+ */
458
386
  MarkerClusterer.prototype.setStyles = function (styles) {
459
387
  this._styles = styles;
460
-
461
388
  this._redraw();
462
389
  };
463
- /**
464
- * 获取单个聚合的最小数量。
465
- * @return {Number} 单个聚合的最小数量。
466
- */
467
-
468
390
 
391
+ /**
392
+ * 获取单个聚合的最小数量。
393
+ * @return {Number} 单个聚合的最小数量。
394
+ */
469
395
  MarkerClusterer.prototype.getMinClusterSize = function () {
470
396
  return this._minClusterSize;
471
397
  };
472
- /**
473
- * 设置单个聚合的最小数量。
474
- * @param {Number} size 单个聚合的最小数量。
475
- * @return 无返回值。
476
- */
477
-
478
398
 
399
+ /**
400
+ * 设置单个聚合的最小数量。
401
+ * @param {Number} size 单个聚合的最小数量。
402
+ * @return 无返回值。
403
+ */
479
404
  MarkerClusterer.prototype.setMinClusterSize = function (size) {
480
405
  this._minClusterSize = size;
481
-
482
406
  this._redraw();
483
407
  };
484
- /**
485
- * 获取单个聚合的落脚点是否是聚合内所有标记的平均中心。
486
- * @return {Boolean} true或false。
487
- */
488
-
489
408
 
409
+ /**
410
+ * 获取单个聚合的落脚点是否是聚合内所有标记的平均中心。
411
+ * @return {Boolean} true或false。
412
+ */
490
413
  MarkerClusterer.prototype.isAverageCenter = function () {
491
414
  return this._isAverageCenter;
492
415
  };
493
- /**
494
- * 获取聚合的Map实例。
495
- * @return {Map} Map的示例。
496
- */
497
-
498
416
 
417
+ /**
418
+ * 获取聚合的Map实例。
419
+ * @return {Map} Map的示例。
420
+ */
499
421
  MarkerClusterer.prototype.getMap = function () {
500
422
  return this._map;
501
423
  };
502
- /**
503
- * 获取所有的标记数组。
504
- * @return {Array<Marker>} 标记数组。
505
- */
506
-
507
424
 
425
+ /**
426
+ * 获取所有的标记数组。
427
+ * @return {Array<Marker>} 标记数组。
428
+ */
508
429
  MarkerClusterer.prototype.getMarkers = function () {
509
430
  return this._markers;
510
431
  };
511
- /**
512
- * 获取聚合的总数量。
513
- * @return {Number} 聚合的总数量。
514
- */
515
-
516
432
 
433
+ /**
434
+ * 获取聚合的总数量。
435
+ * @return {Number} 聚合的总数量。
436
+ */
517
437
  MarkerClusterer.prototype.getClustersCount = function () {
518
438
  var count = 0;
519
-
520
439
  for (var i = 0, cluster; cluster = this._clusters[i]; i++) {
521
440
  cluster.isReal() && count++;
522
441
  }
523
-
524
442
  return count;
525
443
  };
526
- /**
527
- * @ignore
528
- * Cluster
529
- * @class 表示一个聚合对象,该聚合,包含有N个标记,这N个标记组成的范围,并有予以显示在Map上的TextIconOverlay等。
530
- * @constructor
531
- * @param {MarkerClusterer} markerClusterer 一个标记聚合器示例。
532
- */
533
-
534
444
 
445
+ /**
446
+ * @ignore
447
+ * Cluster
448
+ * @class 表示一个聚合对象,该聚合,包含有N个标记,这N个标记组成的范围,并有予以显示在Map上的TextIconOverlay等。
449
+ * @constructor
450
+ * @param {MarkerClusterer} markerClusterer 一个标记聚合器示例。
451
+ */
535
452
  function Cluster(markerClusterer) {
536
453
  this._markerClusterer = markerClusterer;
537
454
  this._map = markerClusterer.getMap();
538
455
  this._minClusterSize = markerClusterer.getMinClusterSize();
539
456
  this._isAverageCenter = markerClusterer.isAverageCenter();
540
457
  this._center = null; //落脚位置
541
-
542
458
  this._markers = []; //这个Cluster中所包含的markers
543
-
544
459
  this._gridBounds = null; //以中心点为准,向四边扩大gridSize个像素的范围,也即网格范围
545
-
546
460
  this._isReal = false; //真的是个聚合
547
461
 
548
462
  this._clusterMarker = new BMapLib.TextIconOverlay(this._center, this._markers.length, {
549
463
  styles: this._markerClusterer.getStyles()
550
- }); //this._map.addOverlay(this._clusterMarker);
464
+ });
465
+ //this._map.addOverlay(this._clusterMarker);
551
466
  }
552
- /**
553
- * 向该聚合添加一个标记。
554
- * @param {Marker} marker 要添加的标记。
555
- * @return 无返回值。
556
- */
557
-
558
467
 
468
+ /**
469
+ * 向该聚合添加一个标记。
470
+ * @param {Marker} marker 要添加的标记。
471
+ * @return 无返回值。
472
+ */
559
473
  Cluster.prototype.addMarker = function (marker) {
560
474
  if (this.isMarkerInCluster(marker)) {
561
475
  return false;
562
476
  } //也可用marker.isInCluster判断,外面判断OK,这里基本不会命中
563
477
 
564
-
565
478
  if (!this._center) {
566
479
  this._center = marker.getPosition();
567
480
  this.updateGridBounds(); //
@@ -573,40 +486,33 @@ var BMapLib = window.BMapLib = BMapLib || {};
573
486
  this._center = new BMap.Point(lng, lat);
574
487
  this.updateGridBounds();
575
488
  } //计算新的Center
576
-
577
489
  }
578
-
579
490
  marker.isInCluster = true;
580
-
581
491
  this._markers.push(marker);
582
492
  };
583
- /**
584
- * 进行dom操作
585
- * @return 无返回值
586
- */
587
-
588
493
 
494
+ /**
495
+ * 进行dom操作
496
+ * @return 无返回值
497
+ */
589
498
  Cluster.prototype.render = function () {
590
499
  var len = this._markers.length;
591
-
592
500
  if (len < this._minClusterSize) {
593
501
  for (var i = 0; i < len; i++) {
594
502
  this._map.addOverlay(this._markers[i]);
595
503
  }
596
504
  } else {
597
505
  this._map.addOverlay(this._clusterMarker);
598
-
599
506
  this._isReal = true;
600
507
  this.updateClusterMarker();
601
508
  }
602
509
  };
603
- /**
604
- * 判断一个标记是否在该聚合中。
605
- * @param {Marker} marker 要判断的标记。
606
- * @return {Boolean} true或false。
607
- */
608
-
609
510
 
511
+ /**
512
+ * 判断一个标记是否在该聚合中。
513
+ * @param {Marker} marker 要判断的标记。
514
+ * @return {Boolean} true或false。
515
+ */
610
516
  Cluster.prototype.isMarkerInCluster = function (marker) {
611
517
  if (this._markers.indexOf) {
612
518
  return this._markers.indexOf(marker) != -1;
@@ -617,108 +523,86 @@ var BMapLib = window.BMapLib = BMapLib || {};
617
523
  }
618
524
  }
619
525
  }
620
-
621
526
  return false;
622
527
  };
623
- /**
624
- * 判断一个标记是否在该聚合网格范围中。
625
- * @param {Marker} marker 要判断的标记。
626
- * @return {Boolean} true或false。
627
- */
628
-
629
528
 
529
+ /**
530
+ * 判断一个标记是否在该聚合网格范围中。
531
+ * @param {Marker} marker 要判断的标记。
532
+ * @return {Boolean} true或false。
533
+ */
630
534
  Cluster.prototype.isMarkerInClusterBounds = function (marker) {
631
535
  return this._gridBounds.containsPoint(marker.getPosition());
632
536
  };
633
-
634
537
  Cluster.prototype.isReal = function (marker) {
635
538
  return this._isReal;
636
539
  };
637
- /**
638
- * 更新该聚合的网格范围。
639
- * @return 无返回值。
640
- */
641
-
642
540
 
541
+ /**
542
+ * 更新该聚合的网格范围。
543
+ * @return 无返回值。
544
+ */
643
545
  Cluster.prototype.updateGridBounds = function () {
644
546
  var bounds = new BMap.Bounds(this._center, this._center);
645
547
  this._gridBounds = getExtendedBounds(this._map, bounds, this._markerClusterer.getGridSize());
646
548
  };
647
- /**
648
- * 更新该聚合的显示样式,也即TextIconOverlay。
649
- * @return 无返回值。
650
- */
651
-
652
549
 
550
+ /**
551
+ * 更新该聚合的显示样式,也即TextIconOverlay。
552
+ * @return 无返回值。
553
+ */
653
554
  Cluster.prototype.updateClusterMarker = function () {
654
555
  if (this._map.getZoom() > this._markerClusterer.getMaxZoom()) {
655
556
  this._clusterMarker && this._map.removeOverlay(this._clusterMarker);
656
-
657
557
  for (var i = 0, marker; marker = this._markers[i]; i++) {
658
558
  this._map.addOverlay(marker);
659
559
  }
660
-
661
560
  return;
662
561
  }
663
-
664
562
  if (this._markers.length < this._minClusterSize) {
665
563
  this._clusterMarker.hide();
666
-
667
564
  return;
668
565
  }
669
-
670
566
  this._clusterMarker.setPosition(this._center);
671
-
672
567
  this._clusterMarker.setText(this._markers.length);
673
-
674
568
  var thatMap = this._map;
675
569
  var thatBounds = this.getBounds();
676
-
677
570
  this._clusterMarker.addEventListener('click', function (event) {
678
571
  thatMap.setViewport(thatBounds);
679
572
  });
680
573
  };
681
- /**
682
- * 删除该聚合。
683
- * @return 无返回值。
684
- */
685
-
686
574
 
575
+ /**
576
+ * 删除该聚合。
577
+ * @return 无返回值。
578
+ */
687
579
  Cluster.prototype.remove = function () {
688
580
  for (var i = 0, m; m = this._markers[i]; i++) {
689
581
  tmplabel = this._markers[i].getLabel();
690
582
  this._markers[i].getMap() && this._map.removeOverlay(this._markers[i]);
691
-
692
583
  this._markers[i].setLabel(tmplabel);
693
584
  } //清除散的标记点
694
-
695
-
696
585
  this._map.removeOverlay(this._clusterMarker);
697
-
698
586
  this._markers.length = 0;
699
587
  delete this._markers;
700
588
  };
701
- /**
702
- * 获取该聚合所包含的所有标记的最小外接矩形的范围。
703
- * @return {BMap.Bounds} 计算出的范围。
704
- */
705
-
706
589
 
590
+ /**
591
+ * 获取该聚合所包含的所有标记的最小外接矩形的范围。
592
+ * @return {BMap.Bounds} 计算出的范围。
593
+ */
707
594
  Cluster.prototype.getBounds = function () {
708
595
  var bounds = new BMap.Bounds(this._center, this._center);
709
-
710
596
  for (var i = 0, marker; marker = this._markers[i]; i++) {
711
597
  bounds.extend(marker.getPosition());
712
598
  }
713
-
714
599
  return bounds;
715
600
  };
716
- /**
717
- * 获取该聚合的落脚点。
718
- * @return {BMap.Point} 该聚合的落脚点。
719
- */
720
-
721
601
 
602
+ /**
603
+ * 获取该聚合的落脚点。
604
+ * @return {BMap.Point} 该聚合的落脚点。
605
+ */
722
606
  Cluster.prototype.getCenter = function () {
723
607
  return this._center;
724
608
  };