ol 9.2.5-sh.1 → 10.0.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 (674) hide show
  1. package/Collection.d.ts +1 -1
  2. package/Collection.d.ts.map +1 -1
  3. package/DataTile.d.ts +15 -1
  4. package/DataTile.d.ts.map +1 -1
  5. package/DataTile.js +26 -1
  6. package/Feature.d.ts +1 -1
  7. package/Feature.d.ts.map +1 -1
  8. package/Geolocation.d.ts +2 -2
  9. package/Geolocation.d.ts.map +1 -1
  10. package/Geolocation.js +1 -0
  11. package/Image.d.ts +4 -4
  12. package/Image.d.ts.map +1 -1
  13. package/ImageCanvas.d.ts +2 -1
  14. package/ImageCanvas.d.ts.map +1 -1
  15. package/ImageCanvas.js +2 -0
  16. package/ImageTile.d.ts.map +1 -1
  17. package/ImageTile.js +1 -1
  18. package/Map.d.ts +5 -4
  19. package/Map.d.ts.map +1 -1
  20. package/Map.js +15 -14
  21. package/MapBrowserEvent.d.ts +4 -2
  22. package/MapBrowserEvent.d.ts.map +1 -1
  23. package/MapBrowserEvent.js +4 -0
  24. package/MapBrowserEventHandler.d.ts +4 -1
  25. package/MapBrowserEventHandler.d.ts.map +1 -1
  26. package/MapBrowserEventHandler.js +4 -0
  27. package/MapBrowserEventType.d.ts +1 -1
  28. package/MapEvent.d.ts.map +1 -1
  29. package/MapEventType.d.ts +1 -1
  30. package/Object.d.ts.map +1 -1
  31. package/ObjectEventType.d.ts +1 -1
  32. package/Observable.d.ts +2 -2
  33. package/Observable.d.ts.map +1 -1
  34. package/Overlay.d.ts +2 -2
  35. package/Overlay.d.ts.map +1 -1
  36. package/Overlay.js +2 -2
  37. package/README.md +1 -1
  38. package/Tile.d.ts +10 -30
  39. package/Tile.d.ts.map +1 -1
  40. package/Tile.js +6 -79
  41. package/TileCache.d.ts +2 -1
  42. package/TileCache.d.ts.map +1 -1
  43. package/TileCache.js +4 -0
  44. package/TileQueue.d.ts +3 -2
  45. package/TileQueue.d.ts.map +1 -1
  46. package/TileQueue.js +7 -4
  47. package/VectorRenderTile.d.ts +11 -16
  48. package/VectorRenderTile.d.ts.map +1 -1
  49. package/VectorRenderTile.js +19 -24
  50. package/VectorTile.d.ts +20 -17
  51. package/VectorTile.d.ts.map +1 -1
  52. package/VectorTile.js +14 -10
  53. package/View.d.ts +1 -1
  54. package/View.d.ts.map +1 -1
  55. package/array.d.ts +2 -2
  56. package/array.d.ts.map +1 -1
  57. package/asserts.d.ts.map +1 -1
  58. package/centerconstraint.d.ts.map +1 -1
  59. package/color.d.ts.map +1 -1
  60. package/color.js +2 -2
  61. package/console.d.ts +1 -1
  62. package/console.d.ts.map +1 -1
  63. package/control/Attribution.d.ts.map +1 -1
  64. package/control/Attribution.js +5 -12
  65. package/control/Control.d.ts.map +1 -1
  66. package/control/Control.js +4 -6
  67. package/control/FullScreen.d.ts +1 -1
  68. package/control/FullScreen.d.ts.map +1 -1
  69. package/control/FullScreen.js +1 -0
  70. package/control/MousePosition.d.ts +1 -1
  71. package/control/MousePosition.d.ts.map +1 -1
  72. package/control/MousePosition.js +1 -0
  73. package/control/OverviewMap.d.ts.map +1 -1
  74. package/control/OverviewMap.js +16 -13
  75. package/control/Rotate.d.ts +4 -1
  76. package/control/Rotate.d.ts.map +1 -1
  77. package/control/Rotate.js +3 -0
  78. package/control/ScaleLine.d.ts +3 -3
  79. package/control/ScaleLine.d.ts.map +1 -1
  80. package/control/ZoomSlider.d.ts.map +1 -1
  81. package/control/ZoomSlider.js +1 -0
  82. package/control/ZoomToExtent.d.ts.map +1 -1
  83. package/control/defaults.d.ts.map +1 -1
  84. package/coordinate.d.ts +1 -1
  85. package/coordinate.d.ts.map +1 -1
  86. package/css.d.ts.map +1 -1
  87. package/dist/ol.d.ts +10 -8
  88. package/dist/ol.d.ts.map +1 -1
  89. package/dist/ol.js +1 -3
  90. package/dist/ol.js.map +1 -1
  91. package/dom.d.ts +0 -5
  92. package/dom.d.ts.map +1 -1
  93. package/dom.js +1 -9
  94. package/events/SnapEvent.d.ts.map +1 -1
  95. package/events/Target.d.ts.map +1 -1
  96. package/events/Target.js +1 -0
  97. package/events/condition.d.ts +2 -2
  98. package/events/condition.d.ts.map +1 -1
  99. package/events/condition.js +1 -1
  100. package/events.d.ts.map +1 -1
  101. package/events.js +6 -4
  102. package/expr/cpu.d.ts +1 -1
  103. package/expr/cpu.d.ts.map +1 -1
  104. package/expr/cpu.js +2 -16
  105. package/expr/expression.d.ts +8 -15
  106. package/expr/expression.d.ts.map +1 -1
  107. package/expr/expression.js +388 -508
  108. package/expr/gpu.d.ts +3 -3
  109. package/expr/gpu.d.ts.map +1 -1
  110. package/expr/gpu.js +1 -14
  111. package/extent.d.ts +2 -2
  112. package/extent.d.ts.map +1 -1
  113. package/featureloader.d.ts +10 -10
  114. package/featureloader.d.ts.map +1 -1
  115. package/featureloader.js +6 -6
  116. package/format/EsriJSON.d.ts +9 -12
  117. package/format/EsriJSON.d.ts.map +1 -1
  118. package/format/EsriJSON.js +7 -0
  119. package/format/Feature.d.ts +14 -14
  120. package/format/Feature.d.ts.map +1 -1
  121. package/format/Feature.js +8 -6
  122. package/format/GML2.d.ts.map +1 -1
  123. package/format/GML2.js +7 -9
  124. package/format/GML3.d.ts +2 -1
  125. package/format/GML3.d.ts.map +1 -1
  126. package/format/GML3.js +23 -31
  127. package/format/GML32.d.ts.map +1 -1
  128. package/format/GML32.js +1 -0
  129. package/format/GMLBase.d.ts.map +1 -1
  130. package/format/GMLBase.js +3 -0
  131. package/format/GPX.d.ts.map +1 -1
  132. package/format/GPX.js +3 -0
  133. package/format/GeoJSON.d.ts +17 -13
  134. package/format/GeoJSON.d.ts.map +1 -1
  135. package/format/GeoJSON.js +25 -17
  136. package/format/IGC.d.ts +1 -1
  137. package/format/IGC.d.ts.map +1 -1
  138. package/format/IGC.js +2 -0
  139. package/format/IIIFInfo.d.ts.map +1 -1
  140. package/format/JSONFeature.d.ts +15 -31
  141. package/format/JSONFeature.d.ts.map +1 -1
  142. package/format/JSONFeature.js +20 -16
  143. package/format/KML.d.ts +6 -6
  144. package/format/KML.d.ts.map +1 -1
  145. package/format/KML.js +5 -1
  146. package/format/MVT.d.ts +15 -13
  147. package/format/MVT.d.ts.map +1 -1
  148. package/format/MVT.js +19 -20
  149. package/format/OSMXML.d.ts.map +1 -1
  150. package/format/OSMXML.js +1 -0
  151. package/format/OWS.d.ts.map +1 -1
  152. package/format/OWS.js +1 -0
  153. package/format/Polyline.d.ts +6 -3
  154. package/format/Polyline.d.ts.map +1 -1
  155. package/format/Polyline.js +6 -0
  156. package/format/TextFeature.d.ts +9 -14
  157. package/format/TextFeature.d.ts.map +1 -1
  158. package/format/TextFeature.js +8 -0
  159. package/format/TopoJSON.d.ts +1 -8
  160. package/format/TopoJSON.d.ts.map +1 -1
  161. package/format/TopoJSON.js +2 -0
  162. package/format/WFS.d.ts.map +1 -1
  163. package/format/WFS.js +3 -0
  164. package/format/WKB.d.ts +9 -5
  165. package/format/WKB.d.ts.map +1 -1
  166. package/format/WKB.js +8 -0
  167. package/format/WKT.d.ts.map +1 -1
  168. package/format/WKT.js +6 -0
  169. package/format/WMSCapabilities.d.ts.map +1 -1
  170. package/format/WMSCapabilities.js +1 -0
  171. package/format/WMSGetFeatureInfo.d.ts.map +1 -1
  172. package/format/WMSGetFeatureInfo.js +1 -0
  173. package/format/WMTSCapabilities.d.ts.map +1 -1
  174. package/format/WMTSCapabilities.js +1 -0
  175. package/format/XMLFeature.d.ts +11 -15
  176. package/format/XMLFeature.d.ts.map +1 -1
  177. package/format/XMLFeature.js +8 -0
  178. package/format/filter/Bbox.d.ts.map +1 -1
  179. package/format/filter/Comparison.d.ts.map +1 -1
  180. package/format/filter/ComparisonBinary.d.ts.map +1 -1
  181. package/format/filter/Contains.d.ts.map +1 -1
  182. package/format/filter/DWithin.d.ts.map +1 -1
  183. package/format/filter/Disjoint.d.ts.map +1 -1
  184. package/format/filter/During.d.ts.map +1 -1
  185. package/format/filter/EqualTo.d.ts.map +1 -1
  186. package/format/filter/Filter.d.ts.map +1 -1
  187. package/format/filter/GreaterThan.d.ts.map +1 -1
  188. package/format/filter/GreaterThanOrEqualTo.d.ts.map +1 -1
  189. package/format/filter/Intersects.d.ts.map +1 -1
  190. package/format/filter/IsBetween.d.ts.map +1 -1
  191. package/format/filter/IsLike.d.ts.map +1 -1
  192. package/format/filter/IsNull.d.ts.map +1 -1
  193. package/format/filter/LessThan.d.ts.map +1 -1
  194. package/format/filter/LessThanOrEqualTo.d.ts.map +1 -1
  195. package/format/filter/LogicalNary.d.ts.map +1 -1
  196. package/format/filter/Not.d.ts.map +1 -1
  197. package/format/filter/NotEqualTo.d.ts.map +1 -1
  198. package/format/filter/ResourceId.d.ts.map +1 -1
  199. package/format/filter/Spatial.d.ts.map +1 -1
  200. package/format/filter/Within.d.ts.map +1 -1
  201. package/format/filter.d.ts.map +1 -1
  202. package/functions.d.ts +2 -2
  203. package/functions.d.ts.map +1 -1
  204. package/functions.js +6 -5
  205. package/geom/Circle.d.ts +10 -3
  206. package/geom/Circle.d.ts.map +1 -1
  207. package/geom/Circle.js +13 -0
  208. package/geom/Geometry.d.ts +2 -2
  209. package/geom/GeometryCollection.d.ts +6 -3
  210. package/geom/GeometryCollection.d.ts.map +1 -1
  211. package/geom/GeometryCollection.js +13 -0
  212. package/geom/LineString.d.ts +9 -5
  213. package/geom/LineString.d.ts.map +1 -1
  214. package/geom/LineString.js +7 -0
  215. package/geom/LinearRing.d.ts +8 -4
  216. package/geom/LinearRing.d.ts.map +1 -1
  217. package/geom/LinearRing.js +7 -0
  218. package/geom/MultiLineString.d.ts +8 -4
  219. package/geom/MultiLineString.d.ts.map +1 -1
  220. package/geom/MultiLineString.js +7 -0
  221. package/geom/MultiPoint.d.ts +6 -3
  222. package/geom/MultiPoint.d.ts.map +1 -1
  223. package/geom/MultiPoint.js +6 -0
  224. package/geom/MultiPolygon.d.ts +8 -4
  225. package/geom/MultiPolygon.d.ts.map +1 -1
  226. package/geom/MultiPolygon.js +8 -0
  227. package/geom/Point.d.ts +4 -2
  228. package/geom/Point.d.ts.map +1 -1
  229. package/geom/Point.js +7 -0
  230. package/geom/Polygon.d.ts +8 -4
  231. package/geom/Polygon.d.ts.map +1 -1
  232. package/geom/Polygon.js +8 -0
  233. package/geom/SimpleGeometry.d.ts +2 -1
  234. package/geom/SimpleGeometry.d.ts.map +1 -1
  235. package/geom/SimpleGeometry.js +6 -0
  236. package/geom/flat/area.d.ts.map +1 -1
  237. package/geom/flat/area.js +9 -7
  238. package/geom/flat/center.d.ts.map +1 -1
  239. package/geom/flat/closest.d.ts.map +1 -1
  240. package/geom/flat/contains.d.ts.map +1 -1
  241. package/geom/flat/deflate.d.ts.map +1 -1
  242. package/geom/flat/flip.d.ts.map +1 -1
  243. package/geom/flat/geodesic.d.ts.map +1 -1
  244. package/geom/flat/inflate.d.ts.map +1 -1
  245. package/geom/flat/interiorpoint.d.ts.map +1 -1
  246. package/geom/flat/interpolate.d.ts.map +1 -1
  247. package/geom/flat/intersectsextent.d.ts.map +1 -1
  248. package/geom/flat/length.d.ts.map +1 -1
  249. package/geom/flat/linechunk.d.ts.map +1 -1
  250. package/geom/flat/orient.d.ts.map +1 -1
  251. package/geom/flat/reverse.d.ts.map +1 -1
  252. package/geom/flat/segments.d.ts +1 -1
  253. package/geom/flat/segments.d.ts.map +1 -1
  254. package/geom/flat/simplify.d.ts.map +1 -1
  255. package/geom/flat/straightchunk.d.ts.map +1 -1
  256. package/geom/flat/textpath.d.ts.map +1 -1
  257. package/geom/flat/topology.d.ts.map +1 -1
  258. package/geom/flat/transform.d.ts.map +1 -1
  259. package/interaction/DblClickDragZoom.d.ts.map +1 -1
  260. package/interaction/DblClickDragZoom.js +1 -0
  261. package/interaction/DoubleClickZoom.d.ts.map +1 -1
  262. package/interaction/DoubleClickZoom.js +1 -0
  263. package/interaction/DragAndDrop.d.ts +4 -3
  264. package/interaction/DragAndDrop.d.ts.map +1 -1
  265. package/interaction/DragAndDrop.js +2 -0
  266. package/interaction/DragBox.d.ts +3 -3
  267. package/interaction/DragBox.d.ts.map +1 -1
  268. package/interaction/DragBox.js +6 -2
  269. package/interaction/DragPan.d.ts +6 -4
  270. package/interaction/DragPan.d.ts.map +1 -1
  271. package/interaction/DragPan.js +6 -1
  272. package/interaction/DragRotate.d.ts +3 -3
  273. package/interaction/DragRotate.d.ts.map +1 -1
  274. package/interaction/DragRotate.js +5 -2
  275. package/interaction/DragRotateAndZoom.d.ts +2 -2
  276. package/interaction/DragRotateAndZoom.d.ts.map +1 -1
  277. package/interaction/DragRotateAndZoom.js +4 -1
  278. package/interaction/DragZoom.d.ts +3 -3
  279. package/interaction/DragZoom.d.ts.map +1 -1
  280. package/interaction/DragZoom.js +3 -2
  281. package/interaction/Draw.d.ts +9 -8
  282. package/interaction/Draw.d.ts.map +1 -1
  283. package/interaction/Draw.js +9 -5
  284. package/interaction/Extent.d.ts +4 -3
  285. package/interaction/Extent.d.ts.map +1 -1
  286. package/interaction/Extent.js +6 -1
  287. package/interaction/Interaction.d.ts +1 -1
  288. package/interaction/Interaction.d.ts.map +1 -1
  289. package/interaction/KeyboardPan.d.ts +2 -2
  290. package/interaction/KeyboardPan.d.ts.map +1 -1
  291. package/interaction/KeyboardPan.js +2 -1
  292. package/interaction/KeyboardZoom.d.ts +2 -2
  293. package/interaction/KeyboardZoom.d.ts.map +1 -1
  294. package/interaction/KeyboardZoom.js +2 -1
  295. package/interaction/Link.d.ts +1 -1
  296. package/interaction/Link.d.ts.map +1 -1
  297. package/interaction/Link.js +4 -0
  298. package/interaction/Modify.d.ts +15 -12
  299. package/interaction/Modify.d.ts.map +1 -1
  300. package/interaction/Modify.js +11 -3
  301. package/interaction/MouseWheelZoom.d.ts +3 -3
  302. package/interaction/MouseWheelZoom.d.ts.map +1 -1
  303. package/interaction/MouseWheelZoom.js +2 -1
  304. package/interaction/PinchRotate.d.ts.map +1 -1
  305. package/interaction/PinchRotate.js +3 -0
  306. package/interaction/PinchZoom.d.ts.map +1 -1
  307. package/interaction/PinchZoom.js +3 -0
  308. package/interaction/Pointer.d.ts.map +1 -1
  309. package/interaction/Pointer.js +1 -0
  310. package/interaction/Select.d.ts +14 -15
  311. package/interaction/Select.d.ts.map +1 -1
  312. package/interaction/Select.js +8 -6
  313. package/interaction/Snap.d.ts +3 -2
  314. package/interaction/Snap.d.ts.map +1 -1
  315. package/interaction/Snap.js +3 -0
  316. package/interaction/Translate.d.ts +11 -10
  317. package/interaction/Translate.d.ts.map +1 -1
  318. package/interaction/Translate.js +9 -4
  319. package/interaction/defaults.d.ts.map +1 -1
  320. package/layer/Base.d.ts +1 -1
  321. package/layer/Base.d.ts.map +1 -1
  322. package/layer/Base.js +1 -0
  323. package/layer/BaseImage.d.ts.map +1 -1
  324. package/layer/BaseTile.d.ts +22 -5
  325. package/layer/BaseTile.d.ts.map +1 -1
  326. package/layer/BaseTile.js +23 -3
  327. package/layer/BaseVector.d.ts +7 -6
  328. package/layer/BaseVector.d.ts.map +1 -1
  329. package/layer/BaseVector.js +9 -4
  330. package/layer/Graticule.d.ts +5 -3
  331. package/layer/Graticule.d.ts.map +1 -1
  332. package/layer/Graticule.js +2 -1
  333. package/layer/Group.d.ts +2 -2
  334. package/layer/Group.d.ts.map +1 -1
  335. package/layer/Group.js +3 -0
  336. package/layer/Heatmap.d.ts +16 -10
  337. package/layer/Heatmap.d.ts.map +1 -1
  338. package/layer/Heatmap.js +25 -12
  339. package/layer/Image.d.ts.map +1 -1
  340. package/layer/Image.js +4 -0
  341. package/layer/Layer.d.ts +4 -4
  342. package/layer/Layer.d.ts.map +1 -1
  343. package/layer/Layer.js +7 -8
  344. package/layer/Tile.d.ts +6 -3
  345. package/layer/Tile.d.ts.map +1 -1
  346. package/layer/Tile.js +7 -2
  347. package/layer/Vector.d.ts +19 -9
  348. package/layer/Vector.d.ts.map +1 -1
  349. package/layer/Vector.js +15 -5
  350. package/layer/VectorImage.d.ts +9 -7
  351. package/layer/VectorImage.d.ts.map +1 -1
  352. package/layer/VectorImage.js +9 -4
  353. package/layer/VectorTile.d.ts +50 -15
  354. package/layer/VectorTile.d.ts.map +1 -1
  355. package/layer/VectorTile.js +51 -12
  356. package/layer/WebGLPoints.d.ts +1 -2
  357. package/layer/WebGLPoints.d.ts.map +1 -1
  358. package/layer/WebGLPoints.js +3 -0
  359. package/layer/WebGLTile.d.ts +9 -12
  360. package/layer/WebGLTile.d.ts.map +1 -1
  361. package/layer/WebGLTile.js +20 -21
  362. package/loadingstrategy.d.ts.map +1 -1
  363. package/math.d.ts.map +1 -1
  364. package/net.d.ts.map +1 -1
  365. package/obj.d.ts.map +1 -1
  366. package/ol.css +4 -0
  367. package/package.json +4 -4
  368. package/pixel.d.ts.map +1 -1
  369. package/proj/Projection.d.ts +1 -1
  370. package/proj/Projection.d.ts.map +1 -1
  371. package/proj/Units.d.ts +1 -1
  372. package/proj/epsg3857.d.ts.map +1 -1
  373. package/proj/epsg4326.d.ts.map +1 -1
  374. package/proj/proj4.d.ts.map +1 -1
  375. package/proj.d.ts.map +1 -1
  376. package/render/Box.d.ts.map +1 -1
  377. package/render/Box.js +1 -0
  378. package/render/Event.d.ts.map +1 -1
  379. package/render/EventType.d.ts +2 -2
  380. package/render/Feature.d.ts +6 -4
  381. package/render/Feature.d.ts.map +1 -1
  382. package/render/Feature.js +2 -0
  383. package/render/canvas/Builder.d.ts.map +1 -1
  384. package/render/canvas/Builder.js +2 -0
  385. package/render/canvas/BuilderGroup.d.ts.map +1 -1
  386. package/render/canvas/Executor.d.ts +6 -27
  387. package/render/canvas/Executor.d.ts.map +1 -1
  388. package/render/canvas/Executor.js +7 -13
  389. package/render/canvas/ExecutorGroup.d.ts +4 -5
  390. package/render/canvas/ExecutorGroup.d.ts.map +1 -1
  391. package/render/canvas/ExecutorGroup.js +2 -1
  392. package/render/canvas/ImageBuilder.d.ts +2 -1
  393. package/render/canvas/ImageBuilder.d.ts.map +1 -1
  394. package/render/canvas/ImageBuilder.js +4 -0
  395. package/render/canvas/Immediate.d.ts +24 -12
  396. package/render/canvas/Immediate.d.ts.map +1 -1
  397. package/render/canvas/Immediate.js +14 -0
  398. package/render/canvas/Instruction.d.ts.map +1 -1
  399. package/render/canvas/LineStringBuilder.d.ts.map +1 -1
  400. package/render/canvas/LineStringBuilder.js +4 -0
  401. package/render/canvas/PolygonBuilder.d.ts.map +1 -1
  402. package/render/canvas/PolygonBuilder.js +4 -0
  403. package/render/canvas/TextBuilder.d.ts +4 -2
  404. package/render/canvas/TextBuilder.d.ts.map +1 -1
  405. package/render/canvas/TextBuilder.js +4 -0
  406. package/render/canvas/ZIndexContext.d.ts +2 -1
  407. package/render/canvas/ZIndexContext.d.ts.map +1 -1
  408. package/render/canvas/ZIndexContext.js +1 -0
  409. package/render/canvas/hitdetect.d.ts +1 -1
  410. package/render/canvas/hitdetect.d.ts.map +1 -1
  411. package/render/canvas/style.d.ts +3 -3
  412. package/render/canvas/style.d.ts.map +1 -1
  413. package/render/canvas/style.js +6 -5
  414. package/render/canvas.d.ts +1 -1
  415. package/render/canvas.d.ts.map +1 -1
  416. package/render/canvas.js +2 -1
  417. package/render/webgl/MixedGeometryBatch.d.ts +4 -1
  418. package/render/webgl/MixedGeometryBatch.d.ts.map +1 -1
  419. package/render/webgl/MixedGeometryBatch.js +4 -0
  420. package/render/webgl/VectorStyleRenderer.d.ts +56 -30
  421. package/render/webgl/VectorStyleRenderer.d.ts.map +1 -1
  422. package/render/webgl/VectorStyleRenderer.js +39 -0
  423. package/render/webgl/renderinstructions.d.ts +4 -4
  424. package/render/webgl/utils.d.ts +1 -1
  425. package/render/webgl/utils.d.ts.map +1 -1
  426. package/render.d.ts.map +1 -1
  427. package/renderer/Composite.d.ts +3 -2
  428. package/renderer/Composite.d.ts.map +1 -1
  429. package/renderer/Composite.js +10 -4
  430. package/renderer/Layer.d.ts +22 -29
  431. package/renderer/Layer.d.ts.map +1 -1
  432. package/renderer/Layer.js +33 -37
  433. package/renderer/Map.d.ts +1 -1
  434. package/renderer/Map.d.ts.map +1 -1
  435. package/renderer/canvas/ImageLayer.d.ts +6 -4
  436. package/renderer/canvas/ImageLayer.d.ts.map +1 -1
  437. package/renderer/canvas/ImageLayer.js +12 -9
  438. package/renderer/canvas/Layer.d.ts +4 -9
  439. package/renderer/canvas/Layer.d.ts.map +1 -1
  440. package/renderer/canvas/Layer.js +1 -6
  441. package/renderer/canvas/TileLayer.d.ts +106 -42
  442. package/renderer/canvas/TileLayer.d.ts.map +1 -1
  443. package/renderer/canvas/TileLayer.js +546 -330
  444. package/renderer/canvas/VectorImageLayer.d.ts +7 -4
  445. package/renderer/canvas/VectorImageLayer.d.ts.map +1 -1
  446. package/renderer/canvas/VectorImageLayer.js +10 -3
  447. package/renderer/canvas/VectorLayer.d.ts +7 -4
  448. package/renderer/canvas/VectorLayer.d.ts.map +1 -1
  449. package/renderer/canvas/VectorLayer.js +8 -0
  450. package/renderer/canvas/VectorTileLayer.d.ts +18 -16
  451. package/renderer/canvas/VectorTileLayer.d.ts.map +1 -1
  452. package/renderer/canvas/VectorTileLayer.js +79 -54
  453. package/renderer/vector.d.ts.map +1 -1
  454. package/renderer/webgl/Layer.d.ts +1 -6
  455. package/renderer/webgl/Layer.d.ts.map +1 -1
  456. package/renderer/webgl/Layer.js +2 -6
  457. package/renderer/webgl/PointsLayer.d.ts +23 -8
  458. package/renderer/webgl/PointsLayer.d.ts.map +1 -1
  459. package/renderer/webgl/PointsLayer.js +22 -1
  460. package/renderer/webgl/TileLayer.d.ts +16 -5
  461. package/renderer/webgl/TileLayer.d.ts.map +1 -1
  462. package/renderer/webgl/TileLayer.js +18 -0
  463. package/renderer/webgl/TileLayerBase.d.ts +7 -16
  464. package/renderer/webgl/TileLayerBase.d.ts.map +1 -1
  465. package/renderer/webgl/TileLayerBase.js +69 -84
  466. package/renderer/webgl/VectorLayer.d.ts +32 -8
  467. package/renderer/webgl/VectorLayer.d.ts.map +1 -1
  468. package/renderer/webgl/VectorLayer.js +53 -0
  469. package/renderer/webgl/VectorTileLayer.d.ts +34 -29
  470. package/renderer/webgl/VectorTileLayer.d.ts.map +1 -1
  471. package/renderer/webgl/VectorTileLayer.js +27 -0
  472. package/renderer/webgl/worldUtil.d.ts.map +1 -1
  473. package/reproj/DataTile.d.ts.map +1 -1
  474. package/reproj/DataTile.js +121 -119
  475. package/reproj/Image.d.ts +2 -1
  476. package/reproj/Image.d.ts.map +1 -1
  477. package/reproj/Image.js +4 -2
  478. package/reproj/Tile.d.ts.map +1 -1
  479. package/reproj/Tile.js +16 -19
  480. package/reproj/Triangulation.d.ts.map +1 -1
  481. package/reproj.d.ts +1 -1
  482. package/reproj.d.ts.map +1 -1
  483. package/resolution.d.ts.map +1 -1
  484. package/resolutionconstraint.d.ts.map +1 -1
  485. package/rotationconstraint.d.ts.map +1 -1
  486. package/size.d.ts.map +1 -1
  487. package/source/BingMaps.d.ts +3 -3
  488. package/source/BingMaps.d.ts.map +1 -1
  489. package/source/BingMaps.js +1 -2
  490. package/source/CartoDB.d.ts +2 -2
  491. package/source/CartoDB.d.ts.map +1 -1
  492. package/source/CartoDB.js +1 -1
  493. package/source/Cluster.d.ts +5 -5
  494. package/source/Cluster.d.ts.map +1 -1
  495. package/source/Cluster.js +5 -2
  496. package/source/DataTile.d.ts +51 -22
  497. package/source/DataTile.d.ts.map +1 -1
  498. package/source/DataTile.js +67 -9
  499. package/source/GeoTIFF.d.ts +4 -7
  500. package/source/GeoTIFF.d.ts.map +1 -1
  501. package/source/GeoTIFF.js +4 -3
  502. package/source/Google.d.ts +2 -1
  503. package/source/Google.d.ts.map +1 -1
  504. package/source/Google.js +4 -2
  505. package/source/IIIF.d.ts +1 -1
  506. package/source/IIIF.js +1 -1
  507. package/source/Image.d.ts +3 -2
  508. package/source/Image.d.ts.map +1 -1
  509. package/source/Image.js +1 -0
  510. package/source/ImageArcGISRest.d.ts.map +1 -1
  511. package/source/ImageArcGISRest.js +4 -0
  512. package/source/ImageCanvas.d.ts +2 -1
  513. package/source/ImageCanvas.d.ts.map +1 -1
  514. package/source/ImageCanvas.js +1 -0
  515. package/source/ImageMapGuide.d.ts.map +1 -1
  516. package/source/ImageMapGuide.js +4 -0
  517. package/source/ImageStatic.d.ts.map +1 -1
  518. package/source/ImageStatic.js +1 -0
  519. package/source/ImageTile.d.ts +102 -0
  520. package/source/ImageTile.d.ts.map +1 -0
  521. package/source/ImageTile.js +206 -0
  522. package/source/ImageWMS.d.ts.map +1 -1
  523. package/source/ImageWMS.js +4 -0
  524. package/source/OGCMapTile.d.ts +2 -2
  525. package/source/OGCMapTile.js +1 -1
  526. package/source/OGCVectorTile.d.ts +9 -9
  527. package/source/OGCVectorTile.d.ts.map +1 -1
  528. package/source/OGCVectorTile.js +4 -4
  529. package/source/OSM.d.ts +2 -7
  530. package/source/OSM.d.ts.map +1 -1
  531. package/source/OSM.js +1 -3
  532. package/source/Raster.d.ts +41 -26
  533. package/source/Raster.d.ts.map +1 -1
  534. package/source/Raster.js +83 -102
  535. package/source/Source.d.ts +1 -1
  536. package/source/Source.d.ts.map +1 -1
  537. package/source/Source.js +5 -14
  538. package/source/StadiaMaps.d.ts +2 -2
  539. package/source/StadiaMaps.d.ts.map +1 -1
  540. package/source/StadiaMaps.js +2 -18
  541. package/source/Tile.d.ts +7 -36
  542. package/source/Tile.d.ts.map +1 -1
  543. package/source/Tile.js +9 -69
  544. package/source/TileArcGISRest.d.ts +2 -2
  545. package/source/TileArcGISRest.d.ts.map +1 -1
  546. package/source/TileArcGISRest.js +2 -1
  547. package/source/TileDebug.d.ts.map +1 -1
  548. package/source/TileDebug.js +0 -1
  549. package/source/TileEventType.d.ts +1 -1
  550. package/source/TileImage.d.ts +9 -12
  551. package/source/TileImage.d.ts.map +1 -1
  552. package/source/TileImage.js +21 -43
  553. package/source/TileJSON.d.ts +2 -2
  554. package/source/TileJSON.d.ts.map +1 -1
  555. package/source/TileJSON.js +1 -1
  556. package/source/TileWMS.d.ts +2 -2
  557. package/source/TileWMS.d.ts.map +1 -1
  558. package/source/TileWMS.js +3 -4
  559. package/source/UTFGrid.d.ts +5 -3
  560. package/source/UTFGrid.d.ts.map +1 -1
  561. package/source/UTFGrid.js +7 -8
  562. package/source/UrlTile.d.ts +16 -13
  563. package/source/UrlTile.d.ts.map +1 -1
  564. package/source/UrlTile.js +13 -7
  565. package/source/Vector.d.ts +21 -21
  566. package/source/Vector.d.ts.map +1 -1
  567. package/source/Vector.js +16 -13
  568. package/source/VectorEventType.d.ts +1 -1
  569. package/source/VectorTile.d.ts +13 -24
  570. package/source/VectorTile.d.ts.map +1 -1
  571. package/source/VectorTile.js +19 -87
  572. package/source/WMTS.d.ts +3 -3
  573. package/source/WMTS.d.ts.map +1 -1
  574. package/source/WMTS.js +5 -4
  575. package/source/XYZ.d.ts +14 -17
  576. package/source/XYZ.d.ts.map +1 -1
  577. package/source/XYZ.js +8 -8
  578. package/source/Zoomify.d.ts +5 -4
  579. package/source/Zoomify.d.ts.map +1 -1
  580. package/source/Zoomify.js +5 -2
  581. package/source/arcgisRest.d.ts +4 -4
  582. package/source/arcgisRest.d.ts.map +1 -1
  583. package/source/arcgisRest.js +5 -5
  584. package/source/mapguide.d.ts +3 -3
  585. package/source/mapguide.d.ts.map +1 -1
  586. package/source/mapguide.js +11 -8
  587. package/source/ogcTileUtil.d.ts +2 -2
  588. package/source/ogcTileUtil.d.ts.map +1 -1
  589. package/source/ogcTileUtil.js +7 -7
  590. package/source/static.d.ts +3 -3
  591. package/source/static.d.ts.map +1 -1
  592. package/source/static.js +7 -7
  593. package/source/wms.d.ts +2 -2
  594. package/source/wms.d.ts.map +1 -1
  595. package/source/wms.js +16 -19
  596. package/source.d.ts +1 -0
  597. package/source.d.ts.map +1 -1
  598. package/source.js +1 -0
  599. package/sphere.d.ts +1 -1
  600. package/structs/LRUCache.d.ts.map +1 -1
  601. package/structs/PriorityQueue.d.ts.map +1 -1
  602. package/structs/RBush.d.ts +10 -32
  603. package/structs/RBush.d.ts.map +1 -1
  604. package/structs/RBush.js +9 -12
  605. package/style/Circle.d.ts +2 -1
  606. package/style/Circle.d.ts.map +1 -1
  607. package/style/Circle.js +2 -1
  608. package/style/Fill.d.ts +3 -3
  609. package/style/Fill.d.ts.map +1 -1
  610. package/style/Fill.js +1 -1
  611. package/style/Icon.d.ts +8 -5
  612. package/style/Icon.d.ts.map +1 -1
  613. package/style/Icon.js +21 -0
  614. package/style/IconImage.d.ts.map +1 -1
  615. package/style/IconImage.js +3 -2
  616. package/style/IconImageCache.d.ts.map +1 -1
  617. package/style/Image.d.ts +3 -3
  618. package/style/Image.d.ts.map +1 -1
  619. package/style/RegularShape.d.ts +11 -5
  620. package/style/RegularShape.d.ts.map +1 -1
  621. package/style/RegularShape.js +23 -5
  622. package/style/Stroke.d.ts.map +1 -1
  623. package/style/Style.d.ts +5 -5
  624. package/style/Style.d.ts.map +1 -1
  625. package/style/Style.js +2 -2
  626. package/style/Text.d.ts +2 -2
  627. package/style/Text.d.ts.map +1 -1
  628. package/style/flat.d.ts.map +1 -1
  629. package/style/webgl.d.ts.map +1 -1
  630. package/tilecoord.d.ts +7 -0
  631. package/tilecoord.d.ts.map +1 -1
  632. package/tilecoord.js +11 -1
  633. package/tilegrid/TileGrid.d.ts +1 -1
  634. package/tilegrid/TileGrid.d.ts.map +1 -1
  635. package/tilegrid/WMTS.d.ts.map +1 -1
  636. package/tilegrid/WMTS.js +1 -1
  637. package/tileurlfunction.d.ts +3 -7
  638. package/tileurlfunction.d.ts.map +1 -1
  639. package/tileurlfunction.js +14 -47
  640. package/transform.d.ts +15 -15
  641. package/transform.d.ts.map +1 -1
  642. package/uri.d.ts +23 -3
  643. package/uri.d.ts.map +1 -1
  644. package/uri.js +75 -0
  645. package/util.d.ts.map +1 -1
  646. package/util.js +1 -1
  647. package/vec/mat4.d.ts.map +1 -1
  648. package/webgl/BaseTileRepresentation.d.ts +3 -3
  649. package/webgl/BaseTileRepresentation.d.ts.map +1 -1
  650. package/webgl/BaseTileRepresentation.js +9 -2
  651. package/webgl/Buffer.d.ts.map +1 -1
  652. package/webgl/Helper.d.ts.map +1 -1
  653. package/webgl/Helper.js +1 -0
  654. package/webgl/PostProcessingPass.d.ts +48 -12
  655. package/webgl/PostProcessingPass.d.ts.map +1 -1
  656. package/webgl/PostProcessingPass.js +42 -6
  657. package/webgl/RenderTarget.d.ts.map +1 -1
  658. package/webgl/ShaderBuilder.d.ts +1 -1
  659. package/webgl/TileGeometry.d.ts.map +1 -1
  660. package/webgl/TileGeometry.js +4 -1
  661. package/webgl/TileTexture.d.ts.map +1 -1
  662. package/webgl/TileTexture.js +14 -8
  663. package/webgl/styleparser.d.ts.map +1 -1
  664. package/webgl/styleparser.js +54 -66
  665. package/webgl.d.ts.map +1 -1
  666. package/worker/webgl.js +1 -1
  667. package/xml.d.ts.map +1 -1
  668. package/xml.js +27 -39
  669. package/source/SentinelHub.d.ts +0 -507
  670. package/source/SentinelHub.d.ts.map +0 -1
  671. package/source/SentinelHub.js +0 -616
  672. package/structs/LinkedList.d.ts +0 -130
  673. package/structs/LinkedList.d.ts.map +0 -1
  674. package/structs/LinkedList.js +0 -259
@@ -100,8 +100,14 @@ class WebGLVectorLayerRenderer extends WebGLLayerRenderer {
100
100
  */
101
101
  this.hitRenderTarget_;
102
102
 
103
+ /**
104
+ * @private
105
+ */
103
106
  this.sourceRevision_ = -1;
104
107
 
108
+ /**
109
+ * @private
110
+ */
105
111
  this.previousExtent_ = createEmpty();
106
112
 
107
113
  /**
@@ -113,8 +119,17 @@ class WebGLVectorLayerRenderer extends WebGLLayerRenderer {
113
119
  */
114
120
  this.currentTransform_ = createTransform();
115
121
 
122
+ /**
123
+ * @private
124
+ */
116
125
  this.tmpCoords_ = [0, 0];
126
+ /**
127
+ * @private
128
+ */
117
129
  this.tmpTransform_ = createTransform();
130
+ /**
131
+ * @private
132
+ */
118
133
  this.tmpMat4_ = createMat4();
119
134
 
120
135
  /**
@@ -225,6 +240,9 @@ class WebGLVectorLayerRenderer extends WebGLLayerRenderer {
225
240
  );
226
241
  }
227
242
 
243
+ /**
244
+ * @override
245
+ */
228
246
  reset(options) {
229
247
  this.applyOptions_(options);
230
248
  if (this.helper) {
@@ -233,6 +251,9 @@ class WebGLVectorLayerRenderer extends WebGLLayerRenderer {
233
251
  super.reset(options);
234
252
  }
235
253
 
254
+ /**
255
+ * @override
256
+ */
236
257
  afterHelperCreated() {
237
258
  this.createRenderers_();
238
259
  if (this.hitDetectionEnabled_) {
@@ -307,6 +328,7 @@ class WebGLVectorLayerRenderer extends WebGLLayerRenderer {
307
328
  * Render the layer.
308
329
  * @param {import("../../Map.js").FrameState} frameState Frame state.
309
330
  * @return {HTMLElement} The rendered element.
331
+ * @override
310
332
  */
311
333
  renderFrame(frameState) {
312
334
  const gl = this.helper.getGL();
@@ -343,6 +365,7 @@ class WebGLVectorLayerRenderer extends WebGLLayerRenderer {
343
365
  * Determine whether renderFrame should be called.
344
366
  * @param {import("../../Map.js").FrameState} frameState Frame state.
345
367
  * @return {boolean} Layer is ready to be rendered.
368
+ * @override
346
369
  */
347
370
  prepareFrameInternal(frameState) {
348
371
  if (!this.initialFeaturesAdded_) {
@@ -391,6 +414,9 @@ class WebGLVectorLayerRenderer extends WebGLLayerRenderer {
391
414
 
392
415
  const generatePromises = this.styleRenderers_.map((renderer, i) =>
393
416
  renderer.generateBuffers(this.batch_, transform).then((buffers) => {
417
+ if (this.buffers_[i]) {
418
+ this.disposeBuffers(this.buffers_[i]);
419
+ }
394
420
  this.buffers_[i] = buffers;
395
421
  }),
396
422
  );
@@ -460,6 +486,7 @@ class WebGLVectorLayerRenderer extends WebGLLayerRenderer {
460
486
  * @param {Array<import("../Map.js").HitMatch<T>>} matches The hit detected matches with tolerance.
461
487
  * @return {T|undefined} Callback result.
462
488
  * @template T
489
+ * @override
463
490
  */
464
491
  forEachFeatureAtCoordinate(
465
492
  coordinate,
@@ -491,10 +518,36 @@ class WebGLVectorLayerRenderer extends WebGLLayerRenderer {
491
518
  return undefined;
492
519
  }
493
520
 
521
+ /**
522
+ * Will release a set of Webgl buffers
523
+ * @param {import('../../render/webgl/VectorStyleRenderer.js').WebGLBuffers} buffers Buffers
524
+ */
525
+ disposeBuffers(buffers) {
526
+ if (buffers.pointBuffers) {
527
+ buffers.pointBuffers
528
+ .filter(Boolean)
529
+ .forEach((buffer) => this.helper.deleteBuffer(buffer));
530
+ }
531
+ if (buffers.lineStringBuffers) {
532
+ buffers.lineStringBuffers
533
+ .filter(Boolean)
534
+ .forEach((buffer) => this.helper.deleteBuffer(buffer));
535
+ }
536
+ if (buffers.polygonBuffers) {
537
+ buffers.polygonBuffers
538
+ .filter(Boolean)
539
+ .forEach((buffer) => this.helper.deleteBuffer(buffer));
540
+ }
541
+ }
542
+
494
543
  /**
495
544
  * Clean up.
545
+ * @override
496
546
  */
497
547
  disposeInternal() {
548
+ this.buffers_.forEach((buffers) => {
549
+ this.disposeBuffers(buffers);
550
+ });
498
551
  if (this.sourceListenKeys_) {
499
552
  this.sourceListenKeys_.forEach(function (key) {
500
553
  unlistenByKey(key);
@@ -7,24 +7,6 @@ export const Uniforms: {
7
7
  RENDER_EXTENT: string;
8
8
  PATTERN_ORIGIN: string;
9
9
  RESOLUTION: string;
10
- /**
11
- * @typedef {import('../../render/webgl/VectorStyleRenderer.js').VectorStyle} VectorStyle
12
- */
13
- /**
14
- * @typedef {Object} Options
15
- * @property {VectorStyle|Array<VectorStyle>} style Vector style as literal style or shaders; can also accept an array of styles
16
- * @property {boolean} [disableHitDetection=false] Setting this to true will provide a slight performance boost, but will
17
- * prevent all hit detection on the layer.
18
- * @property {number} [cacheSize=512] The vector tile cache size.
19
- */
20
- /**
21
- * @typedef {import("../../layer/BaseTile.js").default} LayerType
22
- */
23
- /**
24
- * @classdesc
25
- * WebGL renderer for vector tile layers. Experimental.
26
- * @extends {WebGLBaseTileLayerRenderer<LayerType>}
27
- */
28
10
  ZOOM: string;
29
11
  GLOBAL_ALPHA: string;
30
12
  PROJECTION_MATRIX: string;
@@ -34,7 +16,7 @@ export namespace Attributes {
34
16
  let POSITION: string;
35
17
  }
36
18
  export default WebGLVectorTileLayerRenderer;
37
- export type VectorStyle = import('../../render/webgl/VectorStyleRenderer.js').VectorStyle;
19
+ export type VectorStyle = import("../../render/webgl/VectorStyleRenderer.js").VectorStyle;
38
20
  export type Options = {
39
21
  /**
40
22
  * Vector style as literal style or shaders; can also accept an array of styles
@@ -74,7 +56,7 @@ declare class WebGLVectorTileLayerRenderer extends WebGLBaseTileLayerRenderer<im
74
56
  * @param {LayerType} tileLayer Tile layer.
75
57
  * @param {Options} options Options.
76
58
  */
77
- constructor(tileLayer: import("../../layer/BaseTile.js").default<any, any>, options: Options);
59
+ constructor(tileLayer: LayerType, options: Options);
78
60
  /**
79
61
  * @type {boolean}
80
62
  * @private
@@ -98,8 +80,14 @@ declare class WebGLVectorTileLayerRenderer extends WebGLBaseTileLayerRenderer<im
98
80
  * @private
99
81
  */
100
82
  private currentFrameStateTransform_;
101
- tmpTransform_: number[];
102
- tmpMat4_: number[];
83
+ /**
84
+ * @private
85
+ */
86
+ private tmpTransform_;
87
+ /**
88
+ * @private
89
+ */
90
+ private tmpMat4_;
103
91
  /**
104
92
  * @type {WebGLRenderTarget}
105
93
  * @private
@@ -116,12 +104,14 @@ declare class WebGLVectorTileLayerRenderer extends WebGLBaseTileLayerRenderer<im
116
104
  private tileMaskAttributes_;
117
105
  /**
118
106
  * @type {WebGLProgram}
107
+ * @private
119
108
  */
120
- tileMaskProgram_: WebGLProgram;
109
+ private tileMaskProgram_;
121
110
  /**
122
111
  * @param {Options} options Options.
112
+ * @override
123
113
  */
124
- reset(options: Options): void;
114
+ override reset(options: Options): void;
125
115
  /**
126
116
  * @param {Options} options Options.
127
117
  * @private
@@ -135,10 +125,22 @@ declare class WebGLVectorTileLayerRenderer extends WebGLBaseTileLayerRenderer<im
135
125
  * @private
136
126
  */
137
127
  private initTileMask_;
138
- createTileRepresentation(options: any): TileGeometry;
139
- beforeTilesRender(frameState: any, tilesWithAlpha: any): void;
140
- beforeTilesMaskRender(frameState: any): boolean;
141
- renderTileMask(tileRepresentation: any, tileZ: any, extent: any, depth: any): void;
128
+ /**
129
+ * @override
130
+ */
131
+ override createTileRepresentation(options: any): TileGeometry;
132
+ /**
133
+ * @override
134
+ */
135
+ override beforeTilesRender(frameState: any, tilesWithAlpha: any): void;
136
+ /**
137
+ * @override
138
+ */
139
+ override beforeTilesMaskRender(frameState: any): boolean;
140
+ /**
141
+ * @override
142
+ */
143
+ override renderTileMask(tileRepresentation: any, tileZ: any, extent: any, depth: any): void;
142
144
  /**
143
145
  * @param {number} alpha Alpha value of the tile
144
146
  * @param {import("../../extent.js").Extent} renderExtent Which extent to restrict drawing to
@@ -148,7 +150,10 @@ declare class WebGLVectorTileLayerRenderer extends WebGLBaseTileLayerRenderer<im
148
150
  * @private
149
151
  */
150
152
  private applyUniforms_;
151
- renderTile(tileRepresentation: any, tileTransform: any, frameState: any, renderExtent: any, tileResolution: any, tileSize: any, tileOrigin: any, tileExtent: any, depth: any, gutter: any, alpha: any): void;
153
+ /**
154
+ * @override
155
+ */
156
+ override renderTile(tileRepresentation: any, tileTransform: any, frameState: any, renderExtent: any, tileResolution: any, tileSize: any, tileOrigin: any, tileExtent: any, depth: any, gutter: any, alpha: any): void;
152
157
  /**
153
158
  * Render declutter items for this layer
154
159
  * @param {import("../../Map.js").FrameState} frameState Frame state.
@@ -1 +1 @@
1
- {"version":3,"file":"VectorTileLayer.d.ts","sourceRoot":"","sources":["VectorTileLayer.js"],"names":[],"mappings":"AA2BA;;;;;;;;;IAUA;;OAEG;IAEH;;;;;;OAMG;IAEH;;OAEG;IAEH;;;;OAIG;;;;;EA1BD;;;;;0BAOW,OAAO,2CAA2C,EAAE,WAAW;;;;;WAK9D,WAAW,GAAC,MAAM,WAAW,CAAC;;;;;;;;;;;;AAN5C;;GAEG;AAEH;;;;;;GAMG;AAEH;;GAEG;AAEH;;;;GAIG;AACH;IACE;;;OAGG;IACH,qFAFW,OAAO,EA0EjB;IA/DC;;;OAGG;IACH,6BAAwD;IAExD;;;OAGG;IACH,gBAAiB;IAEjB;;;OAGG;IACH,wBAAyB;IAEzB;;;;;;OAMG;IACH,oCAAoD;IAEpD,wBAAsC;IACtC,mBAA4B;IAE5B;;;OAGG;IACH,wBAA2B;IAE3B;;OAEG;IACH,yBAGC;IAGD;;;OAGG;IACH,4BAMC;IAED;;OAEG;IACH,kBAFU,YAAY,CAED;IAKvB;;OAEG;IACH,eAFW,OAAO,QAUjB;IAED;;;OAGG;IACH,sBAIC;IAED;;OAEG;IACH,yBAwCC;IAED;;OAEG;IACH,sBAYC;IAOD,qDAWC;IAED,8DAMC;IAED,gDA0BC;IAED,mFAeC;IAED;;;;;;;OAOG;IACH,uBAoBC;IAED,6MA4BC;IAED;;;OAGG;IACH,4BAFW,OAAO,cAAc,EAAE,UAAU,QAEd;CAQ/B;uCApWM,oBAAoB;yBALF,6BAA6B"}
1
+ {"version":3,"file":"VectorTileLayer.d.ts","sourceRoot":"","sources":["VectorTileLayer.js"],"names":[],"mappings":"AA2BA;;;;;;;;;;;;;EAIE;;;;;0BAOW,OAAO,2CAA2C,EAAE,WAAW;;;;;WAK9D,WAAW,GAAC,KAAK,CAAC,WAAW,CAAC;;;;;;;;;;;wBAO/B,mDAAyC;AAbtD;;GAEG;AAEH;;;;;;GAMG;AAEH;;GAEG;AAEH;;;;GAIG;AACH;IACE;;;OAGG;IACH,uBAHW,SAAS,WACT,OAAO,EAiFjB;IAtEC;;;OAGG;IACH,6BAAwD;IAExD;;;OAGG;IACH,gBAAiB;IAEjB;;;OAGG;IACH,wBAAyB;IAEzB;;;;;;OAMG;IACH,oCAAoD;IAEpD;;OAEG;IACH,sBAAsC;IACtC;;OAEG;IACH,iBAA4B;IAE5B;;;OAGG;IACH,wBAA2B;IAE3B;;OAEG;IACH,yBAGC;IAGD;;;OAGG;IACH,4BAMC;IAED;;;OAGG;IACH,yBAAqB;IAKvB;;;OAGG;IACH,wBAHW,OAAO,QAWjB;IAED;;;OAGG;IACH,sBAIC;IAED;;OAEG;IACH,yBAwCC;IAED;;OAEG;IACH,sBAYC;IAUD;;OAEG;IACH,8DAWC;IAED;;OAEG;IACH,uEAMC;IAED;;OAEG;IACH,yDA0BC;IAED;;OAEG;IACH,4FAeC;IAED;;;;;;;OAOG;IACH,uBAoBC;IAED;;OAEG;IACH,sNA4BC;IAED;;;OAGG;IACH,4BAFW,OAAO,cAAc,EAAE,UAAU,QAEd;CAS/B;uCA/XM,oBAAoB;yBALF,6BAA6B"}
@@ -97,7 +97,13 @@ class WebGLVectorTileLayerRenderer extends WebGLBaseTileLayerRenderer {
97
97
  */
98
98
  this.currentFrameStateTransform_ = createTransform();
99
99
 
100
+ /**
101
+ * @private
102
+ */
100
103
  this.tmpTransform_ = createTransform();
104
+ /**
105
+ * @private
106
+ */
101
107
  this.tmpMat4_ = createMat4();
102
108
 
103
109
  /**
@@ -129,6 +135,7 @@ class WebGLVectorTileLayerRenderer extends WebGLBaseTileLayerRenderer {
129
135
 
130
136
  /**
131
137
  * @type {WebGLProgram}
138
+ * @private
132
139
  */
133
140
  this.tileMaskProgram_;
134
141
 
@@ -137,6 +144,7 @@ class WebGLVectorTileLayerRenderer extends WebGLBaseTileLayerRenderer {
137
144
 
138
145
  /**
139
146
  * @param {Options} options Options.
147
+ * @override
140
148
  */
141
149
  reset(options) {
142
150
  super.reset(options);
@@ -220,11 +228,17 @@ class WebGLVectorTileLayerRenderer extends WebGLBaseTileLayerRenderer {
220
228
  this.helper.flushBufferData(this.tileMaskIndices_);
221
229
  }
222
230
 
231
+ /**
232
+ * @override
233
+ */
223
234
  afterHelperCreated() {
224
235
  this.createRenderers_();
225
236
  this.initTileMask_();
226
237
  }
227
238
 
239
+ /**
240
+ * @override
241
+ */
228
242
  createTileRepresentation(options) {
229
243
  const tileRep = new TileGeometry(options, this.styleRenderers_);
230
244
  // redraw the layer when the tile is ready
@@ -238,6 +252,9 @@ class WebGLVectorTileLayerRenderer extends WebGLBaseTileLayerRenderer {
238
252
  return tileRep;
239
253
  }
240
254
 
255
+ /**
256
+ * @override
257
+ */
241
258
  beforeTilesRender(frameState, tilesWithAlpha) {
242
259
  super.beforeTilesRender(frameState, true); // always consider that tiles need alpha blending
243
260
  this.helper.makeProjectionTransform(
@@ -246,6 +263,9 @@ class WebGLVectorTileLayerRenderer extends WebGLBaseTileLayerRenderer {
246
263
  );
247
264
  }
248
265
 
266
+ /**
267
+ * @override
268
+ */
249
269
  beforeTilesMaskRender(frameState) {
250
270
  this.helper.makeProjectionTransform(
251
271
  frameState,
@@ -274,6 +294,9 @@ class WebGLVectorTileLayerRenderer extends WebGLBaseTileLayerRenderer {
274
294
  return true;
275
295
  }
276
296
 
297
+ /**
298
+ * @override
299
+ */
277
300
  renderTileMask(tileRepresentation, tileZ, extent, depth) {
278
301
  if (!tileRepresentation.ready) {
279
302
  return;
@@ -321,6 +344,9 @@ class WebGLVectorTileLayerRenderer extends WebGLBaseTileLayerRenderer {
321
344
  this.helper.setUniformFloatVec4(Uniforms.RENDER_EXTENT, renderExtent);
322
345
  }
323
346
 
347
+ /**
348
+ * @override
349
+ */
324
350
  renderTile(
325
351
  tileRepresentation,
326
352
  tileTransform,
@@ -359,6 +385,7 @@ class WebGLVectorTileLayerRenderer extends WebGLBaseTileLayerRenderer {
359
385
 
360
386
  /**
361
387
  * Clean up.
388
+ * @override
362
389
  */
363
390
  disposeInternal() {
364
391
  super.disposeInternal();
@@ -1 +1 @@
1
- {"version":3,"file":"worldUtil.d.ts","sourceRoot":"","sources":["worldUtil.js"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,+CAJW,OAAO,cAAc,EAAE,UAAU,SACjC,GAAG,GACF,MAAM,MAAM,CAAC,CAoBxB"}
1
+ {"version":3,"file":"worldUtil.d.ts","sourceRoot":"","sources":["worldUtil.js"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,+CAJW,OAAO,cAAc,EAAE,UAAU,SACjC,GAAG,GACF,KAAK,CAAC,MAAM,CAAC,CAoBxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"DataTile.d.ts","sourceRoot":"","sources":["DataTile.js"],"names":[],"mappings":";gCAoBsB,MAAM,QAAE,MAAM,QAAE,MAAM,QAAE,MAAM,KAAI,OAAO,gBAAgB,EAAE,OAAO;;;;;UAK1E,QAAQ;;;;YACR,MAAM;;;;;;gBAKN,OAAO,uBAAuB,EAAE,OAAO;;;;oBACvC,OAAO,yBAAyB,EAAE,OAAO;;;;gBACzC,OAAO,uBAAuB,EAAE,OAAO;;;;oBACvC,OAAO,yBAAyB,EAAE,OAAO;;;;eACzC,OAAO,iBAAiB,EAAE,SAAS;;;;;;;;gBAEnC,MAAM;;;;YACN,MAAM;;;;qBACN,UAAU;;;;;;;;;;;;;;;;AApBxB;;GAEG;AAEH;;;;GAIG;AAEH;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;;GAKG;AACH;IACE;;OAEG;IACH,qBAFW,OAAO,EAyNjB;IA/MC;;;OAGG;IACH,oBAAqC;IAErC;;;OAGG;IACH,gBAA6B;IAE7B;;;OAGG;IACH,oBAAuB;IAEvB;;;OAGG;IACH,qBAAwB;IAExB;;;OAGG;IACH,oBAA4B;IAE5B;;;OAGG;IACH,wBAA6C;IAE7C;;;OAGG;IACH,wBAA6C;IAE7C;;;OAGG;IACH,0BAAsE;IAEtE;;;OAGG;IACH,qBAAsB;IAEtB;;;OAGG;IACH,6BAAgC;IAEhC;;;OAGG;IACH,iBAAiB;IAMjB;;;OAGG;IACH,oBAIwB;IAmDxB;;;OAGG;IACH,uBAOC;IA6FH;;OAEG;IACH,mBAiLC;IAyDD;;OAEG;IACH,yBAGC;CACF;qBAzhByD,gBAAgB"}
1
+ {"version":3,"file":"DataTile.d.ts","sourceRoot":"","sources":["DataTile.js"],"names":[],"mappings":";yBAoBa,CAAS,IAAM,EAAN,MAAM,EAAE,IAAM,EAAN,MAAM,EAAE,IAAM,EAAN,MAAM,EAAE,IAAM,EAAN,MAAM,KAAI,OAAO,gBAAgB,EAAE,OAAO;;;;;UAK1E,QAAQ;;;;YACR,MAAM;;;;;;gBAKN,OAAO,uBAAuB,EAAE,OAAO;;;;oBACvC,OAAO,yBAAyB,EAAE,OAAO;;;;gBACzC,OAAO,uBAAuB,EAAE,OAAO;;;;oBACvC,OAAO,yBAAyB,EAAE,OAAO;;;;eACzC,OAAO,iBAAiB,EAAE,SAAS;;;;;;;;gBAEnC,MAAM;;;;YACN,MAAM;;;;qBACN,UAAU;;;;;;;;;;;;;;;;AApBxB;;GAEG;AAEH;;;;GAIG;AAEH;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;;GAKG;AACH;IACE;;OAEG;IACH,qBAFW,OAAO,EAyNjB;IA/MC;;;OAGG;IACH,oBAAqC;IAErC;;;OAGG;IACH,gBAA6B;IAE7B;;;OAGG;IACH,oBAAuB;IAEvB;;;OAGG;IACH,qBAAwB;IAExB;;;OAGG;IACH,oBAA4B;IAE5B;;;OAGG;IACH,wBAA6C;IAE7C;;;OAGG;IACH,wBAA6C;IAE7C;;;OAGG;IACH,0BAAsE;IAEtE;;;OAGG;IACH,qBAAsB;IAEtB;;;OAGG;IACH,6BAAgC;IAEhC;;;OAGG;IACH,iBAAiB;IAMjB;;;OAGG;IACH,oBAIwB;IAmDxB;;;OAGG;IACH,uBAOC;IAgGH;;OAEG;IACH,mBAoLC;IAqDD;;OAEG;IACH,yBAGC;CACF;qBA3hByD,gBAAgB"}
@@ -58,7 +58,7 @@ class ReprojDataTile extends DataTile {
58
58
  constructor(options) {
59
59
  super({
60
60
  tileCoord: options.tileCoord,
61
- loader: () => Promise.resolve(new Uint8Array(4)),
61
+ loader: () => Promise.resolve(new Uint8ClampedArray(4)),
62
62
  interpolate: options.interpolate,
63
63
  transition: options.transition,
64
64
  });
@@ -275,6 +275,7 @@ class ReprojDataTile extends DataTile {
275
275
  /**
276
276
  * Get the tile size.
277
277
  * @return {import('../size.js').Size} Tile size.
278
+ * @override
278
279
  */
279
280
  getSize() {
280
281
  return this.reprojSize_;
@@ -283,6 +284,7 @@ class ReprojDataTile extends DataTile {
283
284
  /**
284
285
  * Get the data for the tile.
285
286
  * @return {import("../DataTile.js").Data} Tile data.
287
+ * @override
286
288
  */
287
289
  getData() {
288
290
  return this.reprojData_;
@@ -291,6 +293,7 @@ class ReprojDataTile extends DataTile {
291
293
  /**
292
294
  * Get any loading error.
293
295
  * @return {Error} Loading error.
296
+ * @override
294
297
  */
295
298
  getError() {
296
299
  return this.reprojError_;
@@ -301,6 +304,7 @@ class ReprojDataTile extends DataTile {
301
304
  */
302
305
  reproject_() {
303
306
  const dataSources = [];
307
+ let imageLike = false;
304
308
  this.sourceTiles_.forEach((source) => {
305
309
  const tile = source.tile;
306
310
  if (!tile || tile.getState() !== TileState.LOADED) {
@@ -316,12 +320,13 @@ class ReprojDataTile extends DataTile {
316
320
  if (arrayData) {
317
321
  tileData = arrayData;
318
322
  } else {
323
+ imageLike = true;
319
324
  tileData = toArray(asImageLike(tile.getData()));
320
325
  }
321
326
  const pixelSize = [size[0] + 2 * gutter, size[1] + 2 * gutter];
322
327
  const isFloat = tileData instanceof Float32Array;
323
328
  const pixelCount = pixelSize[0] * pixelSize[1];
324
- const DataType = isFloat ? Float32Array : Uint8Array;
329
+ const DataType = isFloat ? Float32Array : Uint8ClampedArray;
325
330
  const tileDataR = new DataType(tileData.buffer);
326
331
  const bytesPerElement = DataType.BYTES_PER_ELEMENT;
327
332
  const bytesPerPixel = (bytesPerElement * tileDataR.length) / pixelCount;
@@ -354,7 +359,7 @@ class ReprojDataTile extends DataTile {
354
359
  dataSources.push({
355
360
  extent: extent,
356
361
  clipExtent: clipExtent,
357
- data: new Uint8Array(packedData.buffer),
362
+ data: new Uint8ClampedArray(packedData.buffer),
358
363
  dataType: DataType,
359
364
  bytesPerPixel: bytesPerPixel,
360
365
  pixelSize: pixelSize,
@@ -364,122 +369,124 @@ class ReprojDataTile extends DataTile {
364
369
 
365
370
  if (dataSources.length === 0) {
366
371
  this.state = TileState.ERROR;
367
- } else {
368
- const z = this.wrappedTileCoord_[0];
369
- const size = this.targetTileGrid_.getTileSize(z);
370
- const targetWidth = typeof size === 'number' ? size : size[0];
371
- const targetHeight = typeof size === 'number' ? size : size[1];
372
- const targetResolution = this.targetTileGrid_.getResolution(z);
373
- const sourceResolution = this.sourceTileGrid_.getResolution(
374
- this.sourceZ_,
375
- );
376
-
377
- const targetExtent = this.targetTileGrid_.getTileCoordExtent(
378
- this.wrappedTileCoord_,
379
- );
372
+ this.changed();
373
+ return;
374
+ }
380
375
 
381
- let dataR, dataU;
382
-
383
- const bytesPerPixel = dataSources[0].bytesPerPixel;
384
-
385
- const reprojs = Math.ceil(bytesPerPixel / 3);
386
- for (let reproj = reprojs - 1; reproj >= 0; --reproj) {
387
- const sources = [];
388
- for (let i = 0, len = dataSources.length; i < len; ++i) {
389
- const dataSource = dataSources[i];
390
- const buffer = dataSource.data;
391
- const pixelSize = dataSource.pixelSize;
392
- const width = pixelSize[0];
393
- const height = pixelSize[1];
394
- const context = createCanvasContext2D(width, height, canvasPool);
395
- const imageData = context.createImageData(width, height);
396
- const data = imageData.data;
397
- let offset = reproj * 3;
398
- for (let j = 0, len = data.length; j < len; j += 4) {
399
- data[j] = buffer[offset];
400
- data[j + 1] = buffer[offset + 1];
401
- data[j + 2] = buffer[offset + 2];
402
- data[j + 3] = 255;
403
- offset += bytesPerPixel;
404
- }
405
- context.putImageData(imageData, 0, 0);
406
- sources.push({
407
- extent: dataSource.extent,
408
- clipExtent: dataSource.clipExtent,
409
- image: context.canvas,
410
- });
411
- }
376
+ const z = this.wrappedTileCoord_[0];
377
+ const size = this.targetTileGrid_.getTileSize(z);
378
+ const targetWidth = typeof size === 'number' ? size : size[0];
379
+ const targetHeight = typeof size === 'number' ? size : size[1];
380
+ const targetResolution = this.targetTileGrid_.getResolution(z);
381
+ const sourceResolution = this.sourceTileGrid_.getResolution(this.sourceZ_);
412
382
 
413
- const canvas = renderReprojected(
414
- targetWidth,
415
- targetHeight,
416
- this.pixelRatio_,
417
- sourceResolution,
418
- this.sourceTileGrid_.getExtent(),
419
- targetResolution,
420
- targetExtent,
421
- this.triangulation_,
422
- sources,
423
- this.gutter_,
424
- false,
425
- false,
426
- false,
427
- //true,
428
- );
383
+ const targetExtent = this.targetTileGrid_.getTileCoordExtent(
384
+ this.wrappedTileCoord_,
385
+ );
429
386
 
430
- for (let i = 0, len = sources.length; i < len; ++i) {
431
- const canvas = sources[i].image;
432
- const context = canvas.getContext('2d');
433
- releaseCanvas(context);
434
- canvasPool.push(context.canvas);
387
+ let dataR, dataU;
388
+
389
+ const bytesPerPixel = dataSources[0].bytesPerPixel;
390
+
391
+ const reprojs = Math.ceil(bytesPerPixel / 3);
392
+ for (let reproj = reprojs - 1; reproj >= 0; --reproj) {
393
+ const sources = [];
394
+ for (let i = 0, len = dataSources.length; i < len; ++i) {
395
+ const dataSource = dataSources[i];
396
+ const buffer = dataSource.data;
397
+ const pixelSize = dataSource.pixelSize;
398
+ const width = pixelSize[0];
399
+ const height = pixelSize[1];
400
+ const context = createCanvasContext2D(width, height, canvasPool);
401
+ const imageData = context.createImageData(width, height);
402
+ const data = imageData.data;
403
+ let offset = reproj * 3;
404
+ for (let j = 0, len = data.length; j < len; j += 4) {
405
+ data[j] = buffer[offset];
406
+ data[j + 1] = buffer[offset + 1];
407
+ data[j + 2] = buffer[offset + 2];
408
+ data[j + 3] = 255;
409
+ offset += bytesPerPixel;
435
410
  }
411
+ context.putImageData(imageData, 0, 0);
412
+ sources.push({
413
+ extent: dataSource.extent,
414
+ clipExtent: dataSource.clipExtent,
415
+ image: context.canvas,
416
+ });
417
+ }
436
418
 
437
- const context = canvas.getContext('2d');
438
- const imageData = context.getImageData(
439
- 0,
440
- 0,
441
- canvas.width,
442
- canvas.height,
443
- );
419
+ const canvas = renderReprojected(
420
+ targetWidth,
421
+ targetHeight,
422
+ this.pixelRatio_,
423
+ sourceResolution,
424
+ this.sourceTileGrid_.getExtent(),
425
+ targetResolution,
426
+ targetExtent,
427
+ this.triangulation_,
428
+ sources,
429
+ this.gutter_,
430
+ false,
431
+ false,
432
+ false,
433
+ );
444
434
 
435
+ for (let i = 0, len = sources.length; i < len; ++i) {
436
+ const canvas = sources[i].image;
437
+ const context = canvas.getContext('2d');
445
438
  releaseCanvas(context);
446
- canvasPool.push(canvas);
439
+ canvasPool.push(context.canvas);
440
+ }
447
441
 
448
- if (!dataR) {
449
- dataU = new Uint8Array(
450
- bytesPerPixel * imageData.width * imageData.height,
451
- );
452
- dataR = new dataSources[0].dataType(dataU.buffer);
453
- }
442
+ const context = canvas.getContext('2d');
443
+ const imageData = context.getImageData(0, 0, canvas.width, canvas.height);
454
444
 
455
- const data = imageData.data;
456
- let offset = reproj * 3;
457
- for (let i = 0, len = data.length; i < len; i += 4) {
458
- if (data[i + 3] === 255) {
459
- dataU[offset] = data[i];
460
- dataU[offset + 1] = data[i + 1];
461
- dataU[offset + 2] = data[i + 2];
462
- } else {
463
- dataU[offset] = 0;
464
- dataU[offset + 1] = 0;
465
- dataU[offset + 2] = 0;
466
- }
467
- offset += bytesPerPixel;
445
+ releaseCanvas(context);
446
+ canvasPool.push(canvas);
447
+
448
+ if (!dataR) {
449
+ dataU = new Uint8ClampedArray(
450
+ bytesPerPixel * imageData.width * imageData.height,
451
+ );
452
+ dataR = new dataSources[0].dataType(dataU.buffer);
453
+ }
454
+
455
+ const data = imageData.data;
456
+ let offset = reproj * 3;
457
+ for (let i = 0, len = data.length; i < len; i += 4) {
458
+ if (data[i + 3] === 255) {
459
+ dataU[offset] = data[i];
460
+ dataU[offset + 1] = data[i + 1];
461
+ dataU[offset + 2] = data[i + 2];
462
+ } else {
463
+ dataU[offset] = 0;
464
+ dataU[offset + 1] = 0;
465
+ dataU[offset + 2] = 0;
468
466
  }
467
+ offset += bytesPerPixel;
469
468
  }
469
+ }
470
470
 
471
+ if (imageLike) {
472
+ const context = createCanvasContext2D(targetWidth, targetHeight);
473
+ const imageData = new ImageData(dataR, targetWidth);
474
+ context.putImageData(imageData, 0, 0);
475
+ this.reprojData_ = context.canvas;
476
+ } else {
471
477
  this.reprojData_ = dataR;
472
- this.reprojSize_ = [
473
- Math.round(targetWidth * this.pixelRatio_),
474
- Math.round(targetHeight * this.pixelRatio_),
475
- ];
476
- this.state = TileState.LOADED;
477
478
  }
479
+ this.reprojSize_ = [
480
+ Math.round(targetWidth * this.pixelRatio_),
481
+ Math.round(targetHeight * this.pixelRatio_),
482
+ ];
483
+ this.state = TileState.LOADED;
478
484
  this.changed();
479
485
  }
480
486
 
481
487
  /**
482
488
  * Load not yet loaded URI.
489
+ * @override
483
490
  */
484
491
  load() {
485
492
  if (this.state !== TileState.IDLE && this.state !== TileState.ERROR) {
@@ -498,26 +505,21 @@ class ReprojDataTile extends DataTile {
498
505
  }
499
506
  leftToLoad++;
500
507
 
501
- const sourceListenKey = listen(
502
- tile,
503
- EventType.CHANGE,
504
- function () {
505
- const state = tile.getState();
506
- if (
507
- state == TileState.LOADED ||
508
- state == TileState.ERROR ||
509
- state == TileState.EMPTY
510
- ) {
511
- unlistenByKey(sourceListenKey);
512
- leftToLoad--;
513
- if (leftToLoad === 0) {
514
- this.unlistenSources_();
515
- this.reproject_();
516
- }
508
+ const sourceListenKey = listen(tile, EventType.CHANGE, () => {
509
+ const state = tile.getState();
510
+ if (
511
+ state == TileState.LOADED ||
512
+ state == TileState.ERROR ||
513
+ state == TileState.EMPTY
514
+ ) {
515
+ unlistenByKey(sourceListenKey);
516
+ leftToLoad--;
517
+ if (leftToLoad === 0) {
518
+ this.unlistenSources_();
519
+ this.reproject_();
517
520
  }
518
- },
519
- this,
520
- );
521
+ }
522
+ });
521
523
  this.sourcesListenerKeys_.push(sourceListenKey);
522
524
  });
523
525
 
package/reproj/Image.d.ts CHANGED
@@ -72,8 +72,9 @@ declare class ReprojImage extends ImageWrapper {
72
72
  private sourceListenerKey_;
73
73
  /**
74
74
  * @return {HTMLCanvasElement} Image.
75
+ * @override
75
76
  */
76
- getImage(): HTMLCanvasElement;
77
+ override getImage(): HTMLCanvasElement;
77
78
  /**
78
79
  * @return {import("../proj/Projection.js").default} Projection.
79
80
  */