@cn-map/gaode-svelte 0.0.0-stage → 0.0.1

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 (407) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +286 -2
  3. package/dist/api-loader/api-loader.svelte +13 -0
  4. package/dist/api-loader/api-loader.svelte.d.ts +4 -0
  5. package/dist/api-loader/context.svelte.d.ts +12 -0
  6. package/dist/api-loader/context.svelte.js +9 -0
  7. package/dist/api-loader/index.d.ts +5 -0
  8. package/dist/api-loader/index.js +4 -0
  9. package/dist/api-loader/types.d.ts +15 -0
  10. package/dist/api-loader/types.js +1 -0
  11. package/dist/api-loader/use-api-loader.svelte.d.ts +13 -0
  12. package/dist/api-loader/use-api-loader.svelte.js +32 -0
  13. package/dist/control/control/control.svelte.d.ts +12 -0
  14. package/dist/control/control/control.svelte.js +14 -0
  15. package/dist/control/control/index.d.ts +2 -0
  16. package/dist/control/control/index.js +1 -0
  17. package/dist/control/control-bar/control-bar.svelte +50 -0
  18. package/dist/control/control-bar/control-bar.svelte.d.ts +9 -0
  19. package/dist/control/control-bar/index.d.ts +2 -0
  20. package/dist/control/control-bar/index.js +1 -0
  21. package/dist/control/geolocation/geolocation.svelte +51 -0
  22. package/dist/control/geolocation/geolocation.svelte.d.ts +9 -0
  23. package/dist/control/geolocation/index.d.ts +2 -0
  24. package/dist/control/geolocation/index.js +1 -0
  25. package/dist/control/hawk-eye/hawk-eye.svelte +50 -0
  26. package/dist/control/hawk-eye/hawk-eye.svelte.d.ts +9 -0
  27. package/dist/control/hawk-eye/index.d.ts +2 -0
  28. package/dist/control/hawk-eye/index.js +1 -0
  29. package/dist/control/index.d.ts +6 -0
  30. package/dist/control/index.js +6 -0
  31. package/dist/control/map-type/index.d.ts +2 -0
  32. package/dist/control/map-type/index.js +1 -0
  33. package/dist/control/map-type/map-type.svelte +54 -0
  34. package/dist/control/map-type/map-type.svelte.d.ts +9 -0
  35. package/dist/control/scale/index.d.ts +2 -0
  36. package/dist/control/scale/index.js +1 -0
  37. package/dist/control/scale/scale.svelte +50 -0
  38. package/dist/control/scale/scale.svelte.d.ts +9 -0
  39. package/dist/control/tool-bar/index.d.ts +2 -0
  40. package/dist/control/tool-bar/index.js +1 -0
  41. package/dist/control/tool-bar/tool-bar.svelte +50 -0
  42. package/dist/control/tool-bar/tool-bar.svelte.d.ts +9 -0
  43. package/dist/hooks/create-event-listeners.svelte.d.ts +2 -0
  44. package/dist/hooks/create-event-listeners.svelte.js +26 -0
  45. package/dist/hooks/index.d.ts +1 -0
  46. package/dist/hooks/index.js +1 -0
  47. package/dist/index.d.ts +7 -0
  48. package/dist/index.js +7 -0
  49. package/dist/layer/buildings/buildings.svelte +62 -0
  50. package/dist/layer/buildings/buildings.svelte.d.ts +14 -0
  51. package/dist/layer/buildings/index.d.ts +2 -0
  52. package/dist/layer/buildings/index.js +1 -0
  53. package/dist/layer/canvas-layer/canvas-layer.svelte +60 -0
  54. package/dist/layer/canvas-layer/canvas-layer.svelte.d.ts +8 -0
  55. package/dist/layer/canvas-layer/index.d.ts +2 -0
  56. package/dist/layer/canvas-layer/index.js +1 -0
  57. package/dist/layer/custom-layer/custom-layer.svelte +79 -0
  58. package/dist/layer/custom-layer/custom-layer.svelte.d.ts +14 -0
  59. package/dist/layer/custom-layer/index.d.ts +2 -0
  60. package/dist/layer/custom-layer/index.js +1 -0
  61. package/dist/layer/district-layer/country/country.svelte +57 -0
  62. package/dist/layer/district-layer/country/country.svelte.d.ts +8 -0
  63. package/dist/layer/district-layer/country/index.d.ts +2 -0
  64. package/dist/layer/district-layer/country/index.js +1 -0
  65. package/dist/layer/district-layer/district-layer/district-layer.svelte +70 -0
  66. package/dist/layer/district-layer/district-layer/district-layer.svelte.d.ts +8 -0
  67. package/dist/layer/district-layer/district-layer/index.d.ts +2 -0
  68. package/dist/layer/district-layer/district-layer/index.js +1 -0
  69. package/dist/layer/district-layer/district-layer/use-attributes.svelte.d.ts +4 -0
  70. package/dist/layer/district-layer/district-layer/use-attributes.svelte.js +20 -0
  71. package/dist/layer/district-layer/index.d.ts +4 -0
  72. package/dist/layer/district-layer/index.js +4 -0
  73. package/dist/layer/district-layer/province/index.d.ts +2 -0
  74. package/dist/layer/district-layer/province/index.js +1 -0
  75. package/dist/layer/district-layer/province/province.svelte +57 -0
  76. package/dist/layer/district-layer/province/province.svelte.d.ts +8 -0
  77. package/dist/layer/district-layer/world/index.d.ts +2 -0
  78. package/dist/layer/district-layer/world/index.js +1 -0
  79. package/dist/layer/district-layer/world/world.svelte +54 -0
  80. package/dist/layer/district-layer/world/world.svelte.d.ts +8 -0
  81. package/dist/layer/gl-custom-layer/gl-custom-layer.svelte +65 -0
  82. package/dist/layer/gl-custom-layer/gl-custom-layer.svelte.d.ts +11 -0
  83. package/dist/layer/gl-custom-layer/index.d.ts +2 -0
  84. package/dist/layer/gl-custom-layer/index.js +1 -0
  85. package/dist/layer/heat-map/heat-map.svelte +65 -0
  86. package/dist/layer/heat-map/heat-map.svelte.d.ts +11 -0
  87. package/dist/layer/heat-map/index.d.ts +2 -0
  88. package/dist/layer/heat-map/index.js +1 -0
  89. package/dist/layer/image-layer/image-layer.svelte +64 -0
  90. package/dist/layer/image-layer/image-layer.svelte.d.ts +8 -0
  91. package/dist/layer/image-layer/index.d.ts +2 -0
  92. package/dist/layer/image-layer/index.js +1 -0
  93. package/dist/layer/index.d.ts +14 -0
  94. package/dist/layer/index.js +14 -0
  95. package/dist/layer/indoor-map/index.d.ts +2 -0
  96. package/dist/layer/indoor-map/index.js +1 -0
  97. package/dist/layer/indoor-map/indoor-map.svelte +104 -0
  98. package/dist/layer/indoor-map/indoor-map.svelte.d.ts +18 -0
  99. package/dist/layer/labels-layer/context.d.ts +9 -0
  100. package/dist/layer/labels-layer/context.js +15 -0
  101. package/dist/layer/labels-layer/index.d.ts +3 -0
  102. package/dist/layer/labels-layer/index.js +2 -0
  103. package/dist/layer/labels-layer/labels-layer.svelte +91 -0
  104. package/dist/layer/labels-layer/labels-layer.svelte.d.ts +38 -0
  105. package/dist/layer/layer/index.d.ts +2 -0
  106. package/dist/layer/layer/index.js +1 -0
  107. package/dist/layer/layer/layer.svelte.d.ts +6 -0
  108. package/dist/layer/layer/layer.svelte.js +29 -0
  109. package/dist/layer/layer-group/index.d.ts +2 -0
  110. package/dist/layer/layer-group/index.js +1 -0
  111. package/dist/layer/layer-group/layer-group.svelte +141 -0
  112. package/dist/layer/layer-group/layer-group.svelte.d.ts +14 -0
  113. package/dist/layer/mapbox/index.d.ts +2 -0
  114. package/dist/layer/mapbox/index.js +1 -0
  115. package/dist/layer/mapbox/mapbox.svelte +53 -0
  116. package/dist/layer/mapbox/mapbox.svelte.d.ts +11 -0
  117. package/dist/layer/mapbox-vector-tile-layer/index.d.ts +2 -0
  118. package/dist/layer/mapbox-vector-tile-layer/index.js +1 -0
  119. package/dist/layer/mapbox-vector-tile-layer/mapbox-vector-tile-layer.svelte +68 -0
  120. package/dist/layer/mapbox-vector-tile-layer/mapbox-vector-tile-layer.svelte.d.ts +8 -0
  121. package/dist/layer/tile-layer/flexible/flexible.svelte +55 -0
  122. package/dist/layer/tile-layer/flexible/flexible.svelte.d.ts +8 -0
  123. package/dist/layer/tile-layer/flexible/index.d.ts +2 -0
  124. package/dist/layer/tile-layer/flexible/index.js +1 -0
  125. package/dist/layer/tile-layer/index.d.ts +8 -0
  126. package/dist/layer/tile-layer/index.js +8 -0
  127. package/dist/layer/tile-layer/mark/index.d.ts +2 -0
  128. package/dist/layer/tile-layer/mark/index.js +1 -0
  129. package/dist/layer/tile-layer/mark/mark.svelte +54 -0
  130. package/dist/layer/tile-layer/mark/mark.svelte.d.ts +8 -0
  131. package/dist/layer/tile-layer/road-net/index.d.ts +2 -0
  132. package/dist/layer/tile-layer/road-net/index.js +1 -0
  133. package/dist/layer/tile-layer/road-net/road-net.svelte +54 -0
  134. package/dist/layer/tile-layer/road-net/road-net.svelte.d.ts +8 -0
  135. package/dist/layer/tile-layer/satellite/index.d.ts +2 -0
  136. package/dist/layer/tile-layer/satellite/index.js +1 -0
  137. package/dist/layer/tile-layer/satellite/satellite.svelte +58 -0
  138. package/dist/layer/tile-layer/satellite/satellite.svelte.d.ts +8 -0
  139. package/dist/layer/tile-layer/tile-layer/index.d.ts +2 -0
  140. package/dist/layer/tile-layer/tile-layer/index.js +1 -0
  141. package/dist/layer/tile-layer/tile-layer/tile-layer.svelte +53 -0
  142. package/dist/layer/tile-layer/tile-layer/tile-layer.svelte.d.ts +8 -0
  143. package/dist/layer/tile-layer/tile-layer/use-attributes.svelte.d.ts +4 -0
  144. package/dist/layer/tile-layer/tile-layer/use-attributes.svelte.js +10 -0
  145. package/dist/layer/tile-layer/traffic/index.d.ts +2 -0
  146. package/dist/layer/tile-layer/traffic/index.js +1 -0
  147. package/dist/layer/tile-layer/traffic/traffic.svelte +52 -0
  148. package/dist/layer/tile-layer/traffic/traffic.svelte.d.ts +8 -0
  149. package/dist/layer/tile-layer/wms/index.d.ts +2 -0
  150. package/dist/layer/tile-layer/wms/index.js +1 -0
  151. package/dist/layer/tile-layer/wms/wms.svelte +66 -0
  152. package/dist/layer/tile-layer/wms/wms.svelte.d.ts +8 -0
  153. package/dist/layer/tile-layer/wmts/index.d.ts +2 -0
  154. package/dist/layer/tile-layer/wmts/index.js +1 -0
  155. package/dist/layer/tile-layer/wmts/wmts.svelte +66 -0
  156. package/dist/layer/tile-layer/wmts/wmts.svelte.d.ts +8 -0
  157. package/dist/layer/vector-layer/context.d.ts +9 -0
  158. package/dist/layer/vector-layer/context.js +15 -0
  159. package/dist/layer/vector-layer/index.d.ts +3 -0
  160. package/dist/layer/vector-layer/index.js +2 -0
  161. package/dist/layer/vector-layer/vector-layer.svelte +51 -0
  162. package/dist/layer/vector-layer/vector-layer.svelte.d.ts +30 -0
  163. package/dist/loca/index.d.ts +5 -0
  164. package/dist/loca/index.js +5 -0
  165. package/dist/loca/layer/grid-layer/grid-layer.svelte +62 -0
  166. package/dist/loca/layer/grid-layer/grid-layer.svelte.d.ts +36 -0
  167. package/dist/loca/layer/grid-layer/index.d.ts +2 -0
  168. package/dist/loca/layer/grid-layer/index.js +1 -0
  169. package/dist/loca/layer/heat-map-layer/heat-map-layer.svelte +62 -0
  170. package/dist/loca/layer/heat-map-layer/heat-map-layer.svelte.d.ts +36 -0
  171. package/dist/loca/layer/heat-map-layer/index.d.ts +2 -0
  172. package/dist/loca/layer/heat-map-layer/index.js +1 -0
  173. package/dist/loca/layer/hexagon-layer/hexagon-layer.svelte +62 -0
  174. package/dist/loca/layer/hexagon-layer/hexagon-layer.svelte.d.ts +36 -0
  175. package/dist/loca/layer/hexagon-layer/index.d.ts +2 -0
  176. package/dist/loca/layer/hexagon-layer/index.js +1 -0
  177. package/dist/loca/layer/icon-layer/icon-layer.svelte +62 -0
  178. package/dist/loca/layer/icon-layer/icon-layer.svelte.d.ts +36 -0
  179. package/dist/loca/layer/icon-layer/index.d.ts +2 -0
  180. package/dist/loca/layer/icon-layer/index.js +1 -0
  181. package/dist/loca/layer/index.d.ts +15 -0
  182. package/dist/loca/layer/index.js +15 -0
  183. package/dist/loca/layer/labels-layer/index.d.ts +2 -0
  184. package/dist/loca/layer/labels-layer/index.js +1 -0
  185. package/dist/loca/layer/labels-layer/labels-layer.svelte +74 -0
  186. package/dist/loca/layer/labels-layer/labels-layer.svelte.d.ts +36 -0
  187. package/dist/loca/layer/laser-layer/index.d.ts +2 -0
  188. package/dist/loca/layer/laser-layer/index.js +1 -0
  189. package/dist/loca/layer/laser-layer/laser-layer.svelte +62 -0
  190. package/dist/loca/layer/laser-layer/laser-layer.svelte.d.ts +36 -0
  191. package/dist/loca/layer/layer/index.d.ts +2 -0
  192. package/dist/loca/layer/layer/index.js +1 -0
  193. package/dist/loca/layer/layer/layer.svelte.d.ts +36 -0
  194. package/dist/loca/layer/layer/layer.svelte.js +42 -0
  195. package/dist/loca/layer/line-layer/index.d.ts +2 -0
  196. package/dist/loca/layer/line-layer/index.js +1 -0
  197. package/dist/loca/layer/line-layer/line-layer.svelte +62 -0
  198. package/dist/loca/layer/line-layer/line-layer.svelte.d.ts +36 -0
  199. package/dist/loca/layer/link-layer/index.d.ts +2 -0
  200. package/dist/loca/layer/link-layer/index.js +1 -0
  201. package/dist/loca/layer/link-layer/link-layer.svelte +62 -0
  202. package/dist/loca/layer/link-layer/link-layer.svelte.d.ts +36 -0
  203. package/dist/loca/layer/point-layer/index.d.ts +2 -0
  204. package/dist/loca/layer/point-layer/index.js +1 -0
  205. package/dist/loca/layer/point-layer/point-layer.svelte +62 -0
  206. package/dist/loca/layer/point-layer/point-layer.svelte.d.ts +36 -0
  207. package/dist/loca/layer/polygon-layer/index.d.ts +2 -0
  208. package/dist/loca/layer/polygon-layer/index.js +1 -0
  209. package/dist/loca/layer/polygon-layer/polygon-layer.svelte +62 -0
  210. package/dist/loca/layer/polygon-layer/polygon-layer.svelte.d.ts +36 -0
  211. package/dist/loca/layer/prism-layer/index.d.ts +2 -0
  212. package/dist/loca/layer/prism-layer/index.js +1 -0
  213. package/dist/loca/layer/prism-layer/prism-layer.svelte +62 -0
  214. package/dist/loca/layer/prism-layer/prism-layer.svelte.d.ts +36 -0
  215. package/dist/loca/layer/pulse-line-layer/index.d.ts +2 -0
  216. package/dist/loca/layer/pulse-line-layer/index.js +1 -0
  217. package/dist/loca/layer/pulse-line-layer/pulse-line-layer.svelte +65 -0
  218. package/dist/loca/layer/pulse-line-layer/pulse-line-layer.svelte.d.ts +36 -0
  219. package/dist/loca/layer/pulse-link-layer/index.d.ts +2 -0
  220. package/dist/loca/layer/pulse-link-layer/index.js +1 -0
  221. package/dist/loca/layer/pulse-link-layer/pulse-link-layer.svelte +65 -0
  222. package/dist/loca/layer/pulse-link-layer/pulse-link-layer.svelte.d.ts +36 -0
  223. package/dist/loca/layer/scatter-layer/index.d.ts +2 -0
  224. package/dist/loca/layer/scatter-layer/index.js +1 -0
  225. package/dist/loca/layer/scatter-layer/scatter-layer.svelte +62 -0
  226. package/dist/loca/layer/scatter-layer/scatter-layer.svelte.d.ts +36 -0
  227. package/dist/loca/layer/z-marker-layer/index.d.ts +2 -0
  228. package/dist/loca/layer/z-marker-layer/index.js +1 -0
  229. package/dist/loca/layer/z-marker-layer/z-marker-layer.svelte +62 -0
  230. package/dist/loca/layer/z-marker-layer/z-marker-layer.svelte.d.ts +36 -0
  231. package/dist/loca/legend/index.d.ts +2 -0
  232. package/dist/loca/legend/index.js +1 -0
  233. package/dist/loca/legend/legend.svelte +36 -0
  234. package/dist/loca/legend/legend.svelte.d.ts +5 -0
  235. package/dist/loca/light/ambient-light/ambient-light.svelte +41 -0
  236. package/dist/loca/light/ambient-light/ambient-light.svelte.d.ts +6 -0
  237. package/dist/loca/light/ambient-light/index.d.ts +2 -0
  238. package/dist/loca/light/ambient-light/index.js +1 -0
  239. package/dist/loca/light/directional-light/directional-light.svelte +49 -0
  240. package/dist/loca/light/directional-light/directional-light.svelte.d.ts +6 -0
  241. package/dist/loca/light/directional-light/index.d.ts +2 -0
  242. package/dist/loca/light/directional-light/index.js +1 -0
  243. package/dist/loca/light/index.d.ts +3 -0
  244. package/dist/loca/light/index.js +3 -0
  245. package/dist/loca/light/light/index.d.ts +1 -0
  246. package/dist/loca/light/light/index.js +1 -0
  247. package/dist/loca/light/light/types.d.ts +3 -0
  248. package/dist/loca/light/light/types.js +1 -0
  249. package/dist/loca/light/point-light/index.d.ts +2 -0
  250. package/dist/loca/light/point-light/index.js +1 -0
  251. package/dist/loca/light/point-light/point-light.svelte +49 -0
  252. package/dist/loca/light/point-light/point-light.svelte.d.ts +6 -0
  253. package/dist/loca/loca/context.d.ts +9 -0
  254. package/dist/loca/loca/context.js +15 -0
  255. package/dist/loca/loca/index.d.ts +3 -0
  256. package/dist/loca/loca/index.js +2 -0
  257. package/dist/loca/loca/loca.svelte +49 -0
  258. package/dist/loca/loca/loca.svelte.d.ts +8 -0
  259. package/dist/loca/source/data-source/context.d.ts +9 -0
  260. package/dist/loca/source/data-source/context.js +15 -0
  261. package/dist/loca/source/data-source/data-source.svelte.d.ts +22 -0
  262. package/dist/loca/source/data-source/data-source.svelte.js +73 -0
  263. package/dist/loca/source/data-source/index.d.ts +3 -0
  264. package/dist/loca/source/data-source/index.js +2 -0
  265. package/dist/loca/source/geo-buffer-source/geo-buffer-source.svelte +56 -0
  266. package/dist/loca/source/geo-buffer-source/geo-buffer-source.svelte.d.ts +10 -0
  267. package/dist/loca/source/geo-buffer-source/index.d.ts +2 -0
  268. package/dist/loca/source/geo-buffer-source/index.js +1 -0
  269. package/dist/loca/source/geo-json-source/geo-json-source.svelte +56 -0
  270. package/dist/loca/source/geo-json-source/geo-json-source.svelte.d.ts +10 -0
  271. package/dist/loca/source/geo-json-source/index.d.ts +2 -0
  272. package/dist/loca/source/geo-json-source/index.js +1 -0
  273. package/dist/loca/source/index.d.ts +3 -0
  274. package/dist/loca/source/index.js +3 -0
  275. package/dist/map/context.d.ts +9 -0
  276. package/dist/map/context.js +15 -0
  277. package/dist/map/index.d.ts +3 -0
  278. package/dist/map/index.js +2 -0
  279. package/dist/map/map.svelte +323 -0
  280. package/dist/map/map.svelte.d.ts +26 -0
  281. package/dist/overlay/bezier-curve/bezier-curve.svelte +79 -0
  282. package/dist/overlay/bezier-curve/bezier-curve.svelte.d.ts +30 -0
  283. package/dist/overlay/bezier-curve/index.d.ts +2 -0
  284. package/dist/overlay/bezier-curve/index.js +1 -0
  285. package/dist/overlay/circle/circle.svelte +84 -0
  286. package/dist/overlay/circle/circle.svelte.d.ts +30 -0
  287. package/dist/overlay/circle/index.d.ts +2 -0
  288. package/dist/overlay/circle/index.js +1 -0
  289. package/dist/overlay/circle-marker/circle-marker.svelte +85 -0
  290. package/dist/overlay/circle-marker/circle-marker.svelte.d.ts +30 -0
  291. package/dist/overlay/circle-marker/index.d.ts +2 -0
  292. package/dist/overlay/circle-marker/index.js +1 -0
  293. package/dist/overlay/context-menu/context-menu.svelte +61 -0
  294. package/dist/overlay/context-menu/context-menu.svelte.d.ts +11 -0
  295. package/dist/overlay/context-menu/index.d.ts +2 -0
  296. package/dist/overlay/context-menu/index.js +1 -0
  297. package/dist/overlay/dom-overlay/custom-content.svelte +38 -0
  298. package/dist/overlay/dom-overlay/custom-content.svelte.d.ts +28 -0
  299. package/dist/overlay/dom-overlay/dom-overlay.svelte.d.ts +6 -0
  300. package/dist/overlay/dom-overlay/dom-overlay.svelte.js +68 -0
  301. package/dist/overlay/dom-overlay/index.d.ts +4 -0
  302. package/dist/overlay/dom-overlay/index.js +3 -0
  303. package/dist/overlay/dom-overlay/portal-consumer.svelte +9 -0
  304. package/dist/overlay/dom-overlay/portal-consumer.svelte.d.ts +7 -0
  305. package/dist/overlay/dom-overlay/portal.svelte +27 -0
  306. package/dist/overlay/dom-overlay/portal.svelte.d.ts +8 -0
  307. package/dist/overlay/elastic-marker/elastic-marker.svelte +69 -0
  308. package/dist/overlay/elastic-marker/elastic-marker.svelte.d.ts +30 -0
  309. package/dist/overlay/elastic-marker/index.d.ts +2 -0
  310. package/dist/overlay/elastic-marker/index.js +1 -0
  311. package/dist/overlay/ellipse/ellipse.svelte +85 -0
  312. package/dist/overlay/ellipse/ellipse.svelte.d.ts +30 -0
  313. package/dist/overlay/ellipse/index.d.ts +2 -0
  314. package/dist/overlay/ellipse/index.js +1 -0
  315. package/dist/overlay/index-cluster/index-cluster.svelte +135 -0
  316. package/dist/overlay/index-cluster/index-cluster.svelte.d.ts +18 -0
  317. package/dist/overlay/index-cluster/index.d.ts +2 -0
  318. package/dist/overlay/index-cluster/index.js +1 -0
  319. package/dist/overlay/index.d.ts +17 -0
  320. package/dist/overlay/index.js +17 -0
  321. package/dist/overlay/info-window/index.d.ts +2 -0
  322. package/dist/overlay/info-window/index.js +1 -0
  323. package/dist/overlay/info-window/info-window.svelte +88 -0
  324. package/dist/overlay/info-window/info-window.svelte.d.ts +11 -0
  325. package/dist/overlay/label-marker/index.d.ts +2 -0
  326. package/dist/overlay/label-marker/index.js +1 -0
  327. package/dist/overlay/label-marker/label-marker.svelte +149 -0
  328. package/dist/overlay/label-marker/label-marker.svelte.d.ts +35 -0
  329. package/dist/overlay/marker/index.d.ts +2 -0
  330. package/dist/overlay/marker/index.js +1 -0
  331. package/dist/overlay/marker/marker.svelte +67 -0
  332. package/dist/overlay/marker/marker.svelte.d.ts +33 -0
  333. package/dist/overlay/marker/use-attributes.svelte.d.ts +13 -0
  334. package/dist/overlay/marker/use-attributes.svelte.js +58 -0
  335. package/dist/overlay/marker-cluster/index.d.ts +2 -0
  336. package/dist/overlay/marker-cluster/index.js +1 -0
  337. package/dist/overlay/marker-cluster/marker-cluster.svelte +134 -0
  338. package/dist/overlay/marker-cluster/marker-cluster.svelte.d.ts +18 -0
  339. package/dist/overlay/mass-marks/index.d.ts +2 -0
  340. package/dist/overlay/mass-marks/index.js +1 -0
  341. package/dist/overlay/mass-marks/mass-marks.svelte +110 -0
  342. package/dist/overlay/mass-marks/mass-marks.svelte.d.ts +18 -0
  343. package/dist/overlay/overlay-group/index.d.ts +2 -0
  344. package/dist/overlay/overlay-group/index.js +1 -0
  345. package/dist/overlay/overlay-group/overlay-group.svelte +146 -0
  346. package/dist/overlay/overlay-group/overlay-group.svelte.d.ts +35 -0
  347. package/dist/overlay/polygon/index.d.ts +2 -0
  348. package/dist/overlay/polygon/index.js +1 -0
  349. package/dist/overlay/polygon/polygon.svelte +83 -0
  350. package/dist/overlay/polygon/polygon.svelte.d.ts +30 -0
  351. package/dist/overlay/polyline/index.d.ts +2 -0
  352. package/dist/overlay/polyline/index.js +1 -0
  353. package/dist/overlay/polyline/polyline.svelte +77 -0
  354. package/dist/overlay/polyline/polyline.svelte.d.ts +30 -0
  355. package/dist/overlay/rectangle/index.d.ts +2 -0
  356. package/dist/overlay/rectangle/index.js +1 -0
  357. package/dist/overlay/rectangle/rectangle.svelte +77 -0
  358. package/dist/overlay/rectangle/rectangle.svelte.d.ts +30 -0
  359. package/dist/overlay/text/index.d.ts +2 -0
  360. package/dist/overlay/text/index.js +1 -0
  361. package/dist/overlay/text/text.svelte +81 -0
  362. package/dist/overlay/text/text.svelte.d.ts +33 -0
  363. package/dist/overlay/vector-overlay/index.d.ts +2 -0
  364. package/dist/overlay/vector-overlay/index.js +1 -0
  365. package/dist/overlay/vector-overlay/vector-overlay.svelte.d.ts +15 -0
  366. package/dist/overlay/vector-overlay/vector-overlay.svelte.js +39 -0
  367. package/dist/tool/bezier-curve-editor/bezier-curve-editor.svelte +109 -0
  368. package/dist/tool/bezier-curve-editor/bezier-curve-editor.svelte.d.ts +18 -0
  369. package/dist/tool/bezier-curve-editor/index.d.ts +2 -0
  370. package/dist/tool/bezier-curve-editor/index.js +1 -0
  371. package/dist/tool/circle-editor/circle-editor.svelte +93 -0
  372. package/dist/tool/circle-editor/circle-editor.svelte.d.ts +18 -0
  373. package/dist/tool/circle-editor/index.d.ts +2 -0
  374. package/dist/tool/circle-editor/index.js +1 -0
  375. package/dist/tool/ellipse-editor/ellipse-editor.svelte +102 -0
  376. package/dist/tool/ellipse-editor/ellipse-editor.svelte.d.ts +18 -0
  377. package/dist/tool/ellipse-editor/index.d.ts +2 -0
  378. package/dist/tool/ellipse-editor/index.js +1 -0
  379. package/dist/tool/index.d.ts +8 -0
  380. package/dist/tool/index.js +8 -0
  381. package/dist/tool/mouse-tool/index.d.ts +2 -0
  382. package/dist/tool/mouse-tool/index.js +1 -0
  383. package/dist/tool/mouse-tool/mouse-tool.svelte +72 -0
  384. package/dist/tool/mouse-tool/mouse-tool.svelte.d.ts +18 -0
  385. package/dist/tool/polygon-editor/index.d.ts +2 -0
  386. package/dist/tool/polygon-editor/index.js +1 -0
  387. package/dist/tool/polygon-editor/polygon-editor.svelte +98 -0
  388. package/dist/tool/polygon-editor/polygon-editor.svelte.d.ts +18 -0
  389. package/dist/tool/polyline-editor/index.d.ts +2 -0
  390. package/dist/tool/polyline-editor/index.js +1 -0
  391. package/dist/tool/polyline-editor/polyline-editor.svelte +95 -0
  392. package/dist/tool/polyline-editor/polyline-editor.svelte.d.ts +18 -0
  393. package/dist/tool/ranging-tool/index.d.ts +2 -0
  394. package/dist/tool/ranging-tool/index.js +1 -0
  395. package/dist/tool/ranging-tool/ranging-tool.svelte +62 -0
  396. package/dist/tool/ranging-tool/ranging-tool.svelte.d.ts +14 -0
  397. package/dist/tool/rectangle-editor/index.d.ts +2 -0
  398. package/dist/tool/rectangle-editor/index.js +1 -0
  399. package/dist/tool/rectangle-editor/rectangle-editor.svelte +95 -0
  400. package/dist/tool/rectangle-editor/rectangle-editor.svelte.d.ts +18 -0
  401. package/dist/types/index.d.ts +8 -0
  402. package/dist/types/index.js +1 -0
  403. package/dist/utils/helpers.d.ts +17 -0
  404. package/dist/utils/helpers.js +48 -0
  405. package/dist/utils/index.d.ts +1 -0
  406. package/dist/utils/index.js +1 -0
  407. package/package.json +97 -3
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024-present Jungzl.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,287 @@
1
- # Temporary Holding Version
1
+ # @cn-map/gaode-svelte
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ 高德地图 Svelte 组件库,基于高德地图 JavaScript API 2.0 开发。提供了一套 Svelte 5 组件、工具和类型定义,用于构建高德地图应用。
4
+
5
+ ## 特性
6
+
7
+ - 🎯 **类型友好** - 组件与 Hooks 提供类型定义
8
+ - 🚀 **Svelte 5 兼容** - 支持最新的 Svelte 5 特性和 Runes
9
+ - 🎨 **丰富的组件** - 覆盖地图、覆盖物、图层、控件与常用工具
10
+ - 🧩 **可与原生 API 混用** - WebService 等未封装能力可直接调用原生 `AMap.*`
11
+ - 📊 **3D 可视化** - 基于 Loca 的可视化组件
12
+ - 🛠️ **易于使用** - 简洁的 API 设计
13
+ - 📦 **按需加载** - 支持组件按需导入
14
+ - ⚡ **细粒度响应式** - 利用 Svelte 5 的响应式系统
15
+
16
+ ## 安装
17
+
18
+ ```bash
19
+ npm install @cn-map/gaode-svelte
20
+ ```
21
+
22
+ ```bash
23
+ yarn add @cn-map/gaode-svelte
24
+ ```
25
+
26
+ ```bash
27
+ pnpm add @cn-map/gaode-svelte
28
+ ```
29
+
30
+ ```bash
31
+ bun add @cn-map/gaode-svelte
32
+ ```
33
+
34
+ TypeScript 类型见 [`@cn-map/gaode-types`](../types/README.md)。
35
+
36
+ ## 使用示例
37
+
38
+ ### 基础地图
39
+
40
+ ```svelte
41
+ <script lang="ts">
42
+ import { APILoader, LoadStatus, Map, Marker, useAPIStatus } from '@cn-map/gaode-svelte'
43
+
44
+ const status = useAPIStatus('AMap')
45
+ </script>
46
+
47
+ <APILoader key="YOUR_AMAP_KEY">
48
+ {#if status() === LoadStatus.Loaded}
49
+ <Map center={[116.397428, 39.90923]} style="height: 400px" zoom={13}>
50
+ <Marker position={[116.397428, 39.90923]} />
51
+ </Map>
52
+ {/if}
53
+ </APILoader>
54
+ ```
55
+
56
+ or
57
+
58
+ ```svelte
59
+ <script lang="ts">
60
+ import { APILoader, LoadStatus, Map, Marker } from '@cn-map/gaode-svelte'
61
+ </script>
62
+
63
+ <APILoader key="YOUR_AMAP_KEY">
64
+ {#snippet children(status)}
65
+ {#if status().AMap === LoadStatus.Loaded}
66
+ <Map center={[116.397428, 39.90923]} style="height: 400px" zoom={13}>
67
+ <Marker position={[116.397428, 39.90923]} />
68
+ </Map>
69
+ {/if}
70
+ {/snippet}
71
+ </APILoader>
72
+ ```
73
+
74
+ ### 使用 Loca 可视化
75
+
76
+ ```svelte
77
+ <script lang="ts">
78
+ import { APILoader, LoadStatus, Map, useAPIStatus } from '@cn-map/gaode-svelte'
79
+ import { GeoJSONSource, HeatMapLayer, Loca } from '@cn-map/gaode-svelte/loca'
80
+
81
+ const status = useAPIStatus()
82
+ </script>
83
+
84
+ <APILoader key="YOUR_AMAP_KEY" Loca={{}}>
85
+ {#if status().AMap === LoadStatus.Loaded}
86
+ <Map
87
+ center={[102.618687, 31.790976]}
88
+ mapStyle="amap://styles/whitesmoke"
89
+ pitch={40}
90
+ style="height: 400px"
91
+ viewMode="3D"
92
+ zoom={4}
93
+ zooms={[4, 7]}
94
+ >
95
+ {#if status().Loca === LoadStatus.Loaded}
96
+ <Loca>
97
+ <GeoJSONSource url="https://a.amap.com/Loca/static/loca-v2/demos/mock_data/traffic.json">
98
+ <HeatMapLayer
99
+ opacity={1}
100
+ style={{
101
+ gradient: {
102
+ 0.1: '#2A85B8',
103
+ 0.2: '#16B0A9',
104
+ 0.3: '#29CF6F',
105
+ 0.4: '#5CE182',
106
+ 0.5: '#7DF675',
107
+ 0.6: '#FFF100',
108
+ 0.7: '#FAA53F',
109
+ 1.0: '#D04343',
110
+ },
111
+ height: 500000,
112
+ heightBezier: [0, 0.53, 0.37, 0.98],
113
+ radius: 200000,
114
+ value(index, feature) {
115
+ const value = Number.parseFloat(feature.properties.mom)
116
+ return value + 10 * Math.random()
117
+ },
118
+ unit: 'meter',
119
+ }}
120
+ visible={true}
121
+ zIndex={10}
122
+ />
123
+ </GeoJSONSource>
124
+ </Loca>
125
+ {/if}
126
+ </Map>
127
+ {/if}
128
+ </APILoader>
129
+ ```
130
+
131
+ ## 核心组件
132
+
133
+ ### API 加载器
134
+
135
+ | 导出名称 | 类型 | 描述 |
136
+ | ------------------ | ---- | ------------------------------ |
137
+ | `APILoader` | 组件 | 高德地图 JavaScript API 加载器 |
138
+ | `APILoaderOptions` | 类型 | APILoader 组件的配置选项 |
139
+ | `LoadStatus` | 枚举 | 表示加载状态的枚举值 |
140
+ | `useAPILoader` | 函数 | 加载高德地图 API |
141
+ | `useAPIStatus` | 函数 | 检查 API 加载状态 |
142
+
143
+ ### 地图组件
144
+
145
+ | 导出名称 | 类型 | 描述 |
146
+ | -------- | ---- | ------------ |
147
+ | `Map` | 组件 | 地图容器组件 |
148
+ | `useMap` | 函数 | 获取地图实例 |
149
+
150
+ ### 地图控制组件
151
+
152
+ | 导出名称 | 类型 | 描述 |
153
+ | ------------- | ---- | ---------------- |
154
+ | `ControlBar` | 组件 | 组合控件 |
155
+ | `Geolocation` | 组件 | 定位控件 |
156
+ | `HawkEye` | 组件 | 鹰眼控件 |
157
+ | `MapType` | 组件 | 地图类型切换控件 |
158
+ | `Scale` | 组件 | 比例尺控件 |
159
+ | `ToolBar` | 组件 | 工具条控件 |
160
+
161
+ ### 地图图层
162
+
163
+ | 导出名称 | 类型 | 描述 |
164
+ | ---------------------------- | ---- | ---------------- |
165
+ | `Buildings`, `BuildingLayer` | 组件 | 楼块图层 |
166
+ | `CanvasLayer` | 组件 | Canvas 图层 |
167
+ | `CustomLayer` | 组件 | 自定义图层 |
168
+ | `DistrictLayer` | 组件 | 行政区图层 |
169
+ | `Country` | 组件 | 国家图层 |
170
+ | `Province` | 组件 | 省份图层 |
171
+ | `World` | 组件 | 世界图层 |
172
+ | `Flexible` | 组件 | 灵活切片图层 |
173
+ | `GLCustomLayer` | 组件 | WebGL 自定义图层 |
174
+ | `HeatMap` | 组件 | 热力图图层 |
175
+ | `ImageLayer` | 组件 | 图片图层 |
176
+ | `IndoorMap` | 组件 | 室内地图图层 |
177
+ | `LabelsLayer` | 组件 | 标注图层 |
178
+ | `LayerGroup` | 组件 | 图层群组 |
179
+ | `Mapbox` | 组件 | Mapbox 图层 |
180
+ | `MapboxVectorTileLayer` | 组件 | MVT 图层 |
181
+ | `TileLayer` | 组件 | 切片图层 |
182
+ | `Flexible` | 组件 | 灵活切片图层 |
183
+ | `Mark` | 组件 | 白嫖标记图层 |
184
+ | `RoadNet` | 组件 | 路网图层 |
185
+ | `Satellite` | 组件 | 卫星图层 |
186
+ | `Traffic` | 组件 | 实时交通图层 |
187
+ | `WMS` | 组件 | WMS 图层 |
188
+ | `WMTS` | 组件 | WMTS 图层 |
189
+ | `VectorLayer` | 组件 | 矢量图层 |
190
+
191
+ ### 覆盖物组件
192
+
193
+ | 导出名称 | 类型 | 描述 |
194
+ | --------------- | ---- | -------------- |
195
+ | `BezierCurve` | 组件 | 贝塞尔曲线 |
196
+ | `Circle` | 组件 | 圆形 |
197
+ | `CircleMarker` | 组件 | 圆点标记 |
198
+ | `ContextMenu` | 组件 | 右键菜单 |
199
+ | `ElasticMarker` | 组件 | 灵活点标记 |
200
+ | `Ellipse` | 组件 | 椭圆 |
201
+ | `IndexCluster` | 组件 | 索引点聚合 |
202
+ | `InfoWindow` | 组件 | 信息窗体 |
203
+ | `LabelMarker` | 组件 | 标注标记 |
204
+ | `Marker` | 组件 | 点标记 |
205
+ | `MarkerCluster` | 组件 | 点聚合 |
206
+ | `MassMarks` | 组件 | 海量点 |
207
+ | `OverlayGroup` | 组件 | 覆盖物群组 |
208
+ | `Polygon` | 组件 | 多边形 |
209
+ | `Polyline` | 组件 | 折线 |
210
+ | `Rectangle` | 组件 | 矩形 |
211
+ | `Text` | 组件 | 文本标记 |
212
+ | `VectorOverlay` | 组件 | 矢量图形覆盖物 |
213
+
214
+ ### 工具组件
215
+
216
+ | 导出名称 | 类型 | 描述 |
217
+ | ------------------- | ---- | ---------------- |
218
+ | `BezierCurveEditor` | 组件 | 贝塞尔曲线编辑器 |
219
+ | `CircleEditor` | 组件 | 圆形编辑器 |
220
+ | `EllipseEditor` | 组件 | 椭圆编辑器 |
221
+ | `MouseTool` | 组件 | 鼠标工具 |
222
+ | `PolygonEditor` | 组件 | 多边形编辑器 |
223
+ | `PolylineEditor` | 组件 | 折线编辑器 |
224
+ | `RangingTool` | 组件 | 测距工具 |
225
+ | `RectangleEditor` | 组件 | 矩形编辑器 |
226
+
227
+ ## Loca 可视化组件
228
+
229
+ 基于 Loca 库的高级 3D 可视化组件,从 `@cn-map/gaode-svelte/loca` 导入::
230
+
231
+ ### Loca 容器
232
+
233
+ | 导出名称 | 类型 | 描述 |
234
+ | --------- | ---- | -------------- |
235
+ | `Loca` | 组件 | Loca 容器组件 |
236
+ | `useLoca` | 函数 | 访问 Loca 实例 |
237
+
238
+ ### Loca 图层
239
+
240
+ | 导出名称 | 类型 | 描述 |
241
+ | ---------------- | ---- | ------------ |
242
+ | `GridLayer` | 组件 | 网格图层 |
243
+ | `HeatMapLayer` | 组件 | 热力图图层 |
244
+ | `HexagonLayer` | 组件 | 蜂窝图层 |
245
+ | `IconLayer` | 组件 | 图标图层 |
246
+ | `LabelsLayer` | 组件 | 标注图层 |
247
+ | `LaserLayer` | 组件 | 激光图层 |
248
+ | `LineLayer` | 组件 | 线图层 |
249
+ | `LinkLayer` | 组件 | 连接图层 |
250
+ | `PointLayer` | 组件 | 点图层 |
251
+ | `PolygonLayer` | 组件 | 面图层 |
252
+ | `PrismLayer` | 组件 | 棱柱图层 |
253
+ | `PulseLineLayer` | 组件 | 脉冲线图层 |
254
+ | `PulseLinkLayer` | 组件 | 脉冲连接图层 |
255
+ | `ScatterLayer` | 组件 | 散点图层 |
256
+ | `ZMarkerLayer` | 组件 | Z轴标记图层 |
257
+
258
+ ### Loca 光照
259
+
260
+ | 导出名称 | 类型 | 描述 |
261
+ | ------------------ | ---- | ------ |
262
+ | `AmbientLight` | 组件 | 环境光 |
263
+ | `DirectionalLight` | 组件 | 平行光 |
264
+ | `PointLight` | 组件 | 点光源 |
265
+
266
+ ### Loca UI 组件
267
+
268
+ | 导出名称 | 类型 | 描述 |
269
+ | -------- | ---- | -------- |
270
+ | `Legend` | 组件 | 图例组件 |
271
+
272
+ ### Loca 数据源
273
+
274
+ | 导出名称 | 类型 | 描述 |
275
+ | ----------------- | ---- | ---------------- |
276
+ | `GeoBufferSource` | 组件 | GeoBuffer 数据源 |
277
+ | `GeoJSONSource` | 组件 | GeoJSON 数据源 |
278
+
279
+ ## 相关链接
280
+
281
+ - [高德地图 JavaScript API 文档](https://lbs.amap.com/api/jsapi-v2/summary)
282
+ - [Loca 可视化文档](https://lbs.amap.com/api/loca-v2/intro)
283
+ - [Svelte 文档](https://svelte.dev/)
284
+
285
+ ## 许可证
286
+
287
+ [MIT](https://github.com/Jungzl/amap/blob/main/LICENSE)
@@ -0,0 +1,13 @@
1
+ <script lang="ts">
2
+ import type { APILoaderProps } from './types'
3
+ import useApiLoader from './use-api-loader.svelte'
4
+
5
+ const { children, resetOnDestroy = false, ...props }: APILoaderProps = $props()
6
+
7
+ const { status, error } = useApiLoader(
8
+ () => props,
9
+ () => resetOnDestroy
10
+ )
11
+ </script>
12
+
13
+ {@render children(status, error)}
@@ -0,0 +1,4 @@
1
+ import type { APILoaderProps } from './types';
2
+ declare const ApiLoader: import("svelte").Component<APILoaderProps, {}, "">;
3
+ type ApiLoader = ReturnType<typeof ApiLoader>;
4
+ export default ApiLoader;
@@ -0,0 +1,12 @@
1
+ import type { APIStatus, APIType } from '@cn-map/gaode-jsapi-loader';
2
+ /**
3
+ * 获取当前API加载状态
4
+ * @param {APIType} type - 获取的API类型
5
+ * @returns {() => APIStatus} - 返回一个函数,调用后返回指定类型的加载状态
6
+ */
7
+ export declare function useAPIStatus(type: APIType): () => APIStatus;
8
+ /**
9
+ * 获取当前API加载状态
10
+ * @returns {() => Record<APIType, APIStatus>} - 返回一个函数,调用后返回所有类型的加载状态
11
+ */
12
+ export declare function useAPIStatus(): () => Record<APIType, APIStatus>;
@@ -0,0 +1,9 @@
1
+ import { getAPIStatus, subscribeAPIStatus } from '@cn-map/gaode-jsapi-loader';
2
+ import { createSubscriber } from 'svelte/reactivity';
3
+ const subscribeStatus = createSubscriber(subscribeAPIStatus);
4
+ export function useAPIStatus(type) {
5
+ return () => {
6
+ subscribeStatus();
7
+ return type ? getAPIStatus(type) : { ...getAPIStatus() };
8
+ };
9
+ }
@@ -0,0 +1,5 @@
1
+ export { default as APILoader } from './api-loader.svelte';
2
+ export { useAPIStatus } from './context.svelte';
3
+ export type { APILoaderOptions, APILoaderProps } from './types';
4
+ export { default as useAPILoader } from './use-api-loader.svelte';
5
+ export { LoadStatus } from '@cn-map/gaode-jsapi-loader';
@@ -0,0 +1,4 @@
1
+ export { default as APILoader } from './api-loader.svelte';
2
+ export { useAPIStatus } from './context.svelte';
3
+ export { default as useAPILoader } from './use-api-loader.svelte';
4
+ export { LoadStatus } from '@cn-map/gaode-jsapi-loader';
@@ -0,0 +1,15 @@
1
+ import type { LoaderOptions } from '@cn-map/gaode-jsapi-loader';
2
+ import type { Snippet } from 'svelte';
3
+ import type useAPILoader from './use-api-loader.svelte';
4
+ export type APILoaderOptions = LoaderOptions;
5
+ type APILoaderReturn = ReturnType<typeof useAPILoader>;
6
+ export interface APILoaderProps extends APILoaderOptions {
7
+ /**
8
+ * 组件卸载时是否重置全局 JSAPI 状态
9
+ *
10
+ * @default false
11
+ */
12
+ resetOnDestroy?: boolean;
13
+ children: Snippet<[APILoaderReturn['status'], APILoaderReturn['error']]>;
14
+ }
15
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,13 @@
1
+ import type { Accessor, Nullable } from '@cn-map/gaode-shared/types';
2
+ import type { APILoaderOptions } from './types';
3
+ import { useAPIStatus } from './context.svelte';
4
+ /**
5
+ * 加载高德地图依赖的 Hook
6
+ * @param {()=>APILoaderOptions} getConfig - 加载高德地图API的配置项
7
+ * @param {()=>boolean} [getResetOnDestroy=()=>false] - 组件销毁时是否重置全局 JSAPI 状态
8
+ */
9
+ declare const useAPILoader: (getConfig: Accessor<APILoaderOptions>, getResetOnDestroy?: Accessor<boolean>) => {
10
+ status: ReturnType<typeof useAPIStatus>;
11
+ error: Accessor<Nullable<Error | Event>>;
12
+ };
13
+ export default useAPILoader;
@@ -0,0 +1,32 @@
1
+ import { load, reset } from '@cn-map/gaode-jsapi-loader';
2
+ import { onDestroy } from 'svelte';
3
+ import { useAPIStatus } from './context.svelte';
4
+ /**
5
+ * 加载高德地图依赖的 Hook
6
+ * @param {()=>APILoaderOptions} getConfig - 加载高德地图API的配置项
7
+ * @param {()=>boolean} [getResetOnDestroy=()=>false] - 组件销毁时是否重置全局 JSAPI 状态
8
+ */
9
+ const useAPILoader = (getConfig, getResetOnDestroy = () => false) => {
10
+ let error = $state.raw(null);
11
+ $effect(() => {
12
+ const config = getConfig();
13
+ load(config).catch((err) => {
14
+ if (err instanceof Error || err instanceof Event) {
15
+ error = err;
16
+ }
17
+ else {
18
+ throw new Error(`Unexpected error when loading API`, { cause: err });
19
+ }
20
+ });
21
+ });
22
+ onDestroy(() => {
23
+ if (getResetOnDestroy()) {
24
+ reset();
25
+ }
26
+ });
27
+ return {
28
+ status: useAPIStatus(),
29
+ error: () => error,
30
+ };
31
+ };
32
+ export default useAPILoader;
@@ -0,0 +1,12 @@
1
+ import type { Accessor } from '@cn-map/gaode-shared/types';
2
+ import type { Instance } from '../../types/index.ts';
3
+ export type ControlAttributes = Omit<ControlInitOptions, 'map' | 'instance'>;
4
+ export interface ControlExtraInitOptions {
5
+ /**
6
+ * 地图对象
7
+ */
8
+ map?: AMap.Map;
9
+ }
10
+ export type ControlInitOptions = AMap.ControlOptions & ControlExtraInitOptions & Instance<AMap.Control>;
11
+ export declare const controlEvents: AMap.ControlEventType[];
12
+ export declare function useControlAttributes<T extends AMap.Control>(control: Accessor<T>, props: ControlAttributes): void;
@@ -0,0 +1,14 @@
1
+ import { hide, show } from '@cn-map/gaode-shared/const';
2
+ export const controlEvents = [hide, show];
3
+ export function useControlAttributes(control, props) {
4
+ $effect(() => {
5
+ if (props.visible !== undefined) {
6
+ if (props.visible) {
7
+ control().show();
8
+ }
9
+ else {
10
+ control().hide();
11
+ }
12
+ }
13
+ });
14
+ }
@@ -0,0 +1,2 @@
1
+ export { controlEvents, useControlAttributes } from './control.svelte';
2
+ export type { ControlAttributes, ControlExtraInitOptions, ControlInitOptions } from './control.svelte';
@@ -0,0 +1 @@
1
+ export { controlEvents, useControlAttributes } from './control.svelte';
@@ -0,0 +1,50 @@
1
+ <script lang="ts">
2
+ import type { MapEventProps } from '@cn-map/gaode-shared/types'
3
+ import type { Instance } from '../../types/index.js'
4
+ import type { ControlExtraInitOptions } from '../control'
5
+ import { eventsToProps } from '@cn-map/gaode-shared/utils'
6
+ import { createEventListeners } from '../../hooks/index.js'
7
+ import { useMapInstance } from '../../map'
8
+ import { omitProps, snapshot } from '../../utils/index.js'
9
+ import { controlEvents, useControlAttributes } from '../control'
10
+
11
+ type ControlBarEvents = MapEventProps<AMap.ControlBarEventType, AMap.ControlBar>
12
+ type ControlBarInitOptions = AMap.ControlBarOptions & ControlExtraInitOptions & Instance<AMap.ControlBar>
13
+
14
+ export type ControlBarProps = ControlBarInitOptions & ControlBarEvents
15
+
16
+ const controlBarEvents: AMap.ControlBarEventType[] = controlEvents
17
+
18
+ let { instance = $bindable(), ...props }: ControlBarProps = $props()
19
+
20
+ const map = $derived.by(useMapInstance(() => props.map))
21
+ const restProps = omitProps(() => props, 'map', ...eventsToProps(controlBarEvents))
22
+
23
+ const controlBar = $state.raw<AMap.ControlBar>(new AMap.ControlBar(snapshot(restProps)))
24
+
25
+ $effect(() => {
26
+ instance = controlBar
27
+
28
+ return () => {
29
+ instance = null
30
+ }
31
+ })
32
+
33
+ $effect(() => {
34
+ if (!map) return
35
+
36
+ map.addControl(controlBar)
37
+
38
+ return () => {
39
+ map.removeControl(controlBar)
40
+ }
41
+ })
42
+
43
+ useControlAttributes(() => controlBar, restProps)
44
+
45
+ createEventListeners<AMap.ControlBarEventType, AMap.ControlBar>(
46
+ () => controlBar,
47
+ () => props,
48
+ controlBarEvents
49
+ )
50
+ </script>
@@ -0,0 +1,9 @@
1
+ import type { MapEventProps } from '@cn-map/gaode-shared/types';
2
+ import type { Instance } from '../../types/index.ts';
3
+ import type { ControlExtraInitOptions } from '../control';
4
+ type ControlBarEvents = MapEventProps<AMap.ControlBarEventType, AMap.ControlBar>;
5
+ type ControlBarInitOptions = AMap.ControlBarOptions & ControlExtraInitOptions & Instance<AMap.ControlBar>;
6
+ export type ControlBarProps = ControlBarInitOptions & ControlBarEvents;
7
+ declare const ControlBar: import("svelte").Component<ControlBarProps, {}, "instance">;
8
+ type ControlBar = ReturnType<typeof ControlBar>;
9
+ export default ControlBar;
@@ -0,0 +1,2 @@
1
+ export { default as ControlBar } from './control-bar.svelte';
2
+ export type { ControlBarProps } from './control-bar.svelte';
@@ -0,0 +1 @@
1
+ export { default as ControlBar } from './control-bar.svelte';
@@ -0,0 +1,51 @@
1
+ <script lang="ts">
2
+ import type { MapEventProps } from '@cn-map/gaode-shared/types'
3
+ import type { Instance } from '../../types/index.js'
4
+ import type { ControlExtraInitOptions } from '../control'
5
+ import { complete, error } from '@cn-map/gaode-shared/const'
6
+ import { eventsToProps } from '@cn-map/gaode-shared/utils'
7
+ import { createEventListeners } from '../../hooks/index.js'
8
+ import { useMapInstance } from '../../map'
9
+ import { omitProps, snapshot } from '../../utils/index.js'
10
+ import { controlEvents, useControlAttributes } from '../control'
11
+
12
+ type GeolocationEvents = MapEventProps<AMap.GeolocationEventType, AMap.Geolocation>
13
+ type GeolocationInitOptions = AMap.GeolocationOptions & ControlExtraInitOptions & Instance<AMap.Geolocation>
14
+
15
+ export type GeolocationProps = GeolocationInitOptions & GeolocationEvents
16
+
17
+ const geolocationEvents: AMap.GeolocationEventType[] = [...controlEvents, complete, error]
18
+
19
+ let { instance = $bindable(), ...props }: GeolocationProps = $props()
20
+
21
+ const map = $derived.by(useMapInstance(() => props.map))
22
+ const restProps = omitProps(() => props, 'map', ...eventsToProps(geolocationEvents))
23
+
24
+ const geolocation = $state.raw<AMap.Geolocation>(new AMap.Geolocation(snapshot(restProps)))
25
+
26
+ $effect(() => {
27
+ instance = geolocation
28
+
29
+ return () => {
30
+ instance = null
31
+ }
32
+ })
33
+
34
+ $effect(() => {
35
+ if (!map) return
36
+
37
+ map.addControl(geolocation)
38
+
39
+ return () => {
40
+ map.removeControl(geolocation)
41
+ }
42
+ })
43
+
44
+ useControlAttributes(() => geolocation, restProps)
45
+
46
+ createEventListeners<AMap.GeolocationEventType, AMap.Geolocation>(
47
+ () => geolocation,
48
+ () => props,
49
+ geolocationEvents
50
+ )
51
+ </script>
@@ -0,0 +1,9 @@
1
+ import type { MapEventProps } from '@cn-map/gaode-shared/types';
2
+ import type { Instance } from '../../types/index.ts';
3
+ import type { ControlExtraInitOptions } from '../control';
4
+ type GeolocationEvents = MapEventProps<AMap.GeolocationEventType, AMap.Geolocation>;
5
+ type GeolocationInitOptions = AMap.GeolocationOptions & ControlExtraInitOptions & Instance<AMap.Geolocation>;
6
+ export type GeolocationProps = GeolocationInitOptions & GeolocationEvents;
7
+ declare const Geolocation: import("svelte").Component<GeolocationProps, {}, "instance">;
8
+ type Geolocation = ReturnType<typeof Geolocation>;
9
+ export default Geolocation;
@@ -0,0 +1,2 @@
1
+ export { default as Geolocation } from './geolocation.svelte';
2
+ export type { GeolocationProps } from './geolocation.svelte';
@@ -0,0 +1 @@
1
+ export { default as Geolocation } from './geolocation.svelte';
@@ -0,0 +1,50 @@
1
+ <script lang="ts">
2
+ import type { MapEventProps } from '@cn-map/gaode-shared/types'
3
+ import type { Instance } from '../../types/index.js'
4
+ import type { ControlExtraInitOptions } from '../control'
5
+ import { eventsToProps } from '@cn-map/gaode-shared/utils'
6
+ import { createEventListeners } from '../../hooks/index.js'
7
+ import { useMapInstance } from '../../map'
8
+ import { omitProps, snapshot } from '../../utils/index.js'
9
+ import { controlEvents, useControlAttributes } from '../control'
10
+
11
+ type HawkEyeEvents = MapEventProps<AMap.HawkEyeEventType, AMap.HawkEye>
12
+ type HawkEyeInitOptions = AMap.HawkEyeOptions & ControlExtraInitOptions & Instance<AMap.HawkEye>
13
+
14
+ export type HawkEyeProps = HawkEyeInitOptions & HawkEyeEvents
15
+
16
+ const hawkEyeEvents: AMap.HawkEyeEventType[] = controlEvents
17
+
18
+ let { instance = $bindable(), ...props }: HawkEyeProps = $props()
19
+
20
+ const map = $derived.by(useMapInstance(() => props.map))
21
+ const restProps = omitProps(() => props, 'map', ...eventsToProps(hawkEyeEvents))
22
+
23
+ const hawkEye = $state.raw<AMap.HawkEye>(new AMap.HawkEye(snapshot(restProps)))
24
+
25
+ $effect(() => {
26
+ instance = hawkEye
27
+
28
+ return () => {
29
+ instance = null
30
+ }
31
+ })
32
+
33
+ $effect(() => {
34
+ if (!map) return
35
+
36
+ map.addControl(hawkEye)
37
+
38
+ return () => {
39
+ map.removeControl(hawkEye)
40
+ }
41
+ })
42
+
43
+ useControlAttributes(() => hawkEye, restProps)
44
+
45
+ createEventListeners<AMap.HawkEyeEventType, AMap.HawkEye>(
46
+ () => hawkEye,
47
+ () => props,
48
+ hawkEyeEvents
49
+ )
50
+ </script>