@vtx/cs-map 1.0.38 → 1.0.39

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 (386) hide show
  1. package/lib/_util/EventEmitter.js +79 -0
  2. package/lib/_util/EventEmitter.js.map +1 -0
  3. package/lib/_util/Provider.js +12 -0
  4. package/lib/_util/Provider.js.map +1 -0
  5. package/lib/_util/filterSpecialCharacters.js +90 -0
  6. package/lib/_util/filterSpecialCharacters.js.map +1 -0
  7. package/lib/_util/generateRandomPosition.js +24 -0
  8. package/lib/_util/generateRandomPosition.js.map +1 -0
  9. package/lib/_util/getBBoxFromGeojson.js +65 -0
  10. package/lib/_util/getBBoxFromGeojson.js.map +1 -0
  11. package/lib/_util/getComponentProps.js +14 -0
  12. package/lib/_util/getComponentProps.js.map +1 -0
  13. package/lib/_util/getCookie.js +24 -0
  14. package/lib/_util/getCookie.js.map +1 -0
  15. package/lib/_util/getDefaultMapInfo.js +33 -0
  16. package/lib/_util/getDefaultMapInfo.js.map +1 -0
  17. package/lib/_util/getSystemInfo.js +26 -0
  18. package/lib/_util/getSystemInfo.js.map +1 -0
  19. package/lib/_util/getToken.js +13 -0
  20. package/lib/_util/getToken.js.map +1 -0
  21. package/lib/_util/getUrlParam.js +15 -0
  22. package/lib/_util/getUrlParam.js.map +1 -0
  23. package/lib/_util/http.js +186 -0
  24. package/lib/_util/http.js.map +1 -0
  25. package/lib/_util/isFunction.js +10 -0
  26. package/lib/_util/isFunction.js.map +1 -0
  27. package/lib/_util/isObject.js +10 -0
  28. package/lib/_util/isObject.js.map +1 -0
  29. package/lib/_util/layer.js +134 -0
  30. package/lib/_util/layer.js.map +1 -0
  31. package/lib/_util/mapTool.js +187 -0
  32. package/lib/_util/mapTool.js.map +1 -0
  33. package/lib/_util/setCookie.js +15 -0
  34. package/lib/_util/setCookie.js.map +1 -0
  35. package/lib/_util/transformRgb.js +33 -0
  36. package/lib/_util/transformRgb.js.map +1 -0
  37. package/lib/_util/useColSize.js +28 -0
  38. package/lib/_util/useColSize.js.map +1 -0
  39. package/lib/_util/useInterval.js +19 -0
  40. package/lib/_util/useInterval.js.map +1 -0
  41. package/lib/_util/useProps.js +14 -0
  42. package/lib/_util/useProps.js.map +1 -0
  43. package/lib/_util/useSet.js +44 -0
  44. package/lib/_util/useSet.js.map +1 -0
  45. package/lib/assets/base-img-1.png +0 -0
  46. package/lib/assets/base-img-2.png +0 -0
  47. package/lib/assets/base-img-3.png +0 -0
  48. package/lib/assets/base-img-4.png +0 -0
  49. package/lib/assets/base-img-5.png +0 -0
  50. package/lib/assets/base-img.png +0 -0
  51. package/lib/assets/bz.png +0 -0
  52. package/lib/assets/colors.png +0 -0
  53. package/lib/assets/colors1.png +0 -0
  54. package/lib/assets/ll.png +0 -0
  55. package/lib/assets/people.gif +0 -0
  56. package/lib/assets/sw.png +0 -0
  57. package/lib/assets/water.png +0 -0
  58. package/lib/assets/yl.png +0 -0
  59. package/lib/cesium-tiles-layer/CesiumTilesLayer.js +56 -0
  60. package/lib/cesium-tiles-layer/CesiumTilesLayer.js.map +1 -0
  61. package/lib/cesium-tiles-layer/index.js +73 -0
  62. package/lib/cesium-tiles-layer/index.js.map +1 -0
  63. package/lib/cesium-tiles-layer/style/css.js +4 -0
  64. package/lib/cesium-tiles-layer/style/css.js.map +1 -0
  65. package/lib/cesium-tiles-layer/style/index.css +0 -0
  66. package/lib/cesium-tiles-layer/style/index.js +4 -0
  67. package/lib/cesium-tiles-layer/style/index.js.map +1 -0
  68. package/lib/cesium-tiles-layer/style/index.less +0 -0
  69. package/lib/circle/circle.js +67 -0
  70. package/lib/circle/circle.js.map +1 -0
  71. package/lib/circle/index.js +49 -0
  72. package/lib/circle/index.js.map +1 -0
  73. package/lib/circle/style/css.js +2 -0
  74. package/lib/circle/style/css.js.map +1 -0
  75. package/lib/circle/style/index.js +2 -0
  76. package/lib/circle/style/index.js.map +1 -0
  77. package/lib/config.js +12 -0
  78. package/lib/config.js.map +1 -0
  79. package/lib/demand-layer/DemandLayer.js +409 -0
  80. package/lib/demand-layer/DemandLayer.js.map +1 -0
  81. package/lib/demand-layer/index.js +104 -0
  82. package/lib/demand-layer/index.js.map +1 -0
  83. package/lib/demand-layer/style/css.js +4 -0
  84. package/lib/demand-layer/style/css.js.map +1 -0
  85. package/lib/demand-layer/style/index.css +0 -0
  86. package/lib/demand-layer/style/index.js +4 -0
  87. package/lib/demand-layer/style/index.js.map +1 -0
  88. package/lib/demand-layer/style/index.less +0 -0
  89. package/lib/events/index.js +27 -0
  90. package/lib/events/index.js.map +1 -0
  91. package/lib/feature-layer/FeatureLayer.js +458 -0
  92. package/lib/feature-layer/FeatureLayer.js.map +1 -0
  93. package/lib/feature-layer/createFeatureCollection.js +127 -0
  94. package/lib/feature-layer/createFeatureCollection.js.map +1 -0
  95. package/lib/feature-layer/index.js +115 -0
  96. package/lib/feature-layer/index.js.map +1 -0
  97. package/lib/feature-layer/style/css.js +4 -0
  98. package/lib/feature-layer/style/css.js.map +1 -0
  99. package/lib/feature-layer/style/index.css +0 -0
  100. package/lib/feature-layer/style/index.js +4 -0
  101. package/lib/feature-layer/style/index.js.map +1 -0
  102. package/lib/feature-layer/style/index.less +0 -0
  103. package/lib/fly-line-layer/FlyLineLayer.js +259 -0
  104. package/lib/fly-line-layer/FlyLineLayer.js.map +1 -0
  105. package/lib/fly-line-layer/index.js +90 -0
  106. package/lib/fly-line-layer/index.js.map +1 -0
  107. package/lib/fly-line-layer/lineFlowMaterialProperty.js +89 -0
  108. package/lib/fly-line-layer/lineFlowMaterialProperty.js.map +1 -0
  109. package/lib/fly-line-layer/style/css.js +4 -0
  110. package/lib/fly-line-layer/style/css.js.map +1 -0
  111. package/lib/fly-line-layer/style/index.css +0 -0
  112. package/lib/fly-line-layer/style/index.js +4 -0
  113. package/lib/fly-line-layer/style/index.js.map +1 -0
  114. package/lib/fly-line-layer/style/index.less +0 -0
  115. package/lib/gif-dom-layer/GifDomLayer.js +104 -0
  116. package/lib/gif-dom-layer/GifDomLayer.js.map +1 -0
  117. package/lib/gif-dom-layer/index.js +44 -0
  118. package/lib/gif-dom-layer/index.js.map +1 -0
  119. package/lib/gif-dom-layer/style/css.js +4 -0
  120. package/lib/gif-dom-layer/style/css.js.map +1 -0
  121. package/lib/gif-dom-layer/style/index.css +0 -0
  122. package/lib/gif-dom-layer/style/index.js +4 -0
  123. package/lib/gif-dom-layer/style/index.js.map +1 -0
  124. package/lib/gif-dom-layer/style/index.less +0 -0
  125. package/lib/gradation-line-layer/GradationLineLayer.js +103 -0
  126. package/lib/gradation-line-layer/GradationLineLayer.js.map +1 -0
  127. package/lib/gradation-line-layer/index.js +83 -0
  128. package/lib/gradation-line-layer/index.js.map +1 -0
  129. package/lib/gradation-line-layer/style/css.js +4 -0
  130. package/lib/gradation-line-layer/style/css.js.map +1 -0
  131. package/lib/gradation-line-layer/style/index.css +0 -0
  132. package/lib/gradation-line-layer/style/index.js +4 -0
  133. package/lib/gradation-line-layer/style/index.js.map +1 -0
  134. package/lib/gradation-line-layer/style/index.less +0 -0
  135. package/lib/group-layer/GroupLayer.js +131 -0
  136. package/lib/group-layer/GroupLayer.js.map +1 -0
  137. package/lib/group-layer/index.js +71 -0
  138. package/lib/group-layer/index.js.map +1 -0
  139. package/lib/group-layer/style/css.js +4 -0
  140. package/lib/group-layer/style/css.js.map +1 -0
  141. package/lib/group-layer/style/index.css +0 -0
  142. package/lib/group-layer/style/index.js +4 -0
  143. package/lib/group-layer/style/index.js.map +1 -0
  144. package/lib/group-layer/style/index.less +0 -0
  145. package/lib/heatmap-layer/CesiumHeatmap.js +445 -0
  146. package/lib/heatmap-layer/CesiumHeatmap.js.map +1 -0
  147. package/lib/heatmap-layer/HeatmapLayer.js +157 -0
  148. package/lib/heatmap-layer/HeatmapLayer.js.map +1 -0
  149. package/lib/heatmap-layer/heatmap.js +610 -0
  150. package/lib/heatmap-layer/heatmap.js.map +1 -0
  151. package/lib/heatmap-layer/index.js +90 -0
  152. package/lib/heatmap-layer/index.js.map +1 -0
  153. package/lib/heatmap-layer/style/css.js +4 -0
  154. package/lib/heatmap-layer/style/css.js.map +1 -0
  155. package/lib/heatmap-layer/style/index.css +0 -0
  156. package/lib/heatmap-layer/style/index.js +4 -0
  157. package/lib/heatmap-layer/style/index.js.map +1 -0
  158. package/lib/heatmap-layer/style/index.less +0 -0
  159. package/lib/highlight-layer/HighlightLayer.js +261 -0
  160. package/lib/highlight-layer/HighlightLayer.js.map +1 -0
  161. package/lib/highlight-layer/index.js +25 -0
  162. package/lib/highlight-layer/index.js.map +1 -0
  163. package/lib/highlight-layer/style/css.js +4 -0
  164. package/lib/highlight-layer/style/css.js.map +1 -0
  165. package/lib/highlight-layer/style/index.css +0 -0
  166. package/lib/highlight-layer/style/index.js +4 -0
  167. package/lib/highlight-layer/style/index.js.map +1 -0
  168. package/lib/highlight-layer/style/index.less +0 -0
  169. package/lib/image-layer/ImageLayer.js +244 -0
  170. package/lib/image-layer/ImageLayer.js.map +1 -0
  171. package/lib/image-layer/index.js +134 -0
  172. package/lib/image-layer/index.js.map +1 -0
  173. package/lib/image-layer/style/css.js +4 -0
  174. package/lib/image-layer/style/css.js.map +1 -0
  175. package/lib/image-layer/style/index.css +0 -0
  176. package/lib/image-layer/style/index.js +4 -0
  177. package/lib/image-layer/style/index.js.map +1 -0
  178. package/lib/image-layer/style/index.less +0 -0
  179. package/lib/index.js +147 -0
  180. package/lib/index.js.map +1 -0
  181. package/lib/label/Label.js +74 -0
  182. package/lib/label/Label.js.map +1 -0
  183. package/lib/label/index.js +51 -0
  184. package/lib/label/index.js.map +1 -0
  185. package/lib/label/style/css.js +2 -0
  186. package/lib/label/style/css.js.map +1 -0
  187. package/lib/label/style/index.js +2 -0
  188. package/lib/label/style/index.js.map +1 -0
  189. package/lib/legend/index.js +208 -0
  190. package/lib/legend/index.js.map +1 -0
  191. package/lib/legend/style/css.js +8 -0
  192. package/lib/legend/style/css.js.map +1 -0
  193. package/lib/legend/style/index.css +60 -0
  194. package/lib/legend/style/index.js +8 -0
  195. package/lib/legend/style/index.js.map +1 -0
  196. package/lib/legend/style/index.less +63 -0
  197. package/lib/line-flow-layer/LineFlowLayer.js +104 -0
  198. package/lib/line-flow-layer/LineFlowLayer.js.map +1 -0
  199. package/lib/line-flow-layer/index.js +34 -0
  200. package/lib/line-flow-layer/index.js.map +1 -0
  201. package/lib/line-flow-layer/style/css.js +4 -0
  202. package/lib/line-flow-layer/style/css.js.map +1 -0
  203. package/lib/line-flow-layer/style/index.css +0 -0
  204. package/lib/line-flow-layer/style/index.js +4 -0
  205. package/lib/line-flow-layer/style/index.js.map +1 -0
  206. package/lib/line-flow-layer/style/index.less +0 -0
  207. package/lib/map/InfoTool/index.css +55 -0
  208. package/lib/map/InfoTool/index.js +246 -0
  209. package/lib/map/InfoTool/index.js.map +1 -0
  210. package/lib/map/InfoTool/index.less +46 -0
  211. package/lib/map/InfoTool/util.js +112 -0
  212. package/lib/map/InfoTool/util.js.map +1 -0
  213. package/lib/map/InfoWindow.js +72 -0
  214. package/lib/map/InfoWindow.js.map +1 -0
  215. package/lib/map/Layers.js +286 -0
  216. package/lib/map/Layers.js.map +1 -0
  217. package/lib/map/Popup.js +301 -0
  218. package/lib/map/Popup.js.map +1 -0
  219. package/lib/map/base/imagery/amap/AmapImageryProvider.js +46 -0
  220. package/lib/map/base/imagery/amap/AmapImageryProvider.js.map +1 -0
  221. package/lib/map/base/imagery/amap/AmapMercatorTilingScheme.js +46 -0
  222. package/lib/map/base/imagery/amap/AmapMercatorTilingScheme.js.map +1 -0
  223. package/lib/map/base/imagery/baidu/BaiduImageryProvider.js +146 -0
  224. package/lib/map/base/imagery/baidu/BaiduImageryProvider.js.map +1 -0
  225. package/lib/map/base/imagery/baidu/BaiduMercatorProjection.js +377 -0
  226. package/lib/map/base/imagery/baidu/BaiduMercatorProjection.js.map +1 -0
  227. package/lib/map/base/imagery/baidu/BaiduMercatorTilingScheme.js +121 -0
  228. package/lib/map/base/imagery/baidu/BaiduMercatorTilingScheme.js.map +1 -0
  229. package/lib/map/base/imagery/geoq/GeoQImageryProvider.js +48 -0
  230. package/lib/map/base/imagery/geoq/GeoQImageryProvider.js.map +1 -0
  231. package/lib/map/base/imagery/google/GoogleImageryProvider.js +41 -0
  232. package/lib/map/base/imagery/google/GoogleImageryProvider.js.map +1 -0
  233. package/lib/map/base/imagery/tdt/TdtImageryProvider.js +38 -0
  234. package/lib/map/base/imagery/tdt/TdtImageryProvider.js.map +1 -0
  235. package/lib/map/base/imagery/tencent/TencentImageryProvider.js +59 -0
  236. package/lib/map/base/imagery/tencent/TencentImageryProvider.js.map +1 -0
  237. package/lib/map/base/imagery/transform/AmapMercatorTilingScheme.js +46 -0
  238. package/lib/map/base/imagery/transform/AmapMercatorTilingScheme.js.map +1 -0
  239. package/lib/map/base/imagery/transform/CoordTransform.js +173 -0
  240. package/lib/map/base/imagery/transform/CoordTransform.js.map +1 -0
  241. package/lib/map/base/index.js +204 -0
  242. package/lib/map/base/index.js.map +1 -0
  243. package/lib/map/hooks/useGetMapFeatureInfoByText.js +209 -0
  244. package/lib/map/hooks/useGetMapFeatureInfoByText.js.map +1 -0
  245. package/lib/map/index.js +843 -0
  246. package/lib/map/index.js.map +1 -0
  247. package/lib/map/material/AroundPoint.js +65 -0
  248. package/lib/map/material/AroundPoint.js.map +1 -0
  249. package/lib/map/material/CircleRippleMaterialProperty.js +87 -0
  250. package/lib/map/material/CircleRippleMaterialProperty.js.map +1 -0
  251. package/lib/map/material/ODLineLayer.js +91 -0
  252. package/lib/map/material/ODLineLayer.js.map +1 -0
  253. package/lib/map/material/PolylineTrailLinkMaterialProperty.js +100 -0
  254. package/lib/map/material/PolylineTrailLinkMaterialProperty.js.map +1 -0
  255. package/lib/map/material/PolylineTrailMaterialProperty.js +101 -0
  256. package/lib/map/material/PolylineTrailMaterialProperty.js.map +1 -0
  257. package/lib/map/material/TilesBuilding.js +207 -0
  258. package/lib/map/material/TilesBuilding.js.map +1 -0
  259. package/lib/map/material/assets/colors1.png +0 -0
  260. package/lib/map/material/assets/colors2.png +0 -0
  261. package/lib/map/material/index.js +16 -0
  262. package/lib/map/material/index.js.map +1 -0
  263. package/lib/map/style/css.js +4 -0
  264. package/lib/map/style/css.js.map +1 -0
  265. package/lib/map/style/index.css +155 -0
  266. package/lib/map/style/index.js +4 -0
  267. package/lib/map/style/index.js.map +1 -0
  268. package/lib/map/style/index.less +149 -0
  269. package/lib/marker/Marker.js +112 -0
  270. package/lib/marker/Marker.js.map +1 -0
  271. package/lib/marker/index.js +49 -0
  272. package/lib/marker/index.js.map +1 -0
  273. package/lib/marker/style/css.js +2 -0
  274. package/lib/marker/style/css.js.map +1 -0
  275. package/lib/marker/style/index.js +2 -0
  276. package/lib/marker/style/index.js.map +1 -0
  277. package/lib/point/Point.js +69 -0
  278. package/lib/point/Point.js.map +1 -0
  279. package/lib/point/index.js +49 -0
  280. package/lib/point/index.js.map +1 -0
  281. package/lib/point/style/css.js +2 -0
  282. package/lib/point/style/css.js.map +1 -0
  283. package/lib/point/style/index.js +2 -0
  284. package/lib/point/style/index.js.map +1 -0
  285. package/lib/polygon/Polygon.js +67 -0
  286. package/lib/polygon/Polygon.js.map +1 -0
  287. package/lib/polygon/index.js +49 -0
  288. package/lib/polygon/index.js.map +1 -0
  289. package/lib/polygon/style/css.js +2 -0
  290. package/lib/polygon/style/css.js.map +1 -0
  291. package/lib/polygon/style/index.js +2 -0
  292. package/lib/polygon/style/index.js.map +1 -0
  293. package/lib/polyline/Polyline.js +68 -0
  294. package/lib/polyline/Polyline.js.map +1 -0
  295. package/lib/polyline/index.js +49 -0
  296. package/lib/polyline/index.js.map +1 -0
  297. package/lib/polyline/style/css.js +2 -0
  298. package/lib/polyline/style/css.js.map +1 -0
  299. package/lib/polyline/style/index.js +2 -0
  300. package/lib/polyline/style/index.js.map +1 -0
  301. package/lib/renderer/index.js +268 -0
  302. package/lib/renderer/index.js.map +1 -0
  303. package/lib/renderer/style/css.js +4 -0
  304. package/lib/renderer/style/css.js.map +1 -0
  305. package/lib/renderer/style/index.css +0 -0
  306. package/lib/renderer/style/index.js +4 -0
  307. package/lib/renderer/style/index.js.map +1 -0
  308. package/lib/renderer/style/index.less +0 -0
  309. package/lib/style/index.css +0 -0
  310. package/lib/style/index.less +2 -0
  311. package/lib/style/themes/compact.css +0 -0
  312. package/lib/style/themes/compact.less +1 -0
  313. package/lib/style/themes/dark.css +0 -0
  314. package/lib/style/themes/dark.less +9 -0
  315. package/lib/style/themes/default.css +0 -0
  316. package/lib/style/themes/default.less +7 -0
  317. package/lib/style/themes/index.css +0 -0
  318. package/lib/style/themes/index.less +1 -0
  319. package/lib/style/themes/variable.css +0 -0
  320. package/lib/style/themes/variable.less +5 -0
  321. package/lib/tools/assets/footer.png +0 -0
  322. package/lib/tools/assets/layer.png +0 -0
  323. package/lib/tools/assets/search.png +0 -0
  324. package/lib/tools/base-map-switch/index.js +103 -0
  325. package/lib/tools/base-map-switch/index.js.map +1 -0
  326. package/lib/tools/dimension-switch/index.js +38 -0
  327. package/lib/tools/dimension-switch/index.js.map +1 -0
  328. package/lib/tools/index.js +49 -0
  329. package/lib/tools/index.js.map +1 -0
  330. package/lib/tools/layer-control/index.js +171 -0
  331. package/lib/tools/layer-control/index.js.map +1 -0
  332. package/lib/tools/map-search/Select/index.js +55 -0
  333. package/lib/tools/map-search/Select/index.js.map +1 -0
  334. package/lib/tools/map-search/Select/style/css.js +4 -0
  335. package/lib/tools/map-search/Select/style/css.js.map +1 -0
  336. package/lib/tools/map-search/Select/style/index.css +45 -0
  337. package/lib/tools/map-search/Select/style/index.js +4 -0
  338. package/lib/tools/map-search/Select/style/index.js.map +1 -0
  339. package/lib/tools/map-search/Select/style/index.less +47 -0
  340. package/lib/tools/map-search/index.js +204 -0
  341. package/lib/tools/map-search/index.js.map +1 -0
  342. package/lib/tools/style/css.js +8 -0
  343. package/lib/tools/style/css.js.map +1 -0
  344. package/lib/tools/style/index.css +208 -0
  345. package/lib/tools/style/index.js +8 -0
  346. package/lib/tools/style/index.js.map +1 -0
  347. package/lib/tools/style/index.less +225 -0
  348. package/lib/tools/tools-item/index.js +66 -0
  349. package/lib/tools/tools-item/index.js.map +1 -0
  350. package/lib/trail-polyline-layer/TrailPolylineLayer.js +81 -0
  351. package/lib/trail-polyline-layer/TrailPolylineLayer.js.map +1 -0
  352. package/lib/trail-polyline-layer/TrailPolylineMaterial.js +30 -0
  353. package/lib/trail-polyline-layer/TrailPolylineMaterial.js.map +1 -0
  354. package/lib/trail-polyline-layer/index.js +28 -0
  355. package/lib/trail-polyline-layer/index.js.map +1 -0
  356. package/lib/trail-polyline-layer/style/css.js +4 -0
  357. package/lib/trail-polyline-layer/style/css.js.map +1 -0
  358. package/lib/trail-polyline-layer/style/index.css +0 -0
  359. package/lib/trail-polyline-layer/style/index.js +4 -0
  360. package/lib/trail-polyline-layer/style/index.js.map +1 -0
  361. package/lib/trail-polyline-layer/style/index.less +0 -0
  362. package/lib/use-props/style/css.js +2 -0
  363. package/lib/use-props/style/css.js.map +1 -0
  364. package/lib/use-props/style/index.js +2 -0
  365. package/lib/use-props/style/index.js.map +1 -0
  366. package/lib/water-surface-layer/WaterSurfaceLayer.js +86 -0
  367. package/lib/water-surface-layer/WaterSurfaceLayer.js.map +1 -0
  368. package/lib/water-surface-layer/index.js +28 -0
  369. package/lib/water-surface-layer/index.js.map +1 -0
  370. package/lib/water-surface-layer/style/css.js +4 -0
  371. package/lib/water-surface-layer/style/css.js.map +1 -0
  372. package/lib/water-surface-layer/style/index.css +0 -0
  373. package/lib/water-surface-layer/style/index.js +4 -0
  374. package/lib/water-surface-layer/style/index.js.map +1 -0
  375. package/lib/water-surface-layer/style/index.less +0 -0
  376. package/lib/weather/Weather.js +174 -0
  377. package/lib/weather/Weather.js.map +1 -0
  378. package/lib/weather/index.js +36 -0
  379. package/lib/weather/index.js.map +1 -0
  380. package/lib/weather/style/css.js +8 -0
  381. package/lib/weather/style/css.js.map +1 -0
  382. package/lib/weather/style/index.css +60 -0
  383. package/lib/weather/style/index.js +8 -0
  384. package/lib/weather/style/index.js.map +1 -0
  385. package/lib/weather/style/index.less +63 -0
  386. package/package.json +1 -1
@@ -0,0 +1,445 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.CesiumHeatmap = void 0;
7
+ var _cesium = require("cesium");
8
+ var _heatmap = _interopRequireDefault(require("./heatmap.js"));
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
10
+ 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); }
11
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
12
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
13
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
14
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
15
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
16
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
17
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
18
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
19
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
20
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
21
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
22
+ function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
23
+ function set(target, property, value, receiver) { if (typeof Reflect !== "undefined" && Reflect.set) { set = Reflect.set; } else { set = function set(target, property, value, receiver) { var base = _superPropBase(target, property); var desc; if (base) { desc = Object.getOwnPropertyDescriptor(base, property); if (desc.set) { desc.set.call(receiver, value); return true; } else if (!desc.writable) { return false; } } desc = Object.getOwnPropertyDescriptor(receiver, property); if (desc) { if (!desc.writable) { return false; } desc.value = value; Object.defineProperty(receiver, property, desc); } else { _defineProperty(receiver, property, value); } return true; }; } return set(target, property, value, receiver); }
24
+ function _set(target, property, value, receiver, isStrict) { var s = set(target, property, value, receiver || target); if (!s && isStrict) { throw new TypeError('failed to set property'); } return value; }
25
+ function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
26
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
27
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
28
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
29
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
30
+ //只能使用2.0.0版本,高版本热度图有出不来的情况,并且2.0.0 npm包有问题,只能通过修改使用这个js
31
+
32
+ var Max = function Max(arr) {
33
+ var len = arr.length;
34
+ var max = -Infinity;
35
+ while (len--) {
36
+ max = arr[len] > max ? arr[len] : max;
37
+ }
38
+ return max;
39
+ };
40
+ var Min = function Min(arr) {
41
+ var len = arr.length;
42
+ var min = Infinity;
43
+ while (len--) {
44
+ min = arr[len] < min ? arr[len] : min;
45
+ }
46
+ return min;
47
+ };
48
+
49
+ /**
50
+ * 热度图
51
+ */
52
+ var CesiumHeatmap = exports.CesiumHeatmap = /*#__PURE__*/function () {
53
+ function CesiumHeatmap(viewer, options) {
54
+ var _this$initOptions;
55
+ _classCallCheck(this, CesiumHeatmap);
56
+ _defineProperty(this, "viewer", void 0);
57
+ _defineProperty(this, "element", void 0);
58
+ _defineProperty(this, "initOptions", void 0);
59
+ _defineProperty(this, "heatmapOptions", void 0);
60
+ _defineProperty(this, "heatmapDataOptions", void 0);
61
+ _defineProperty(this, "provider", void 0);
62
+ _defineProperty(this, "heatmap", void 0);
63
+ _defineProperty(this, "cameraMoveEnd", void 0);
64
+ _defineProperty(this, "bounds", [0, 0, 0, 0]);
65
+ _defineProperty(this, "lastCameraHeight", 0);
66
+ _defineProperty(this, "initRadius", 10);
67
+ this.viewer = viewer;
68
+ var key = options.key,
69
+ name = options.name,
70
+ layerControl = options.layerControl,
71
+ show = options.show;
72
+ this.initOptions = _objectSpread({}, options);
73
+ // 图层标识
74
+ this.key = key;
75
+
76
+ // 图层名称
77
+ this.name = name;
78
+ this.layerControl = layerControl;
79
+ _set(_getPrototypeOf(CesiumHeatmap.prototype), "show", show, this, true);
80
+ if ((_this$initOptions = this.initOptions) !== null && _this$initOptions !== void 0 && (_this$initOptions = _this$initOptions.points) !== null && _this$initOptions !== void 0 && _this$initOptions.length) {
81
+ var _this$initOptions2, _this$heatmapOptions;
82
+ var bounds = this.getBounds(this.initOptions.points);
83
+ this.bounds = bounds;
84
+ var _this$createContainer = this.createContainer(bounds),
85
+ container = _this$createContainer.container,
86
+ width = _this$createContainer.width,
87
+ height = _this$createContainer.height;
88
+ this.element = container;
89
+ var datas = [];
90
+ var values = [];
91
+ for (var i in this.initOptions.points) {
92
+ var point = this.initOptions.points[i];
93
+ var x = (point.x - bounds[0]) / (bounds[2] - bounds[0]) * width; //屏幕坐标x
94
+ var y = (bounds[3] - point.y) / (bounds[3] - bounds[1]) * height; //屏幕坐标y
95
+ var dataPoint = {
96
+ x: x,
97
+ y: y,
98
+ value: point.value
99
+ };
100
+ if (typeof point.value === 'number') values.push(point.value);
101
+ datas.push(dataPoint);
102
+ }
103
+
104
+ //数据的最大值和最小值
105
+ var _min = values.length > 100000 ? Min(values) : Math.min.apply(Math, values);
106
+ var _max = values.length > 100000 ? Max(values) : Math.max.apply(Math, values);
107
+ if ((_this$initOptions2 = this.initOptions) !== null && _this$initOptions2 !== void 0 && _this$initOptions2.heatmapDataOptions) {
108
+ var _this$initOptions$hea = this.initOptions.heatmapDataOptions,
109
+ min = _this$initOptions$hea.min,
110
+ max = _this$initOptions$hea.max;
111
+ if (typeof min === 'number') {
112
+ _min = min;
113
+ }
114
+ if (typeof max === 'number') {
115
+ _max = max;
116
+ }
117
+ }
118
+ this.heatmapDataOptions = {
119
+ min: _min,
120
+ max: _max
121
+ };
122
+ var data = {
123
+ max: _max,
124
+ min: _min,
125
+ data: datas
126
+ };
127
+ var defaultOptions = {
128
+ maxOpacity: 0.9,
129
+ // radius: minRadius,
130
+ // minimum opacity. any value > 0 will produce
131
+ // no transparent gradient transition
132
+ minOpacity: 0.1,
133
+ gradient: {
134
+ // enter n keys between 0 and 1 here
135
+ // for gradient color customization
136
+ '.3': 'blue',
137
+ '.5': 'green',
138
+ '.7': 'yellow',
139
+ '.95': 'red'
140
+ }
141
+ };
142
+ var _options = this.initOptions.heatmapOptions ? _objectSpread(_objectSpread({}, defaultOptions), this.initOptions.heatmapOptions) : defaultOptions;
143
+
144
+ //初始化半径
145
+ if ((_this$heatmapOptions = this.heatmapOptions) !== null && _this$heatmapOptions !== void 0 && _this$heatmapOptions.radius) {
146
+ this.initRadius = this.heatmapOptions.radius;
147
+ }
148
+ this.heatmapOptions = _objectSpread({}, _options);
149
+ var _options2 = _objectSpread(_objectSpread({}, _options), {}, {
150
+ container: container
151
+ });
152
+ this.heatmap = _heatmap["default"].create(_options2);
153
+ this.heatmap.setData(data);
154
+ this.createLayer();
155
+ if (!this.initOptions.noLisenerCamera) {
156
+ this.addLisener();
157
+ }
158
+ if (this.initOptions.zoomToLayer && bounds) {
159
+ this.viewer.camera.flyTo({
160
+ destination: _cesium.Rectangle.fromDegrees.apply(_cesium.Rectangle, _toConsumableArray(bounds))
161
+ });
162
+ }
163
+ }
164
+ }
165
+
166
+ // 重写父类的属性访问器
167
+ _createClass(CesiumHeatmap, [{
168
+ key: "show",
169
+ get: function get() {
170
+ return _get(_getPrototypeOf(CesiumHeatmap.prototype), "show", this);
171
+ },
172
+ set: function set(value) {
173
+ this.setVisible(value);
174
+ }
175
+
176
+ // 获取地图
177
+ }, {
178
+ key: "getMap",
179
+ value: function getMap() {
180
+ return this.viewer;
181
+ }
182
+
183
+ // 设置图层显示隐藏
184
+ }, {
185
+ key: "setVisible",
186
+ value: function setVisible(visible) {
187
+ _set(_getPrototypeOf(CesiumHeatmap.prototype), "show", visible, this, true);
188
+ this.provider.show = visible; // 将属性传递给父类
189
+
190
+ var map = this.getMap && this.getMap();
191
+ if (map) {
192
+ map.layers.emit('visible', this, visible);
193
+ }
194
+ }
195
+
196
+ /**
197
+ * 设置数据的最大最小值
198
+ * @param dataOption
199
+ */
200
+ }, {
201
+ key: "updateHeatMapMaxMin",
202
+ value: function updateHeatMapMaxMin(dataOption) {
203
+ var min = dataOption.min,
204
+ max = dataOption.max;
205
+ if (this.heatmap) {
206
+ if (typeof min === 'number') {
207
+ this.heatmap.setDataMin(min);
208
+ if (this.heatmapDataOptions) this.heatmapDataOptions.min = min;
209
+ }
210
+ if (typeof max === 'number') {
211
+ this.heatmap.setDataMax(max);
212
+ if (this.heatmapDataOptions) this.heatmapDataOptions.max = max;
213
+ }
214
+ }
215
+ this.updateLayer();
216
+ }
217
+
218
+ /**
219
+ * 更新热度图配置
220
+ * @param options
221
+ */
222
+ }, {
223
+ key: "updateHeatmap",
224
+ value: function updateHeatmap(options) {
225
+ var heatmapOptions = this.heatmapOptions;
226
+ this.heatmap.configure(_objectSpread(_objectSpread({}, heatmapOptions), options));
227
+ this.updateLayer();
228
+ }
229
+
230
+ /**
231
+ * 更新半径
232
+ * @param radius
233
+ */
234
+ }, {
235
+ key: "updateRadius",
236
+ value: function updateRadius(radius) {
237
+ var _this$initOptions3;
238
+ var heatmapOptions = this.heatmapOptions;
239
+ var currentData = this.heatmap.getData();
240
+ if (currentData !== null && currentData !== void 0 && currentData.data) {
241
+ for (var i in currentData.data) {
242
+ var data = currentData.data[i];
243
+ data.radius = radius;
244
+ }
245
+ }
246
+ this.heatmap.setData(currentData);
247
+ this.heatmapOptions = _objectSpread(_objectSpread({}, heatmapOptions), {
248
+ radius: radius
249
+ });
250
+ this.updateLayer();
251
+ if ((_this$initOptions3 = this.initOptions) !== null && _this$initOptions3 !== void 0 && _this$initOptions3.onRadiusChange) {
252
+ this.initOptions.onRadiusChange(radius);
253
+ }
254
+ }
255
+
256
+ /**
257
+ * 移除
258
+ */
259
+ }, {
260
+ key: "remove",
261
+ value: function remove() {
262
+ if (this.element) {
263
+ document.body.removeChild(this.element);
264
+ this.element = undefined;
265
+ if (this.provider instanceof _cesium.ImageryLayer) {
266
+ if (this.provider) this.viewer.imageryLayers.remove(this.provider);
267
+ this.createSingleTileImageryLayer();
268
+ } else if (this.provider instanceof _cesium.Primitive) {
269
+ this.viewer.scene.primitives.remove(this.provider);
270
+ } else if (this.provider instanceof _cesium.CustomDataSource) {
271
+ this.viewer.dataSources.remove(this.provider);
272
+ } else if (this.provider instanceof _cesium.Entity) {
273
+ this.viewer.entities.remove(this.provider);
274
+ }
275
+ if (this.cameraMoveEnd) {
276
+ this.viewer.camera.moveEnd.removeEventListener(this.cameraMoveEnd);
277
+ this.cameraMoveEnd = undefined;
278
+ }
279
+ }
280
+ }
281
+ }, {
282
+ key: "createLayer",
283
+ value: function createLayer() {
284
+ var _this = this;
285
+ if (this.initOptions.renderType === 'primitive') {
286
+ this.createPrimitive();
287
+ } else if (this.initOptions.renderType === 'imagery') {
288
+ this.createSingleTileImageryLayer();
289
+ } else {
290
+ this.createEntity();
291
+ }
292
+ this.provider.key = this.key;
293
+ this.provider.name = this.name;
294
+ this.provider.show = this.show;
295
+ this.provider.setVisible = function (visible) {
296
+ _this.setVisible(visible);
297
+ };
298
+ }
299
+ }, {
300
+ key: "createPrimitive",
301
+ value: function createPrimitive() {
302
+ var url = this.heatmap.getDataURL();
303
+ this.provider = this.viewer.scene.primitives.add(new _cesium.Primitive({
304
+ geometryInstances: new _cesium.GeometryInstance({
305
+ geometry: new _cesium.RectangleGeometry({
306
+ rectangle: _cesium.Rectangle.fromDegrees.apply(_cesium.Rectangle, _toConsumableArray(this.bounds)),
307
+ vertexFormat: _cesium.EllipsoidSurfaceAppearance.VERTEX_FORMAT
308
+ })
309
+ }),
310
+ appearance: new _cesium.EllipsoidSurfaceAppearance({
311
+ aboveGround: false
312
+ }),
313
+ show: this.show
314
+ }));
315
+ if (this.provider) {
316
+ this.provider.appearance.material = new _cesium.Material({
317
+ fabric: {
318
+ type: 'Image',
319
+ uniforms: {
320
+ image: url
321
+ }
322
+ }
323
+ });
324
+ }
325
+ }
326
+ }, {
327
+ key: "createSingleTileImageryLayer",
328
+ value: function createSingleTileImageryLayer() {
329
+ var url = this.heatmap.getDataURL();
330
+ this.provider = this.viewer.imageryLayers.addImageryProvider(new _cesium.SingleTileImageryProvider({
331
+ url: url,
332
+ rectangle: _cesium.Rectangle.fromDegrees.apply(_cesium.Rectangle, _toConsumableArray(this.bounds))
333
+ }));
334
+ }
335
+ }, {
336
+ key: "getImageMaterialProperty",
337
+ value: function getImageMaterialProperty() {
338
+ var url = this.heatmap.getDataURL();
339
+ var material = new _cesium.ImageMaterialProperty({
340
+ image: url
341
+ });
342
+ return material;
343
+ }
344
+ }, {
345
+ key: "createEntity",
346
+ value: function createEntity() {
347
+ this.provider = new _cesium.CustomDataSource(this.name);
348
+ this.provider.entities.add({
349
+ show: true,
350
+ rectangle: {
351
+ coordinates: _cesium.Rectangle.fromDegrees.apply(_cesium.Rectangle, _toConsumableArray(this.bounds)),
352
+ material: this.getImageMaterialProperty()
353
+ }
354
+ });
355
+ this.viewer.dataSources.add(this.provider);
356
+ }
357
+ }, {
358
+ key: "updateLayer",
359
+ value: function updateLayer() {
360
+ var src = this.heatmap.getDataURL();
361
+ if (this.provider instanceof _cesium.ImageryLayer) {
362
+ if (this.provider) this.viewer.imageryLayers.remove(this.provider);
363
+ this.createSingleTileImageryLayer();
364
+ } else if (this.provider instanceof _cesium.Primitive) {
365
+ this.provider.appearance.material.uniforms.image = src;
366
+ } else if (this.provider instanceof _cesium.Entity) {
367
+ if (this.provider.rectangle) this.provider.rectangle.material = this.getImageMaterialProperty();
368
+ }
369
+ }
370
+
371
+ /**
372
+ * 添加相机的监听
373
+ */
374
+ }, {
375
+ key: "addLisener",
376
+ value: function addLisener() {
377
+ var _this2 = this;
378
+ var maxRadius = 100;
379
+ var min = 6375000;
380
+ var max = 10000000;
381
+ this.cameraMoveEnd = function () {
382
+ if (_this2.heatmapOptions && _this2.heatmap && _this2.heatmapDataOptions) {
383
+ var _this2$initOptions;
384
+ var h = _this2.viewer.camera.getMagnitude();
385
+ var distance = _this2 !== null && _this2 !== void 0 && (_this2$initOptions = _this2.initOptions) !== null && _this2$initOptions !== void 0 && _this2$initOptions.cameraHeightDistance ? _this2.initOptions.cameraHeightDistance : 1000;
386
+ if (Math.abs(h - _this2.lastCameraHeight) > distance) {
387
+ _this2.lastCameraHeight = h;
388
+ if (typeof min === 'number' && typeof max === 'number') {
389
+ var radius = parseInt((_this2.initRadius + (maxRadius - _this2.initRadius) * (h - min) / (max - min)).toFixed(0));
390
+ if (radius) {
391
+ _this2.updateRadius(radius);
392
+ }
393
+ }
394
+ }
395
+ }
396
+ };
397
+ this.viewer.camera.moveEnd.addEventListener(this.cameraMoveEnd);
398
+ }
399
+
400
+ /**
401
+ *
402
+ * @param points
403
+ * @param expand
404
+ * @returns
405
+ */
406
+ }, {
407
+ key: "getBounds",
408
+ value: function getBounds(points) {
409
+ if (points) {
410
+ var lonMin = 180;
411
+ var lonMax = -180;
412
+ var latMin = 90;
413
+ var latMax = -180;
414
+ points.forEach(function (point) {
415
+ var longitude = point.x,
416
+ latitude = point.y;
417
+ lonMin = longitude < lonMin ? longitude : lonMin;
418
+ latMin = latitude < latMin ? latitude : latMin;
419
+ lonMax = longitude > lonMax ? longitude : lonMax;
420
+ latMax = latitude > latMax ? latitude : latMax;
421
+ });
422
+ var xRange = lonMax - lonMin ? lonMax - lonMin : 1;
423
+ var yRange = latMax - latMin ? latMax - latMin : 1;
424
+ return [lonMin - xRange / 10, latMin - yRange / 10, lonMax + xRange / 10, latMax + yRange / 10];
425
+ }
426
+ return [0, 0, 0, 0];
427
+ }
428
+ }, {
429
+ key: "createContainer",
430
+ value: function createContainer(bounds) {
431
+ var container = document.createElement('div');
432
+ var width = 1000;
433
+ var height = parseInt((1000 / (bounds[2] - bounds[0]) * (bounds[3] - bounds[1])).toFixed(0));
434
+ container.setAttribute('style', "width:".concat(width, "px;height:").concat(height, "px;display:none;"));
435
+ document.body.appendChild(container);
436
+ return {
437
+ container: container,
438
+ width: width,
439
+ height: height
440
+ };
441
+ }
442
+ }]);
443
+ return CesiumHeatmap;
444
+ }();
445
+ //# sourceMappingURL=CesiumHeatmap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CesiumHeatmap.js","names":["_cesium","require","_heatmap","_interopRequireDefault","obj","__esModule","_typeof","o","Symbol","iterator","constructor","prototype","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","minLen","_arrayLikeToArray","n","Object","toString","call","slice","name","Array","from","test","iter","isArray","len","length","i","arr2","ownKeys","e","r","t","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","configurable","writable","_toPropertyKey","key","_createClass","protoProps","staticProps","_get","Reflect","get","bind","property","receiver","base","_superPropBase","desc","value","set","_set","isStrict","s","object","hasOwnProperty","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","Number","Max","max","Infinity","Min","min","CesiumHeatmap","exports","viewer","options","_this$initOptions","layerControl","show","initOptions","points","_this$initOptions2","_this$heatmapOptions","bounds","getBounds","_this$createContainer","createContainer","container","width","height","element","datas","values","point","x","y","dataPoint","_min","Math","_max","heatmapDataOptions","_this$initOptions$hea","data","defaultOptions","maxOpacity","minOpacity","gradient","_options","heatmapOptions","radius","initRadius","heatmap","h337","create","setData","createLayer","noLisenerCamera","addLisener","zoomToLayer","camera","flyTo","destination","Rectangle","fromDegrees","setVisible","getMap","visible","provider","map","layers","emit","updateHeatMapMaxMin","dataOption","setDataMin","setDataMax","updateLayer","updateHeatmap","configure","updateRadius","_this$initOptions3","currentData","getData","onRadiusChange","remove","document","body","removeChild","ImageryLayer","imageryLayers","createSingleTileImageryLayer","Primitive","scene","primitives","CustomDataSource","dataSources","Entity","entities","cameraMoveEnd","moveEnd","removeEventListener","_this","renderType","createPrimitive","createEntity","url","getDataURL","add","geometryInstances","GeometryInstance","geometry","RectangleGeometry","rectangle","vertexFormat","EllipsoidSurfaceAppearance","VERTEX_FORMAT","appearance","aboveGround","material","Material","fabric","type","uniforms","image","addImageryProvider","SingleTileImageryProvider","getImageMaterialProperty","ImageMaterialProperty","coordinates","src","_this2","maxRadius","_this2$initOptions","h","getMagnitude","distance","cameraHeightDistance","abs","lastCameraHeight","parseInt","toFixed","addEventListener","lonMin","lonMax","latMin","latMax","longitude","latitude","xRange","yRange","createElement","setAttribute","concat","appendChild"],"sources":["heatmap-layer/CesiumHeatmap.js"],"sourcesContent":["import {\n EllipsoidSurfaceAppearance,\n GeometryInstance,\n Material,\n Primitive,\n Rectangle,\n RectangleGeometry,\n Viewer,\n Event,\n SingleTileImageryProvider,\n ImageryLayer,\n ImageMaterialProperty,\n Entity,\n CustomDataSource,\n} from 'cesium';\nimport h337 from './heatmap.js'; //只能使用2.0.0版本,高版本热度图有出不来的情况,并且2.0.0 npm包有问题,只能通过修改使用这个js\n\nconst Max = arr => {\n let len = arr.length;\n let max = -Infinity;\n\n while (len--) {\n max = arr[len] > max ? arr[len] : max;\n }\n return max;\n};\n\nconst Min = arr => {\n let len = arr.length;\n let min = Infinity;\n\n while (len--) {\n min = arr[len] < min ? arr[len] : min;\n }\n return min;\n};\n\n/**\n * 热度图\n */\nexport class CesiumHeatmap {\n viewer;\n element;\n initOptions;\n heatmapOptions;\n heatmapDataOptions;\n provider;\n heatmap;\n cameraMoveEnd;\n bounds = [0, 0, 0, 0];\n lastCameraHeight = 0;\n initRadius = 10;\n constructor(viewer, options) {\n this.viewer = viewer;\n const { key, name, layerControl, show } = options;\n this.initOptions = { ...options };\n // 图层标识\n this.key = key;\n\n // 图层名称\n this.name = name;\n this.layerControl = layerControl;\n super.show = show;\n if (this.initOptions?.points?.length) {\n const bounds = this.getBounds(this.initOptions.points);\n this.bounds = bounds;\n const { container, width, height } = this.createContainer(bounds);\n this.element = container;\n const datas = [];\n const values = [];\n for (let i in this.initOptions.points) {\n const point = this.initOptions.points[i];\n const x = ((point.x - bounds[0]) / (bounds[2] - bounds[0])) * width; //屏幕坐标x\n const y = ((bounds[3] - point.y) / (bounds[3] - bounds[1])) * height; //屏幕坐标y\n const dataPoint = {\n x: x,\n y: y,\n value: point.value,\n };\n if (typeof point.value === 'number') values.push(point.value);\n datas.push(dataPoint);\n }\n\n //数据的最大值和最小值\n let _min = values.length > 100000 ? Min(values) : Math.min(...values);\n let _max = values.length > 100000 ? Max(values) : Math.max(...values);\n if (this.initOptions?.heatmapDataOptions) {\n const { min, max } = this.initOptions.heatmapDataOptions;\n if (typeof min === 'number') {\n _min = min;\n }\n if (typeof max === 'number') {\n _max = max;\n }\n }\n this.heatmapDataOptions = { min: _min, max: _max };\n\n const data = {\n max: _max,\n min: _min,\n data: datas,\n };\n\n const defaultOptions = {\n maxOpacity: 0.9,\n // radius: minRadius,\n // minimum opacity. any value > 0 will produce\n // no transparent gradient transition\n minOpacity: 0.1,\n gradient: {\n // enter n keys between 0 and 1 here\n // for gradient color customization\n '.3': 'blue',\n '.5': 'green',\n '.7': 'yellow',\n '.95': 'red',\n },\n };\n const _options = this.initOptions.heatmapOptions\n ? { ...defaultOptions, ...this.initOptions.heatmapOptions }\n : defaultOptions;\n\n //初始化半径\n if (this.heatmapOptions?.radius) {\n this.initRadius = this.heatmapOptions.radius;\n }\n\n this.heatmapOptions = { ..._options };\n const options = {\n ..._options,\n container,\n };\n this.heatmap = h337.create(options);\n this.heatmap.setData(data);\n this.createLayer();\n\n if (!this.initOptions.noLisenerCamera) {\n this.addLisener();\n }\n\n if (this.initOptions.zoomToLayer && bounds) {\n this.viewer.camera.flyTo({\n destination: Rectangle.fromDegrees(...bounds),\n });\n }\n }\n }\n\n // 重写父类的属性访问器\n get show() {\n return super.show;\n }\n\n set show(value) {\n this.setVisible(value);\n }\n\n // 获取地图\n getMap() {\n return this.viewer;\n }\n\n // 设置图层显示隐藏\n setVisible(visible) {\n super.show = visible;\n this.provider.show = visible; // 将属性传递给父类\n\n const map = this.getMap && this.getMap();\n if (map) {\n map.layers.emit('visible', this, visible);\n }\n }\n\n /**\n * 设置数据的最大最小值\n * @param dataOption\n */\n updateHeatMapMaxMin(dataOption) {\n const { min, max } = dataOption;\n if (this.heatmap) {\n if (typeof min === 'number') {\n this.heatmap.setDataMin(min);\n if (this.heatmapDataOptions) this.heatmapDataOptions.min = min;\n }\n if (typeof max === 'number') {\n this.heatmap.setDataMax(max);\n if (this.heatmapDataOptions) this.heatmapDataOptions.max = max;\n }\n }\n this.updateLayer();\n }\n\n /**\n * 更新热度图配置\n * @param options\n */\n updateHeatmap(options) {\n const { heatmapOptions } = this;\n this.heatmap.configure({ ...heatmapOptions, ...options });\n this.updateLayer();\n }\n\n /**\n * 更新半径\n * @param radius\n */\n updateRadius(radius) {\n const { heatmapOptions } = this;\n const currentData = this.heatmap.getData();\n if (currentData?.data) {\n for (let i in currentData.data) {\n const data = currentData.data[i];\n data.radius = radius;\n }\n }\n this.heatmap.setData(currentData);\n this.heatmapOptions = { ...heatmapOptions, ...{ radius } };\n this.updateLayer();\n if (this.initOptions?.onRadiusChange) {\n this.initOptions.onRadiusChange(radius);\n }\n }\n\n /**\n * 移除\n */\n remove() {\n if (this.element) {\n document.body.removeChild(this.element);\n this.element = undefined;\n if (this.provider instanceof ImageryLayer) {\n if (this.provider) this.viewer.imageryLayers.remove(this.provider);\n this.createSingleTileImageryLayer();\n } else if (this.provider instanceof Primitive) {\n this.viewer.scene.primitives.remove(this.provider);\n } else if (this.provider instanceof CustomDataSource) {\n this.viewer.dataSources.remove(this.provider)\n } else if (this.provider instanceof Entity) {\n this.viewer.entities.remove(this.provider);\n }\n if (this.cameraMoveEnd) {\n this.viewer.camera.moveEnd.removeEventListener(this.cameraMoveEnd);\n this.cameraMoveEnd = undefined;\n }\n }\n }\n\n createLayer() {\n if (this.initOptions.renderType === 'primitive') {\n this.createPrimitive();\n } else if (this.initOptions.renderType === 'imagery') {\n this.createSingleTileImageryLayer();\n } else {\n this.createEntity();\n }\n this.provider.key = this.key;\n\n this.provider.name = this.name;\n this.provider.show = this.show;\n this.provider.setVisible = visible => {\n this.setVisible(visible);\n };\n }\n\n createPrimitive() {\n const url = this.heatmap.getDataURL();\n this.provider = this.viewer.scene.primitives.add(\n new Primitive({\n geometryInstances: new GeometryInstance({\n geometry: new RectangleGeometry({\n rectangle: Rectangle.fromDegrees(...this.bounds),\n vertexFormat: EllipsoidSurfaceAppearance.VERTEX_FORMAT,\n }),\n }),\n appearance: new EllipsoidSurfaceAppearance({\n aboveGround: false,\n }),\n show: this.show,\n }),\n );\n if (this.provider) {\n this.provider.appearance.material = new Material({\n fabric: {\n type: 'Image',\n uniforms: {\n image: url,\n },\n },\n });\n }\n }\n\n createSingleTileImageryLayer() {\n const url = this.heatmap.getDataURL();\n this.provider = this.viewer.imageryLayers.addImageryProvider(\n new SingleTileImageryProvider({\n url: url,\n rectangle: Rectangle.fromDegrees(...this.bounds),\n }),\n );\n }\n\n getImageMaterialProperty() {\n const url = this.heatmap.getDataURL();\n const material = new ImageMaterialProperty({\n image: url,\n });\n return material;\n }\n\n createEntity() {\n this.provider = new CustomDataSource(this.name);\n this.provider.entities.add({\n show: true,\n rectangle: {\n coordinates: Rectangle.fromDegrees(...this.bounds),\n material: this.getImageMaterialProperty(),\n },\n });\n this.viewer.dataSources.add(this.provider);\n }\n\n updateLayer() {\n const src = this.heatmap.getDataURL();\n if (this.provider instanceof ImageryLayer) {\n if (this.provider) this.viewer.imageryLayers.remove(this.provider);\n this.createSingleTileImageryLayer();\n } else if (this.provider instanceof Primitive) {\n this.provider.appearance.material.uniforms.image = src;\n } else if (this.provider instanceof Entity) {\n if (this.provider.rectangle)\n this.provider.rectangle.material = this.getImageMaterialProperty();\n }\n }\n\n /**\n * 添加相机的监听\n */\n addLisener() {\n const maxRadius = 100;\n const min = 6375000;\n const max = 10000000;\n this.cameraMoveEnd = () => {\n if (this.heatmapOptions && this.heatmap && this.heatmapDataOptions) {\n const h = this.viewer.camera.getMagnitude();\n const distance = this?.initOptions?.cameraHeightDistance\n ? this.initOptions.cameraHeightDistance\n : 1000;\n if (Math.abs(h - this.lastCameraHeight) > distance) {\n this.lastCameraHeight = h;\n if (typeof min === 'number' && typeof max === 'number') {\n const radius = parseInt(\n (\n this.initRadius +\n ((maxRadius - this.initRadius) * (h - min)) / (max - min)\n ).toFixed(0),\n );\n if (radius) {\n this.updateRadius(radius);\n }\n }\n }\n }\n };\n this.viewer.camera.moveEnd.addEventListener(this.cameraMoveEnd);\n }\n\n /**\n *\n * @param points\n * @param expand\n * @returns\n */\n getBounds(points) {\n if (points) {\n let lonMin = 180;\n let lonMax = -180;\n let latMin = 90;\n let latMax = -180;\n points.forEach(function(point) {\n const { x: longitude, y: latitude } = point;\n lonMin = longitude < lonMin ? longitude : lonMin;\n latMin = latitude < latMin ? latitude : latMin;\n lonMax = longitude > lonMax ? longitude : lonMax;\n latMax = latitude > latMax ? latitude : latMax;\n });\n const xRange = lonMax - lonMin ? lonMax - lonMin : 1;\n const yRange = latMax - latMin ? latMax - latMin : 1;\n return [\n lonMin - xRange / 10,\n latMin - yRange / 10,\n lonMax + xRange / 10,\n latMax + yRange / 10,\n ];\n }\n return [0, 0, 0, 0];\n }\n\n createContainer(bounds) {\n const container = document.createElement('div');\n const width = 1000;\n const height = parseInt(\n ((1000 / (bounds[2] - bounds[0])) * (bounds[3] - bounds[1])).toFixed(0),\n );\n container.setAttribute('style', `width:${width}px;height:${height}px;display:none;`);\n document.body.appendChild(container);\n return { container, width, height };\n }\n}\n"],"mappings":"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"}