@performant-software/geospatial 2.1.0-beta.9 → 2.1.1-beta.0

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 (740) hide show
  1. package/dist/index.cjs.js +1 -1
  2. package/dist/index.cjs10.js +1 -1
  3. package/dist/index.cjs10.js.map +1 -1
  4. package/dist/index.cjs100.js +1 -1
  5. package/dist/index.cjs100.js.map +1 -1
  6. package/dist/index.cjs101.js +1 -1
  7. package/dist/index.cjs101.js.map +1 -1
  8. package/dist/index.cjs102.js +1 -1
  9. package/dist/index.cjs102.js.map +1 -1
  10. package/dist/index.cjs103.js +1 -1
  11. package/dist/index.cjs103.js.map +1 -1
  12. package/dist/index.cjs104.js +1 -1
  13. package/dist/index.cjs104.js.map +1 -1
  14. package/dist/index.cjs105.js +1 -1
  15. package/dist/index.cjs105.js.map +1 -1
  16. package/dist/index.cjs106.js +1 -1
  17. package/dist/index.cjs106.js.map +1 -1
  18. package/dist/index.cjs107.js +1 -1
  19. package/dist/index.cjs107.js.map +1 -1
  20. package/dist/index.cjs108.js +1 -1
  21. package/dist/index.cjs108.js.map +1 -1
  22. package/dist/index.cjs109.js +1 -1
  23. package/dist/index.cjs109.js.map +1 -1
  24. package/dist/index.cjs11.js +1 -1
  25. package/dist/index.cjs11.js.map +1 -1
  26. package/dist/index.cjs110.js +13 -1
  27. package/dist/index.cjs110.js.map +1 -1
  28. package/dist/index.cjs111.js +1 -1
  29. package/dist/index.cjs111.js.map +1 -1
  30. package/dist/index.cjs112.js +1 -1
  31. package/dist/index.cjs112.js.map +1 -1
  32. package/dist/index.cjs113.js +1 -1
  33. package/dist/index.cjs113.js.map +1 -1
  34. package/dist/index.cjs114.js +1 -1
  35. package/dist/index.cjs114.js.map +1 -1
  36. package/dist/index.cjs115.js +1 -1
  37. package/dist/index.cjs115.js.map +1 -1
  38. package/dist/index.cjs116.js +1 -1
  39. package/dist/index.cjs116.js.map +1 -1
  40. package/dist/index.cjs117.js +1 -1
  41. package/dist/index.cjs117.js.map +1 -1
  42. package/dist/index.cjs118.js +1 -1
  43. package/dist/index.cjs118.js.map +1 -1
  44. package/dist/index.cjs119.js +1 -1
  45. package/dist/index.cjs119.js.map +1 -1
  46. package/dist/index.cjs12.js +1 -1
  47. package/dist/index.cjs12.js.map +1 -1
  48. package/dist/index.cjs120.js +1 -1
  49. package/dist/index.cjs120.js.map +1 -1
  50. package/dist/index.cjs121.js +1 -1
  51. package/dist/index.cjs121.js.map +1 -1
  52. package/dist/index.cjs122.js +1 -13
  53. package/dist/index.cjs122.js.map +1 -1
  54. package/dist/index.cjs123.js +1 -1
  55. package/dist/index.cjs123.js.map +1 -1
  56. package/dist/index.cjs124.js +1 -1
  57. package/dist/index.cjs124.js.map +1 -1
  58. package/dist/index.cjs125.js +1 -1
  59. package/dist/index.cjs125.js.map +1 -1
  60. package/dist/index.cjs126.js +1 -1
  61. package/dist/index.cjs126.js.map +1 -1
  62. package/dist/index.cjs127.js +1 -1
  63. package/dist/index.cjs127.js.map +1 -1
  64. package/dist/index.cjs128.js +1 -1
  65. package/dist/index.cjs128.js.map +1 -1
  66. package/dist/index.cjs129.js +1 -1
  67. package/dist/index.cjs129.js.map +1 -1
  68. package/dist/index.cjs13.js +1 -1
  69. package/dist/index.cjs13.js.map +1 -1
  70. package/dist/index.cjs130.js +1 -1
  71. package/dist/index.cjs130.js.map +1 -1
  72. package/dist/index.cjs131.js +1 -1
  73. package/dist/index.cjs131.js.map +1 -1
  74. package/dist/index.cjs132.js +1 -1
  75. package/dist/index.cjs132.js.map +1 -1
  76. package/dist/index.cjs133.js +1 -1
  77. package/dist/index.cjs133.js.map +1 -1
  78. package/dist/index.cjs134.js +1 -1
  79. package/dist/index.cjs134.js.map +1 -1
  80. package/dist/index.cjs135.js +1 -1
  81. package/dist/index.cjs135.js.map +1 -1
  82. package/dist/index.cjs136.js +1 -1
  83. package/dist/index.cjs136.js.map +1 -1
  84. package/dist/index.cjs137.js +1 -1
  85. package/dist/index.cjs137.js.map +1 -1
  86. package/dist/index.cjs138.js +1 -1
  87. package/dist/index.cjs138.js.map +1 -1
  88. package/dist/index.cjs139.js +1 -1
  89. package/dist/index.cjs139.js.map +1 -1
  90. package/dist/index.cjs14.js +1 -1
  91. package/dist/index.cjs14.js.map +1 -1
  92. package/dist/index.cjs140.js +1 -1
  93. package/dist/index.cjs140.js.map +1 -1
  94. package/dist/index.cjs141.js +1 -1
  95. package/dist/index.cjs141.js.map +1 -1
  96. package/dist/index.cjs142.js +1 -1
  97. package/dist/index.cjs142.js.map +1 -1
  98. package/dist/index.cjs143.js +1 -1
  99. package/dist/index.cjs143.js.map +1 -1
  100. package/dist/index.cjs144.js +1 -1
  101. package/dist/index.cjs144.js.map +1 -1
  102. package/dist/index.cjs145.js +1 -1
  103. package/dist/index.cjs145.js.map +1 -1
  104. package/dist/index.cjs146.js +1 -1
  105. package/dist/index.cjs146.js.map +1 -1
  106. package/dist/index.cjs147.js +1 -1
  107. package/dist/index.cjs147.js.map +1 -1
  108. package/dist/index.cjs148.js +1 -1
  109. package/dist/index.cjs148.js.map +1 -1
  110. package/dist/index.cjs149.js +1 -1
  111. package/dist/index.cjs149.js.map +1 -1
  112. package/dist/index.cjs15.js +1 -1
  113. package/dist/index.cjs15.js.map +1 -1
  114. package/dist/index.cjs150.js +1 -1
  115. package/dist/index.cjs150.js.map +1 -1
  116. package/dist/index.cjs151.js +1 -1
  117. package/dist/index.cjs151.js.map +1 -1
  118. package/dist/index.cjs152.js +1 -1
  119. package/dist/index.cjs152.js.map +1 -1
  120. package/dist/index.cjs153.js +1 -1
  121. package/dist/index.cjs153.js.map +1 -1
  122. package/dist/index.cjs154.js +1 -1
  123. package/dist/index.cjs154.js.map +1 -1
  124. package/dist/index.cjs155.js +1 -1
  125. package/dist/index.cjs155.js.map +1 -1
  126. package/dist/index.cjs156.js +1 -1
  127. package/dist/index.cjs156.js.map +1 -1
  128. package/dist/index.cjs157.js +1 -1
  129. package/dist/index.cjs157.js.map +1 -1
  130. package/dist/index.cjs158.js +1 -1
  131. package/dist/index.cjs158.js.map +1 -1
  132. package/dist/index.cjs159.js +1 -1
  133. package/dist/index.cjs159.js.map +1 -1
  134. package/dist/index.cjs16.js +1 -1
  135. package/dist/index.cjs16.js.map +1 -1
  136. package/dist/index.cjs160.js +1 -1
  137. package/dist/index.cjs160.js.map +1 -1
  138. package/dist/index.cjs161.js +1 -1
  139. package/dist/index.cjs161.js.map +1 -1
  140. package/dist/index.cjs162.js +1 -1
  141. package/dist/index.cjs162.js.map +1 -1
  142. package/dist/index.cjs163.js +1 -1
  143. package/dist/index.cjs163.js.map +1 -1
  144. package/dist/index.cjs164.js +1 -1
  145. package/dist/index.cjs164.js.map +1 -1
  146. package/dist/index.cjs165.js +1 -1
  147. package/dist/index.cjs165.js.map +1 -1
  148. package/dist/index.cjs166.js +1 -1
  149. package/dist/index.cjs166.js.map +1 -1
  150. package/dist/index.cjs167.js +1 -1
  151. package/dist/index.cjs167.js.map +1 -1
  152. package/dist/index.cjs168.js +1 -1
  153. package/dist/index.cjs168.js.map +1 -1
  154. package/dist/index.cjs169.js +1 -1
  155. package/dist/index.cjs169.js.map +1 -1
  156. package/dist/index.cjs17.js +1 -1
  157. package/dist/index.cjs17.js.map +1 -1
  158. package/dist/index.cjs170.js +1 -1
  159. package/dist/index.cjs170.js.map +1 -1
  160. package/dist/index.cjs171.js +1 -1
  161. package/dist/index.cjs171.js.map +1 -1
  162. package/dist/index.cjs172.js +1 -1
  163. package/dist/index.cjs172.js.map +1 -1
  164. package/dist/index.cjs173.js +1 -1
  165. package/dist/index.cjs173.js.map +1 -1
  166. package/dist/index.cjs174.js +1 -1
  167. package/dist/index.cjs174.js.map +1 -1
  168. package/dist/index.cjs175.js +1 -1
  169. package/dist/index.cjs175.js.map +1 -1
  170. package/dist/index.cjs18.js +1 -1
  171. package/dist/index.cjs18.js.map +1 -1
  172. package/dist/index.cjs19.js +1 -1
  173. package/dist/index.cjs19.js.map +1 -1
  174. package/dist/index.cjs191.js +1 -1
  175. package/dist/index.cjs199.js +1 -1
  176. package/dist/index.cjs2.js +1 -1
  177. package/dist/index.cjs20.js +1 -1
  178. package/dist/index.cjs20.js.map +1 -1
  179. package/dist/index.cjs200.js +1 -1
  180. package/dist/index.cjs201.js +1 -1
  181. package/dist/index.cjs202.js +1 -1
  182. package/dist/index.cjs203.js +1 -1
  183. package/dist/index.cjs205.js +1 -1
  184. package/dist/index.cjs206.js +1 -1
  185. package/dist/index.cjs208.js +1 -1
  186. package/dist/index.cjs209.js +1 -1
  187. package/dist/index.cjs21.js +1 -1
  188. package/dist/index.cjs21.js.map +1 -1
  189. package/dist/index.cjs211.js +1 -1
  190. package/dist/index.cjs213.js +1 -1
  191. package/dist/index.cjs215.js +1 -1
  192. package/dist/index.cjs215.js.map +1 -1
  193. package/dist/index.cjs216.js +1 -1
  194. package/dist/index.cjs217.js +1 -1
  195. package/dist/index.cjs218.js +1 -1
  196. package/dist/index.cjs22.js +1 -1
  197. package/dist/index.cjs22.js.map +1 -1
  198. package/dist/index.cjs220.js +1 -1
  199. package/dist/index.cjs221.js +1 -1
  200. package/dist/index.cjs222.js +1 -1
  201. package/dist/index.cjs223.js +1 -1
  202. package/dist/index.cjs225.js +1 -1
  203. package/dist/index.cjs226.js +1 -1
  204. package/dist/index.cjs226.js.map +1 -1
  205. package/dist/index.cjs227.js +1 -1
  206. package/dist/index.cjs227.js.map +1 -1
  207. package/dist/index.cjs228.js +1 -1
  208. package/dist/index.cjs228.js.map +1 -1
  209. package/dist/index.cjs229.js +1 -1
  210. package/dist/index.cjs229.js.map +1 -1
  211. package/dist/index.cjs23.js +1 -1
  212. package/dist/index.cjs23.js.map +1 -1
  213. package/dist/index.cjs230.js +1 -1
  214. package/dist/index.cjs230.js.map +1 -1
  215. package/dist/index.cjs236.js +1 -1
  216. package/dist/index.cjs24.js +1 -1
  217. package/dist/index.cjs24.js.map +1 -1
  218. package/dist/index.cjs246.js +1 -1
  219. package/dist/index.cjs249.js +1 -1
  220. package/dist/index.cjs249.js.map +1 -1
  221. package/dist/index.cjs25.js +1 -1
  222. package/dist/index.cjs25.js.map +1 -1
  223. package/dist/index.cjs250.js +1 -1
  224. package/dist/index.cjs250.js.map +1 -1
  225. package/dist/index.cjs26.js +1 -1
  226. package/dist/index.cjs26.js.map +1 -1
  227. package/dist/index.cjs27.js +1 -1
  228. package/dist/index.cjs27.js.map +1 -1
  229. package/dist/index.cjs28.js +1 -1
  230. package/dist/index.cjs28.js.map +1 -1
  231. package/dist/index.cjs29.js +1 -1
  232. package/dist/index.cjs29.js.map +1 -1
  233. package/dist/index.cjs3.js +1 -1
  234. package/dist/index.cjs3.js.map +1 -1
  235. package/dist/index.cjs30.js +1 -1
  236. package/dist/index.cjs30.js.map +1 -1
  237. package/dist/index.cjs31.js +1 -1
  238. package/dist/index.cjs31.js.map +1 -1
  239. package/dist/index.cjs32.js +1 -1
  240. package/dist/index.cjs32.js.map +1 -1
  241. package/dist/index.cjs33.js +1 -1
  242. package/dist/index.cjs33.js.map +1 -1
  243. package/dist/index.cjs34.js +1 -1
  244. package/dist/index.cjs34.js.map +1 -1
  245. package/dist/index.cjs35.js +1 -1
  246. package/dist/index.cjs35.js.map +1 -1
  247. package/dist/index.cjs36.js +1 -1
  248. package/dist/index.cjs36.js.map +1 -1
  249. package/dist/index.cjs37.js +1 -1
  250. package/dist/index.cjs37.js.map +1 -1
  251. package/dist/index.cjs38.js +1 -1
  252. package/dist/index.cjs38.js.map +1 -1
  253. package/dist/index.cjs39.js +1 -1
  254. package/dist/index.cjs39.js.map +1 -1
  255. package/dist/index.cjs4.js +1 -1
  256. package/dist/index.cjs40.js +1 -1
  257. package/dist/index.cjs40.js.map +1 -1
  258. package/dist/index.cjs41.js +1 -1
  259. package/dist/index.cjs41.js.map +1 -1
  260. package/dist/index.cjs42.js +1 -1
  261. package/dist/index.cjs42.js.map +1 -1
  262. package/dist/index.cjs43.js +1 -1
  263. package/dist/index.cjs43.js.map +1 -1
  264. package/dist/index.cjs44.js +1 -1
  265. package/dist/index.cjs44.js.map +1 -1
  266. package/dist/index.cjs45.js +1 -1
  267. package/dist/index.cjs45.js.map +1 -1
  268. package/dist/index.cjs46.js +1 -1
  269. package/dist/index.cjs5.js +1 -1
  270. package/dist/index.cjs5.js.map +1 -1
  271. package/dist/index.cjs52.js +1 -1
  272. package/dist/index.cjs53.js +9 -1
  273. package/dist/index.cjs53.js.map +1 -1
  274. package/dist/index.cjs54.js +19 -1
  275. package/dist/index.cjs54.js.map +1 -1
  276. package/dist/index.cjs55.js +1 -9
  277. package/dist/index.cjs55.js.map +1 -1
  278. package/dist/index.cjs56.js +1 -19
  279. package/dist/index.cjs56.js.map +1 -1
  280. package/dist/index.cjs6.js +1 -1
  281. package/dist/index.cjs60.js +1 -1
  282. package/dist/index.cjs60.js.map +1 -1
  283. package/dist/index.cjs61.js +1 -1
  284. package/dist/index.cjs61.js.map +1 -1
  285. package/dist/index.cjs62.js +1 -1
  286. package/dist/index.cjs62.js.map +1 -1
  287. package/dist/index.cjs63.js +1 -1
  288. package/dist/index.cjs63.js.map +1 -1
  289. package/dist/index.cjs64.js +1 -1
  290. package/dist/index.cjs64.js.map +1 -1
  291. package/dist/index.cjs65.js +1 -1
  292. package/dist/index.cjs65.js.map +1 -1
  293. package/dist/index.cjs66.js +1 -1
  294. package/dist/index.cjs66.js.map +1 -1
  295. package/dist/index.cjs67.js +1 -1
  296. package/dist/index.cjs67.js.map +1 -1
  297. package/dist/index.cjs68.js +1 -1
  298. package/dist/index.cjs68.js.map +1 -1
  299. package/dist/index.cjs69.js +1 -1
  300. package/dist/index.cjs69.js.map +1 -1
  301. package/dist/index.cjs7.js +1 -1
  302. package/dist/index.cjs70.js +1 -1
  303. package/dist/index.cjs70.js.map +1 -1
  304. package/dist/index.cjs71.js +1 -1
  305. package/dist/index.cjs71.js.map +1 -1
  306. package/dist/index.cjs72.js +1 -1
  307. package/dist/index.cjs72.js.map +1 -1
  308. package/dist/index.cjs73.js +1 -1
  309. package/dist/index.cjs73.js.map +1 -1
  310. package/dist/index.cjs74.js +1 -1
  311. package/dist/index.cjs74.js.map +1 -1
  312. package/dist/index.cjs75.js +1 -1
  313. package/dist/index.cjs75.js.map +1 -1
  314. package/dist/index.cjs76.js +1 -1
  315. package/dist/index.cjs76.js.map +1 -1
  316. package/dist/index.cjs77.js +1 -1
  317. package/dist/index.cjs77.js.map +1 -1
  318. package/dist/index.cjs78.js +1 -1
  319. package/dist/index.cjs78.js.map +1 -1
  320. package/dist/index.cjs79.js +1 -1
  321. package/dist/index.cjs79.js.map +1 -1
  322. package/dist/index.cjs8.js +1 -1
  323. package/dist/index.cjs80.js +1 -1
  324. package/dist/index.cjs80.js.map +1 -1
  325. package/dist/index.cjs81.js +1 -1
  326. package/dist/index.cjs81.js.map +1 -1
  327. package/dist/index.cjs82.js +1 -1
  328. package/dist/index.cjs82.js.map +1 -1
  329. package/dist/index.cjs83.js +1 -1
  330. package/dist/index.cjs83.js.map +1 -1
  331. package/dist/index.cjs84.js +1 -1
  332. package/dist/index.cjs84.js.map +1 -1
  333. package/dist/index.cjs85.js +1 -1
  334. package/dist/index.cjs85.js.map +1 -1
  335. package/dist/index.cjs86.js +1 -1
  336. package/dist/index.cjs86.js.map +1 -1
  337. package/dist/index.cjs87.js +1 -1
  338. package/dist/index.cjs87.js.map +1 -1
  339. package/dist/index.cjs88.js +1 -1
  340. package/dist/index.cjs88.js.map +1 -1
  341. package/dist/index.cjs89.js +1 -1
  342. package/dist/index.cjs89.js.map +1 -1
  343. package/dist/index.cjs9.js +1 -1
  344. package/dist/index.cjs9.js.map +1 -1
  345. package/dist/index.cjs90.js +1 -1
  346. package/dist/index.cjs90.js.map +1 -1
  347. package/dist/index.cjs91.js +1 -1
  348. package/dist/index.cjs91.js.map +1 -1
  349. package/dist/index.cjs92.js +1 -1
  350. package/dist/index.cjs92.js.map +1 -1
  351. package/dist/index.cjs93.js +1 -1
  352. package/dist/index.cjs93.js.map +1 -1
  353. package/dist/index.cjs94.js +1 -1
  354. package/dist/index.cjs94.js.map +1 -1
  355. package/dist/index.cjs95.js +1 -1
  356. package/dist/index.cjs95.js.map +1 -1
  357. package/dist/index.cjs96.js +1 -1
  358. package/dist/index.cjs96.js.map +1 -1
  359. package/dist/index.cjs97.js +1 -1
  360. package/dist/index.cjs97.js.map +1 -1
  361. package/dist/index.cjs98.js +1 -1
  362. package/dist/index.cjs98.js.map +1 -1
  363. package/dist/index.cjs99.js +1 -1
  364. package/dist/index.cjs99.js.map +1 -1
  365. package/dist/index.es.js +8 -6
  366. package/dist/index.es.js.map +1 -1
  367. package/dist/index.es10.js +39 -2102
  368. package/dist/index.es10.js.map +1 -1
  369. package/dist/index.es100.js +10 -6
  370. package/dist/index.es100.js.map +1 -1
  371. package/dist/index.es101.js +3 -6
  372. package/dist/index.es101.js.map +1 -1
  373. package/dist/index.es102.js +5 -6
  374. package/dist/index.es102.js.map +1 -1
  375. package/dist/index.es103.js +2 -7
  376. package/dist/index.es103.js.map +1 -1
  377. package/dist/index.es104.js +8 -4
  378. package/dist/index.es104.js.map +1 -1
  379. package/dist/index.es105.js +8 -4
  380. package/dist/index.es105.js.map +1 -1
  381. package/dist/index.es106.js +8 -4
  382. package/dist/index.es106.js.map +1 -1
  383. package/dist/index.es107.js +8 -6
  384. package/dist/index.es107.js.map +1 -1
  385. package/dist/index.es108.js +3 -6
  386. package/dist/index.es108.js.map +1 -1
  387. package/dist/index.es109.js +3 -3
  388. package/dist/index.es109.js.map +1 -1
  389. package/dist/index.es11.js +2102 -19
  390. package/dist/index.es11.js.map +1 -1
  391. package/dist/index.es110.js +57 -7
  392. package/dist/index.es110.js.map +1 -1
  393. package/dist/index.es111.js +12 -11
  394. package/dist/index.es111.js.map +1 -1
  395. package/dist/index.es112.js +5 -10
  396. package/dist/index.es112.js.map +1 -1
  397. package/dist/index.es113.js +4 -2
  398. package/dist/index.es113.js.map +1 -1
  399. package/dist/index.es114.js +7 -4
  400. package/dist/index.es114.js.map +1 -1
  401. package/dist/index.es115.js +16 -2
  402. package/dist/index.es115.js.map +1 -1
  403. package/dist/index.es116.js +13 -7
  404. package/dist/index.es116.js.map +1 -1
  405. package/dist/index.es117.js +4 -7
  406. package/dist/index.es117.js.map +1 -1
  407. package/dist/index.es118.js +4 -6
  408. package/dist/index.es118.js.map +1 -1
  409. package/dist/index.es119.js +8 -8
  410. package/dist/index.es119.js.map +1 -1
  411. package/dist/index.es12.js +19 -12
  412. package/dist/index.es12.js.map +1 -1
  413. package/dist/index.es120.js +6 -3
  414. package/dist/index.es120.js.map +1 -1
  415. package/dist/index.es121.js +7 -4
  416. package/dist/index.es121.js.map +1 -1
  417. package/dist/index.es122.js +8 -57
  418. package/dist/index.es122.js.map +1 -1
  419. package/dist/index.es123.js +3 -14
  420. package/dist/index.es123.js.map +1 -1
  421. package/dist/index.es124.js +3 -6
  422. package/dist/index.es124.js.map +1 -1
  423. package/dist/index.es125.js +10 -5
  424. package/dist/index.es125.js.map +1 -1
  425. package/dist/index.es126.js +5 -9
  426. package/dist/index.es126.js.map +1 -1
  427. package/dist/index.es127.js +4 -17
  428. package/dist/index.es127.js.map +1 -1
  429. package/dist/index.es128.js +8 -13
  430. package/dist/index.es128.js.map +1 -1
  431. package/dist/index.es129.js +5 -4
  432. package/dist/index.es129.js.map +1 -1
  433. package/dist/index.es13.js +12 -6
  434. package/dist/index.es13.js.map +1 -1
  435. package/dist/index.es130.js +16 -5
  436. package/dist/index.es130.js.map +1 -1
  437. package/dist/index.es131.js +11 -8
  438. package/dist/index.es131.js.map +1 -1
  439. package/dist/index.es132.js +3 -7
  440. package/dist/index.es132.js.map +1 -1
  441. package/dist/index.es133.js +3 -7
  442. package/dist/index.es133.js.map +1 -1
  443. package/dist/index.es134.js +8 -8
  444. package/dist/index.es134.js.map +1 -1
  445. package/dist/index.es135.js +7 -3
  446. package/dist/index.es135.js.map +1 -1
  447. package/dist/index.es136.js +13 -3
  448. package/dist/index.es136.js.map +1 -1
  449. package/dist/index.es137.js +11 -9
  450. package/dist/index.es137.js.map +1 -1
  451. package/dist/index.es138.js +7 -5
  452. package/dist/index.es138.js.map +1 -1
  453. package/dist/index.es139.js +6 -4
  454. package/dist/index.es139.js.map +1 -1
  455. package/dist/index.es14.js +6 -5
  456. package/dist/index.es14.js.map +1 -1
  457. package/dist/index.es140.js +5 -8
  458. package/dist/index.es140.js.map +1 -1
  459. package/dist/index.es141.js +16 -5
  460. package/dist/index.es141.js.map +1 -1
  461. package/dist/index.es142.js +16 -16
  462. package/dist/index.es142.js.map +1 -1
  463. package/dist/index.es143.js +4 -11
  464. package/dist/index.es143.js.map +1 -1
  465. package/dist/index.es144.js +17 -3
  466. package/dist/index.es144.js.map +1 -1
  467. package/dist/index.es145.js +23 -3
  468. package/dist/index.es145.js.map +1 -1
  469. package/dist/index.es146.js +6 -9
  470. package/dist/index.es146.js.map +1 -1
  471. package/dist/index.es147.js +5 -7
  472. package/dist/index.es147.js.map +1 -1
  473. package/dist/index.es148.js +6 -13
  474. package/dist/index.es148.js.map +1 -1
  475. package/dist/index.es149.js +5 -13
  476. package/dist/index.es149.js.map +1 -1
  477. package/dist/index.es15.js +6 -28
  478. package/dist/index.es15.js.map +1 -1
  479. package/dist/index.es150.js +11 -6
  480. package/dist/index.es150.js.map +1 -1
  481. package/dist/index.es151.js +4 -4
  482. package/dist/index.es151.js.map +1 -1
  483. package/dist/index.es152.js +4 -5
  484. package/dist/index.es152.js.map +1 -1
  485. package/dist/index.es153.js +4 -16
  486. package/dist/index.es153.js.map +1 -1
  487. package/dist/index.es154.js +4 -16
  488. package/dist/index.es154.js.map +1 -1
  489. package/dist/index.es155.js +4 -4
  490. package/dist/index.es155.js.map +1 -1
  491. package/dist/index.es156.js +4 -16
  492. package/dist/index.es156.js.map +1 -1
  493. package/dist/index.es157.js +4 -22
  494. package/dist/index.es157.js.map +1 -1
  495. package/dist/index.es158.js +13 -6
  496. package/dist/index.es158.js.map +1 -1
  497. package/dist/index.es159.js +15 -5
  498. package/dist/index.es159.js.map +1 -1
  499. package/dist/index.es16.js +6 -8
  500. package/dist/index.es16.js.map +1 -1
  501. package/dist/index.es160.js +9 -6
  502. package/dist/index.es160.js.map +1 -1
  503. package/dist/index.es161.js +7 -5
  504. package/dist/index.es161.js.map +1 -1
  505. package/dist/index.es162.js +6 -11
  506. package/dist/index.es162.js.map +1 -1
  507. package/dist/index.es163.js +8 -5
  508. package/dist/index.es163.js.map +1 -1
  509. package/dist/index.es164.js +27 -4
  510. package/dist/index.es164.js.map +1 -1
  511. package/dist/index.es165.js +54 -4
  512. package/dist/index.es165.js.map +1 -1
  513. package/dist/index.es166.js +47 -6
  514. package/dist/index.es166.js.map +1 -1
  515. package/dist/index.es167.js +38 -6
  516. package/dist/index.es167.js.map +1 -1
  517. package/dist/index.es168.js +11 -6
  518. package/dist/index.es168.js.map +1 -1
  519. package/dist/index.es169.js +11 -6
  520. package/dist/index.es169.js.map +1 -1
  521. package/dist/index.es17.js +5 -5
  522. package/dist/index.es17.js.map +1 -1
  523. package/dist/index.es170.js +29 -14
  524. package/dist/index.es170.js.map +1 -1
  525. package/dist/index.es171.js +11 -16
  526. package/dist/index.es171.js.map +1 -1
  527. package/dist/index.es172.js +13 -10
  528. package/dist/index.es172.js.map +1 -1
  529. package/dist/index.es173.js +50 -6
  530. package/dist/index.es173.js.map +1 -1
  531. package/dist/index.es174.js +64 -6
  532. package/dist/index.es174.js.map +1 -1
  533. package/dist/index.es175.js +4 -9
  534. package/dist/index.es175.js.map +1 -1
  535. package/dist/index.es18.js +28 -10
  536. package/dist/index.es18.js.map +1 -1
  537. package/dist/index.es19.js +8 -17
  538. package/dist/index.es19.js.map +1 -1
  539. package/dist/index.es191.js +2 -2
  540. package/dist/index.es199.js +1 -1
  541. package/dist/index.es2.js +3 -3
  542. package/dist/index.es20.js +5 -5
  543. package/dist/index.es20.js.map +1 -1
  544. package/dist/index.es200.js +1 -1
  545. package/dist/index.es201.js +1 -1
  546. package/dist/index.es202.js +1 -1
  547. package/dist/index.es203.js +1 -1
  548. package/dist/index.es205.js +2 -2
  549. package/dist/index.es206.js +2 -2
  550. package/dist/index.es208.js +2 -2
  551. package/dist/index.es209.js +2 -2
  552. package/dist/index.es21.js +9 -4
  553. package/dist/index.es21.js.map +1 -1
  554. package/dist/index.es211.js +2 -2
  555. package/dist/index.es213.js +1 -1
  556. package/dist/index.es215.js +1 -1
  557. package/dist/index.es216.js +6 -6
  558. package/dist/index.es217.js +1 -1
  559. package/dist/index.es218.js +2 -2
  560. package/dist/index.es22.js +17 -5
  561. package/dist/index.es22.js.map +1 -1
  562. package/dist/index.es220.js +2 -2
  563. package/dist/index.es221.js +1 -1
  564. package/dist/index.es222.js +1 -1
  565. package/dist/index.es223.js +1 -1
  566. package/dist/index.es225.js +1 -1
  567. package/dist/index.es226.js +3 -46
  568. package/dist/index.es226.js.map +1 -1
  569. package/dist/index.es227.js +7 -22
  570. package/dist/index.es227.js.map +1 -1
  571. package/dist/index.es228.js +4 -6
  572. package/dist/index.es228.js.map +1 -1
  573. package/dist/index.es229.js +46 -3
  574. package/dist/index.es229.js.map +1 -1
  575. package/dist/index.es23.js +5 -7
  576. package/dist/index.es23.js.map +1 -1
  577. package/dist/index.es230.js +22 -5
  578. package/dist/index.es230.js.map +1 -1
  579. package/dist/index.es236.js +1 -1
  580. package/dist/index.es24.js +5 -7
  581. package/dist/index.es24.js.map +1 -1
  582. package/dist/index.es246.js +1 -1
  583. package/dist/index.es249.js +2 -15
  584. package/dist/index.es249.js.map +1 -1
  585. package/dist/index.es25.js +5 -4
  586. package/dist/index.es25.js.map +1 -1
  587. package/dist/index.es250.js +15 -2
  588. package/dist/index.es250.js.map +1 -1
  589. package/dist/index.es26.js +7 -4
  590. package/dist/index.es26.js.map +1 -1
  591. package/dist/index.es27.js +6 -6
  592. package/dist/index.es27.js.map +1 -1
  593. package/dist/index.es28.js +4 -15
  594. package/dist/index.es28.js.map +1 -1
  595. package/dist/index.es29.js +4 -12
  596. package/dist/index.es29.js.map +1 -1
  597. package/dist/index.es3.js +22 -63
  598. package/dist/index.es3.js.map +1 -1
  599. package/dist/index.es30.js +7 -15
  600. package/dist/index.es30.js.map +1 -1
  601. package/dist/index.es31.js +14 -6
  602. package/dist/index.es31.js.map +1 -1
  603. package/dist/index.es32.js +12 -5
  604. package/dist/index.es32.js.map +1 -1
  605. package/dist/index.es33.js +15 -4
  606. package/dist/index.es33.js.map +1 -1
  607. package/dist/index.es34.js +6 -17
  608. package/dist/index.es34.js.map +1 -1
  609. package/dist/index.es35.js +5 -18
  610. package/dist/index.es35.js.map +1 -1
  611. package/dist/index.es36.js +4 -14
  612. package/dist/index.es36.js.map +1 -1
  613. package/dist/index.es37.js +17 -5
  614. package/dist/index.es37.js.map +1 -1
  615. package/dist/index.es38.js +17 -6
  616. package/dist/index.es38.js.map +1 -1
  617. package/dist/index.es39.js +13 -9
  618. package/dist/index.es39.js.map +1 -1
  619. package/dist/index.es4.js +8 -8
  620. package/dist/index.es40.js +6 -4
  621. package/dist/index.es40.js.map +1 -1
  622. package/dist/index.es41.js +6 -18
  623. package/dist/index.es41.js.map +1 -1
  624. package/dist/index.es42.js +10 -6
  625. package/dist/index.es42.js.map +1 -1
  626. package/dist/index.es43.js +4 -6
  627. package/dist/index.es43.js.map +1 -1
  628. package/dist/index.es44.js +21 -1
  629. package/dist/index.es44.js.map +1 -1
  630. package/dist/index.es45.js +1 -39
  631. package/dist/index.es45.js.map +1 -1
  632. package/dist/index.es46.js +1 -1
  633. package/dist/index.es5.js +59 -24
  634. package/dist/index.es5.js.map +1 -1
  635. package/dist/index.es52.js +2 -6
  636. package/dist/index.es52.js.map +1 -1
  637. package/dist/index.es53.js +30 -2
  638. package/dist/index.es53.js.map +1 -1
  639. package/dist/index.es54.js +602 -2
  640. package/dist/index.es54.js.map +1 -1
  641. package/dist/index.es55.js +5 -29
  642. package/dist/index.es55.js.map +1 -1
  643. package/dist/index.es56.js +2 -602
  644. package/dist/index.es56.js.map +1 -1
  645. package/dist/index.es6.js +6 -6
  646. package/dist/index.es60.js +2 -28
  647. package/dist/index.es60.js.map +1 -1
  648. package/dist/index.es61.js +2 -55
  649. package/dist/index.es61.js.map +1 -1
  650. package/dist/index.es62.js +275 -48
  651. package/dist/index.es62.js.map +1 -1
  652. package/dist/index.es63.js +15 -37
  653. package/dist/index.es63.js.map +1 -1
  654. package/dist/index.es64.js +20 -11
  655. package/dist/index.es64.js.map +1 -1
  656. package/dist/index.es65.js +6 -11
  657. package/dist/index.es65.js.map +1 -1
  658. package/dist/index.es66.js +5 -29
  659. package/dist/index.es66.js.map +1 -1
  660. package/dist/index.es67.js +5 -11
  661. package/dist/index.es67.js.map +1 -1
  662. package/dist/index.es68.js +5 -12
  663. package/dist/index.es68.js.map +1 -1
  664. package/dist/index.es69.js +3 -50
  665. package/dist/index.es69.js.map +1 -1
  666. package/dist/index.es7.js +7 -7
  667. package/dist/index.es70.js +3 -65
  668. package/dist/index.es70.js.map +1 -1
  669. package/dist/index.es71.js +3 -4
  670. package/dist/index.es71.js.map +1 -1
  671. package/dist/index.es72.js +3 -2
  672. package/dist/index.es72.js.map +1 -1
  673. package/dist/index.es73.js +3 -2
  674. package/dist/index.es73.js.map +1 -1
  675. package/dist/index.es74.js +3 -273
  676. package/dist/index.es74.js.map +1 -1
  677. package/dist/index.es75.js +3 -15
  678. package/dist/index.es75.js.map +1 -1
  679. package/dist/index.es76.js +3 -19
  680. package/dist/index.es76.js.map +1 -1
  681. package/dist/index.es77.js +9 -4
  682. package/dist/index.es77.js.map +1 -1
  683. package/dist/index.es78.js +4 -4
  684. package/dist/index.es78.js.map +1 -1
  685. package/dist/index.es79.js +5 -3
  686. package/dist/index.es79.js.map +1 -1
  687. package/dist/index.es8.js +2 -2
  688. package/dist/index.es80.js +5 -4
  689. package/dist/index.es80.js.map +1 -1
  690. package/dist/index.es81.js +9 -3
  691. package/dist/index.es81.js.map +1 -1
  692. package/dist/index.es82.js +12 -3
  693. package/dist/index.es82.js.map +1 -1
  694. package/dist/index.es83.js +13 -3
  695. package/dist/index.es83.js.map +1 -1
  696. package/dist/index.es84.js +86 -3
  697. package/dist/index.es84.js.map +1 -1
  698. package/dist/index.es85.js +2 -2
  699. package/dist/index.es85.js.map +1 -1
  700. package/dist/index.es86.js +15 -3
  701. package/dist/index.es86.js.map +1 -1
  702. package/dist/index.es87.js +12 -3
  703. package/dist/index.es87.js.map +1 -1
  704. package/dist/index.es88.js +7 -3
  705. package/dist/index.es88.js.map +1 -1
  706. package/dist/index.es89.js +6 -9
  707. package/dist/index.es89.js.map +1 -1
  708. package/dist/index.es9.js +18 -10
  709. package/dist/index.es9.js.map +1 -1
  710. package/dist/index.es90.js +7 -4
  711. package/dist/index.es90.js.map +1 -1
  712. package/dist/index.es91.js +7 -5
  713. package/dist/index.es91.js.map +1 -1
  714. package/dist/index.es92.js +4 -6
  715. package/dist/index.es92.js.map +1 -1
  716. package/dist/index.es93.js +4 -10
  717. package/dist/index.es93.js.map +1 -1
  718. package/dist/index.es94.js +4 -12
  719. package/dist/index.es94.js.map +1 -1
  720. package/dist/index.es95.js +5 -11
  721. package/dist/index.es95.js.map +1 -1
  722. package/dist/index.es96.js +6 -85
  723. package/dist/index.es96.js.map +1 -1
  724. package/dist/index.es97.js +4 -3
  725. package/dist/index.es97.js.map +1 -1
  726. package/dist/index.es98.js +7 -14
  727. package/dist/index.es98.js.map +1 -1
  728. package/dist/index.es99.js +11 -10
  729. package/dist/index.es99.js.map +1 -1
  730. package/package.json +2 -2
  731. package/src/components/GeoJsonLayer.js +10 -66
  732. package/src/components/LocationMarkers.js +70 -10
  733. package/src/index.js +1 -0
  734. package/src/utils/Map.js +29 -1
  735. package/src/utils/MapStyles.js +9 -3
  736. package/types/components/GeoJsonLayer.js.flow +10 -66
  737. package/types/components/LocationMarkers.js.flow +70 -10
  738. package/types/index.js.flow +1 -0
  739. package/types/utils/Map.js.flow +29 -1
  740. package/types/utils/MapStyles.js.flow +9 -3
@@ -1,13 +1,11 @@
1
1
  // @flow
2
2
 
3
3
  import React, {
4
- useCallback,
5
4
  useEffect,
6
- useMemo,
7
5
  useState
8
6
  } from 'react';
9
7
  import { Layer, Source } from 'react-map-gl';
10
- import _ from 'underscore';
8
+ import MapStyles from '../utils/MapStyles';
11
9
 
12
10
  type Props = {
13
11
  data?: { [key: string]: any },
@@ -17,69 +15,9 @@ type Props = {
17
15
  url?: string
18
16
  };
19
17
 
20
- const DEFAULT_COLOR = '#CC3333';
21
- const HIGHLIGHT_COLOR = '#990000';
22
-
23
- const DEFAULT_FILL_STYLES = {
24
- 'fill-color': DEFAULT_COLOR,
25
- 'fill-opacity': 0.2
26
- };
27
-
28
- const DEFAULT_LINE_STYLES = {
29
- 'line-color': HIGHLIGHT_COLOR,
30
- 'line-opacity': 0.6
31
- };
32
-
33
- const DEFAULT_POINT_STYLES = {
34
- 'circle-radius': [
35
- 'interpolate',
36
- ['linear'],
37
- ['number', ['get', 'point_count'], 1],
38
- 0, 4,
39
- 10, 14
40
- ],
41
- 'circle-stroke-width': 1,
42
- 'circle-color': DEFAULT_COLOR,
43
- 'circle-stroke-color': HIGHLIGHT_COLOR
44
- };
45
-
46
18
  const GeoJsonLayer = (props: Props) => {
47
19
  const [data, setData] = useState(props.data);
48
20
 
49
- /**
50
- * Returns the layer style for the passed style and default.
51
- *
52
- * @type {function(*, *): *}
53
- */
54
- const getLayerStyles = useCallback((style, defaultStyle) => _.defaults(style, defaultStyle), []);
55
-
56
- /**
57
- * Sets the fill layer style.
58
- *
59
- * @type {*}
60
- */
61
- const fillStyle = useMemo(() => (
62
- getLayerStyles(props.fillStyle, DEFAULT_FILL_STYLES)
63
- ), [getLayerStyles, props.fillStyle]);
64
-
65
- /**
66
- * Sets the line layer style.
67
- *
68
- * @type {*}
69
- */
70
- const lineStyle = useMemo(() => (
71
- getLayerStyles(props.lineStyle, DEFAULT_LINE_STYLES)
72
- ), [getLayerStyles, props.lineStyle]);
73
-
74
- /**
75
- * Sets the point layer style.
76
- *
77
- * @type {*}
78
- */
79
- const pointStyle = useMemo(() => (
80
- getLayerStyles(props.pointStyle, DEFAULT_POINT_STYLES)
81
- ), [getLayerStyles, props.pointStyle]);
82
-
83
21
  /**
84
22
  * If the data is passed as a URL, fetches the passed URL and sets the response on the state.
85
23
  */
@@ -98,21 +36,27 @@ const GeoJsonLayer = (props: Props) => {
98
36
  >
99
37
  <Layer
100
38
  filter={['!=', '$type', 'Point']}
101
- paint={fillStyle}
39
+ paint={props.fillStyle}
102
40
  type='fill'
103
41
  />
104
42
  <Layer
105
43
  filter={['!=', '$type', 'Point']}
106
- paint={lineStyle}
44
+ paint={props.lineStyle}
107
45
  type='line'
108
46
  />
109
47
  <Layer
110
48
  filter={['==', '$type', 'Point']}
111
- paint={pointStyle}
49
+ paint={props.pointStyle}
112
50
  type='circle'
113
51
  />
114
52
  </Source>
115
53
  );
116
54
  };
117
55
 
56
+ GeoJsonLayer.defaultProps = {
57
+ fillStyle: MapStyles.fill,
58
+ pointStyle: MapStyles.point,
59
+ strokeStyle: MapStyles.stroke
60
+ };
61
+
118
62
  export default GeoJsonLayer;
@@ -1,8 +1,9 @@
1
1
  // @flow
2
2
 
3
- import { MixedGeoJSONLayer, PulsingMarkerLayer, useMap } from '@peripleo/maplibre';
4
- import React, { useEffect } from 'react';
5
- import { DEFAULT_FILL_STYLE, DEFAULT_POINT_STYLE, DEFAULT_STROKE_STYLE } from '../utils/MapStyles';
3
+ import { GeoJSONLayer, PulsingMarkerLayer, useMap } from '@peripleo/maplibre';
4
+ import React, { useEffect, useMemo } from 'react';
5
+ import _ from 'underscore';
6
+ import MapStyles from '../utils/MapStyles';
6
7
  import MapUtils from '../utils/Map';
7
8
 
8
9
  type Props = {
@@ -11,11 +12,47 @@ type Props = {
11
12
  */
12
13
  animate?: boolean,
13
14
 
15
+ /**
16
+ * (Optional) data to pass to the fitToBounds function.
17
+ */
18
+ boundingBoxData?: any,
19
+
20
+ /**
21
+ * (Optional) options to pass to the fitToBounds function.
22
+ * See [spec](https://maplibre.org/maplibre-gl-js/docs/API/types/FitBoundsOptions/).
23
+ */
24
+ boundingBoxOptions?: any,
25
+
14
26
  /**
15
27
  * The number of miles to buffer the GeoJSON data.
16
28
  */
17
29
  buffer: number,
18
30
 
31
+ /**
32
+ * If true, markers will be clustered before the specified zoom level.
33
+ */
34
+ cluster?: boolean,
35
+
36
+ /**
37
+ * Max zoom to cluster points on.
38
+ */
39
+ clusterMaxZoom?: number,
40
+
41
+ /**
42
+ * Minimum number of points necessary to form a cluster.
43
+ */
44
+ clusterMinPoints?: number,
45
+
46
+ /**
47
+ * An object defining custom properties on the generated clusters.
48
+ */
49
+ clusterProperties?: any,
50
+
51
+ /**
52
+ * Radius of each cluster when clustering point.
53
+ */
54
+ clusterRadius?: number,
55
+
19
56
  /**
20
57
  * The GeoJSON data representing the location.
21
58
  */
@@ -26,6 +63,11 @@ type Props = {
26
63
  */
27
64
  fillStyle?: { [key: string]: any },
28
65
 
66
+ /**
67
+ * If `true`, the map will fit the bounding box around the passed data.
68
+ */
69
+ fitBoundingBox?: boolean,
70
+
29
71
  /**
30
72
  * An ID value to apply to the layer.
31
73
  */
@@ -50,24 +92,41 @@ const DEFAULT_BUFFER = 2;
50
92
  const LocationMarkers = (props: Props) => {
51
93
  const map = useMap();
52
94
 
95
+ /**
96
+ * Memo-izes the data prop.
97
+ *
98
+ * @type {{[p: string]: *}}
99
+ */
100
+ const data = useMemo(() => (_.isEmpty(props.data) ? null : props.data), [props.data]);
101
+
53
102
  /**
54
103
  * Sets the bounding box on the map.
55
104
  */
56
105
  useEffect(() => {
57
- if (map && props.data) {
106
+ if (map && data && props.fitBoundingBox) {
58
107
  const boundingBox = MapUtils.getBoundingBox(props.data, props.buffer);
59
- map.fitBounds(boundingBox);
108
+ map.fitBounds(boundingBox, props.boundingBoxOptions, props.boundingBoxData);
60
109
  }
61
- }, [map, props.buffer, props.data]);
110
+ }, [map, props.buffer, props.data, props.boundingBoxData, props.boundingBoxOptions, props.fitBoundingBox]);
111
+
112
+ if (!data) {
113
+ return null;
114
+ }
62
115
 
63
116
  return (
64
117
  <>
65
118
  { props.animate && (
66
119
  <PulsingMarkerLayer
67
120
  data={props.data}
121
+ id={props.layerId}
68
122
  />
69
123
  )}
70
- <MixedGeoJSONLayer
124
+ <GeoJSONLayer
125
+ cluster={props.cluster}
126
+ clusterMaxZoom={props.clusterMaxZoom}
127
+ clusterMinPoints={props.clusterMinPoints}
128
+ clusterProperties={props.clusterProperties}
129
+ clusterRadius={props.clusterRadius}
71
130
  data={props.data}
72
131
  fillStyle={props.fillStyle}
73
132
  id={props.layerId}
@@ -80,9 +139,10 @@ const LocationMarkers = (props: Props) => {
80
139
 
81
140
  LocationMarkers.defaultProps = {
82
141
  buffer: DEFAULT_BUFFER,
83
- fillStyle: DEFAULT_FILL_STYLE,
84
- pointStyle: DEFAULT_POINT_STYLE,
85
- strokeStyle: DEFAULT_STROKE_STYLE
142
+ fillStyle: MapStyles.fill,
143
+ fitBoundingBox: true,
144
+ pointStyle: MapStyles.point,
145
+ strokeStyle: MapStyles.stroke
86
146
  };
87
147
 
88
148
  export default LocationMarkers;
package/src/index.js CHANGED
@@ -11,3 +11,4 @@ export { default as RasterLayer } from './components/RasterLayer';
11
11
 
12
12
  // Utils
13
13
  export { default as Map } from './utils/Map';
14
+ export { default as MapStyles } from './utils/MapStyles';
package/src/utils/Map.js CHANGED
@@ -2,6 +2,11 @@
2
2
 
3
3
  import { bbox, bboxPolygon, buffer } from '@turf/turf';
4
4
 
5
+ const MIN_LATITUDE = -90;
6
+ const MAX_LATITUDE = 90;
7
+ const MIN_LONGITUDE = -180;
8
+ const MAX_LONGITUDE = 180;
9
+
5
10
  /**
6
11
  * Returns a bounding box for the passed geometry (with optional buffer).
7
12
  *
@@ -30,6 +35,29 @@ const getBoundingBox = (geometry, bufferDistance = null) => {
30
35
  return bbox(polygonBuffer);
31
36
  };
32
37
 
38
+ /**
39
+ * Returns true if the passed coordinates are valid.
40
+ *
41
+ * @param coordinates
42
+ *
43
+ * @returns {boolean}
44
+ */
45
+ const validateCoordinates = (coordinates) => {
46
+ let valid = false;
47
+
48
+ if (coordinates) {
49
+ const [latitude, longitude] = coordinates;
50
+
51
+ valid = latitude >= MIN_LATITUDE
52
+ && latitude <= MAX_LATITUDE
53
+ && longitude >= MIN_LONGITUDE
54
+ && longitude <= MAX_LONGITUDE;
55
+ }
56
+
57
+ return valid;
58
+ };
59
+
33
60
  export default {
34
- getBoundingBox
61
+ getBoundingBox,
62
+ validateCoordinates
35
63
  };
@@ -1,6 +1,6 @@
1
1
  // @flow
2
2
 
3
- export const DEFAULT_POINT_STYLE = {
3
+ const point = {
4
4
  type: 'circle',
5
5
  paint: {
6
6
  'circle-radius': [
@@ -21,7 +21,7 @@ export const DEFAULT_POINT_STYLE = {
21
21
  }
22
22
  };
23
23
 
24
- export const DEFAULT_FILL_STYLE = {
24
+ const fill = {
25
25
  type: 'fill',
26
26
  paint: {
27
27
  'fill-color': '#ff623b',
@@ -29,10 +29,16 @@ export const DEFAULT_FILL_STYLE = {
29
29
  }
30
30
  };
31
31
 
32
- export const DEFAULT_STROKE_STYLE = {
32
+ const stroke = {
33
33
  type: 'line',
34
34
  paint: {
35
35
  'line-color': '#ff623b',
36
36
  'line-opacity': 0.6
37
37
  }
38
38
  };
39
+
40
+ export default {
41
+ point,
42
+ fill,
43
+ stroke
44
+ };
@@ -1,13 +1,11 @@
1
1
  // @flow
2
2
 
3
3
  import React, {
4
- useCallback,
5
4
  useEffect,
6
- useMemo,
7
5
  useState
8
6
  } from 'react';
9
7
  import { Layer, Source } from 'react-map-gl';
10
- import _ from 'underscore';
8
+ import MapStyles from '../utils/MapStyles';
11
9
 
12
10
  type Props = {
13
11
  data?: { [key: string]: any },
@@ -17,69 +15,9 @@ type Props = {
17
15
  url?: string
18
16
  };
19
17
 
20
- const DEFAULT_COLOR = '#CC3333';
21
- const HIGHLIGHT_COLOR = '#990000';
22
-
23
- const DEFAULT_FILL_STYLES = {
24
- 'fill-color': DEFAULT_COLOR,
25
- 'fill-opacity': 0.2
26
- };
27
-
28
- const DEFAULT_LINE_STYLES = {
29
- 'line-color': HIGHLIGHT_COLOR,
30
- 'line-opacity': 0.6
31
- };
32
-
33
- const DEFAULT_POINT_STYLES = {
34
- 'circle-radius': [
35
- 'interpolate',
36
- ['linear'],
37
- ['number', ['get', 'point_count'], 1],
38
- 0, 4,
39
- 10, 14
40
- ],
41
- 'circle-stroke-width': 1,
42
- 'circle-color': DEFAULT_COLOR,
43
- 'circle-stroke-color': HIGHLIGHT_COLOR
44
- };
45
-
46
18
  const GeoJsonLayer = (props: Props) => {
47
19
  const [data, setData] = useState(props.data);
48
20
 
49
- /**
50
- * Returns the layer style for the passed style and default.
51
- *
52
- * @type {function(*, *): *}
53
- */
54
- const getLayerStyles = useCallback((style, defaultStyle) => _.defaults(style, defaultStyle), []);
55
-
56
- /**
57
- * Sets the fill layer style.
58
- *
59
- * @type {*}
60
- */
61
- const fillStyle = useMemo(() => (
62
- getLayerStyles(props.fillStyle, DEFAULT_FILL_STYLES)
63
- ), [getLayerStyles, props.fillStyle]);
64
-
65
- /**
66
- * Sets the line layer style.
67
- *
68
- * @type {*}
69
- */
70
- const lineStyle = useMemo(() => (
71
- getLayerStyles(props.lineStyle, DEFAULT_LINE_STYLES)
72
- ), [getLayerStyles, props.lineStyle]);
73
-
74
- /**
75
- * Sets the point layer style.
76
- *
77
- * @type {*}
78
- */
79
- const pointStyle = useMemo(() => (
80
- getLayerStyles(props.pointStyle, DEFAULT_POINT_STYLES)
81
- ), [getLayerStyles, props.pointStyle]);
82
-
83
21
  /**
84
22
  * If the data is passed as a URL, fetches the passed URL and sets the response on the state.
85
23
  */
@@ -98,21 +36,27 @@ const GeoJsonLayer = (props: Props) => {
98
36
  >
99
37
  <Layer
100
38
  filter={['!=', '$type', 'Point']}
101
- paint={fillStyle}
39
+ paint={props.fillStyle}
102
40
  type='fill'
103
41
  />
104
42
  <Layer
105
43
  filter={['!=', '$type', 'Point']}
106
- paint={lineStyle}
44
+ paint={props.lineStyle}
107
45
  type='line'
108
46
  />
109
47
  <Layer
110
48
  filter={['==', '$type', 'Point']}
111
- paint={pointStyle}
49
+ paint={props.pointStyle}
112
50
  type='circle'
113
51
  />
114
52
  </Source>
115
53
  );
116
54
  };
117
55
 
56
+ GeoJsonLayer.defaultProps = {
57
+ fillStyle: MapStyles.fill,
58
+ pointStyle: MapStyles.point,
59
+ strokeStyle: MapStyles.stroke
60
+ };
61
+
118
62
  export default GeoJsonLayer;
@@ -1,8 +1,9 @@
1
1
  // @flow
2
2
 
3
- import { MixedGeoJSONLayer, PulsingMarkerLayer, useMap } from '@peripleo/maplibre';
4
- import React, { useEffect } from 'react';
5
- import { DEFAULT_FILL_STYLE, DEFAULT_POINT_STYLE, DEFAULT_STROKE_STYLE } from '../utils/MapStyles';
3
+ import { GeoJSONLayer, PulsingMarkerLayer, useMap } from '@peripleo/maplibre';
4
+ import React, { useEffect, useMemo } from 'react';
5
+ import _ from 'underscore';
6
+ import MapStyles from '../utils/MapStyles';
6
7
  import MapUtils from '../utils/Map';
7
8
 
8
9
  type Props = {
@@ -11,11 +12,47 @@ type Props = {
11
12
  */
12
13
  animate?: boolean,
13
14
 
15
+ /**
16
+ * (Optional) data to pass to the fitToBounds function.
17
+ */
18
+ boundingBoxData?: any,
19
+
20
+ /**
21
+ * (Optional) options to pass to the fitToBounds function.
22
+ * See [spec](https://maplibre.org/maplibre-gl-js/docs/API/types/FitBoundsOptions/).
23
+ */
24
+ boundingBoxOptions?: any,
25
+
14
26
  /**
15
27
  * The number of miles to buffer the GeoJSON data.
16
28
  */
17
29
  buffer: number,
18
30
 
31
+ /**
32
+ * If true, markers will be clustered before the specified zoom level.
33
+ */
34
+ cluster?: boolean,
35
+
36
+ /**
37
+ * Max zoom to cluster points on.
38
+ */
39
+ clusterMaxZoom?: number,
40
+
41
+ /**
42
+ * Minimum number of points necessary to form a cluster.
43
+ */
44
+ clusterMinPoints?: number,
45
+
46
+ /**
47
+ * An object defining custom properties on the generated clusters.
48
+ */
49
+ clusterProperties?: any,
50
+
51
+ /**
52
+ * Radius of each cluster when clustering point.
53
+ */
54
+ clusterRadius?: number,
55
+
19
56
  /**
20
57
  * The GeoJSON data representing the location.
21
58
  */
@@ -26,6 +63,11 @@ type Props = {
26
63
  */
27
64
  fillStyle?: { [key: string]: any },
28
65
 
66
+ /**
67
+ * If `true`, the map will fit the bounding box around the passed data.
68
+ */
69
+ fitBoundingBox?: boolean,
70
+
29
71
  /**
30
72
  * An ID value to apply to the layer.
31
73
  */
@@ -50,24 +92,41 @@ const DEFAULT_BUFFER = 2;
50
92
  const LocationMarkers = (props: Props) => {
51
93
  const map = useMap();
52
94
 
95
+ /**
96
+ * Memo-izes the data prop.
97
+ *
98
+ * @type {{[p: string]: *}}
99
+ */
100
+ const data = useMemo(() => (_.isEmpty(props.data) ? null : props.data), [props.data]);
101
+
53
102
  /**
54
103
  * Sets the bounding box on the map.
55
104
  */
56
105
  useEffect(() => {
57
- if (map && props.data) {
106
+ if (map && data && props.fitBoundingBox) {
58
107
  const boundingBox = MapUtils.getBoundingBox(props.data, props.buffer);
59
- map.fitBounds(boundingBox);
108
+ map.fitBounds(boundingBox, props.boundingBoxOptions, props.boundingBoxData);
60
109
  }
61
- }, [map, props.buffer, props.data]);
110
+ }, [map, props.buffer, props.data, props.boundingBoxData, props.boundingBoxOptions, props.fitBoundingBox]);
111
+
112
+ if (!data) {
113
+ return null;
114
+ }
62
115
 
63
116
  return (
64
117
  <>
65
118
  { props.animate && (
66
119
  <PulsingMarkerLayer
67
120
  data={props.data}
121
+ id={props.layerId}
68
122
  />
69
123
  )}
70
- <MixedGeoJSONLayer
124
+ <GeoJSONLayer
125
+ cluster={props.cluster}
126
+ clusterMaxZoom={props.clusterMaxZoom}
127
+ clusterMinPoints={props.clusterMinPoints}
128
+ clusterProperties={props.clusterProperties}
129
+ clusterRadius={props.clusterRadius}
71
130
  data={props.data}
72
131
  fillStyle={props.fillStyle}
73
132
  id={props.layerId}
@@ -80,9 +139,10 @@ const LocationMarkers = (props: Props) => {
80
139
 
81
140
  LocationMarkers.defaultProps = {
82
141
  buffer: DEFAULT_BUFFER,
83
- fillStyle: DEFAULT_FILL_STYLE,
84
- pointStyle: DEFAULT_POINT_STYLE,
85
- strokeStyle: DEFAULT_STROKE_STYLE
142
+ fillStyle: MapStyles.fill,
143
+ fitBoundingBox: true,
144
+ pointStyle: MapStyles.point,
145
+ strokeStyle: MapStyles.stroke
86
146
  };
87
147
 
88
148
  export default LocationMarkers;
@@ -11,3 +11,4 @@ export { default as RasterLayer } from './components/RasterLayer';
11
11
 
12
12
  // Utils
13
13
  export { default as Map } from './utils/Map';
14
+ export { default as MapStyles } from './utils/MapStyles';
@@ -2,6 +2,11 @@
2
2
 
3
3
  import { bbox, bboxPolygon, buffer } from '@turf/turf';
4
4
 
5
+ const MIN_LATITUDE = -90;
6
+ const MAX_LATITUDE = 90;
7
+ const MIN_LONGITUDE = -180;
8
+ const MAX_LONGITUDE = 180;
9
+
5
10
  /**
6
11
  * Returns a bounding box for the passed geometry (with optional buffer).
7
12
  *
@@ -30,6 +35,29 @@ const getBoundingBox = (geometry, bufferDistance = null) => {
30
35
  return bbox(polygonBuffer);
31
36
  };
32
37
 
38
+ /**
39
+ * Returns true if the passed coordinates are valid.
40
+ *
41
+ * @param coordinates
42
+ *
43
+ * @returns {boolean}
44
+ */
45
+ const validateCoordinates = (coordinates) => {
46
+ let valid = false;
47
+
48
+ if (coordinates) {
49
+ const [latitude, longitude] = coordinates;
50
+
51
+ valid = latitude >= MIN_LATITUDE
52
+ && latitude <= MAX_LATITUDE
53
+ && longitude >= MIN_LONGITUDE
54
+ && longitude <= MAX_LONGITUDE;
55
+ }
56
+
57
+ return valid;
58
+ };
59
+
33
60
  export default {
34
- getBoundingBox
61
+ getBoundingBox,
62
+ validateCoordinates
35
63
  };
@@ -1,6 +1,6 @@
1
1
  // @flow
2
2
 
3
- export const DEFAULT_POINT_STYLE = {
3
+ const point = {
4
4
  type: 'circle',
5
5
  paint: {
6
6
  'circle-radius': [
@@ -21,7 +21,7 @@ export const DEFAULT_POINT_STYLE = {
21
21
  }
22
22
  };
23
23
 
24
- export const DEFAULT_FILL_STYLE = {
24
+ const fill = {
25
25
  type: 'fill',
26
26
  paint: {
27
27
  'fill-color': '#ff623b',
@@ -29,10 +29,16 @@ export const DEFAULT_FILL_STYLE = {
29
29
  }
30
30
  };
31
31
 
32
- export const DEFAULT_STROKE_STYLE = {
32
+ const stroke = {
33
33
  type: 'line',
34
34
  paint: {
35
35
  'line-color': '#ff623b',
36
36
  'line-opacity': 0.6
37
37
  }
38
38
  };
39
+
40
+ export default {
41
+ point,
42
+ fill,
43
+ stroke
44
+ };