@mapwhit/tilerenderer 0.52.1 → 1.1.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 (249) hide show
  1. package/README.md +7 -0
  2. package/build/min/package.json +2 -1
  3. package/build/min/src/shaders/_prelude.fragment.glsl.js +2 -2
  4. package/build/min/src/shaders/_prelude.vertex.glsl.js +2 -2
  5. package/build/min/src/shaders/background.fragment.glsl.js +2 -2
  6. package/build/min/src/shaders/background.vertex.glsl.js +1 -1
  7. package/build/min/src/shaders/background_pattern.fragment.glsl.js +2 -2
  8. package/build/min/src/shaders/background_pattern.vertex.glsl.js +1 -1
  9. package/build/min/src/shaders/circle.fragment.glsl.js +2 -2
  10. package/build/min/src/shaders/circle.vertex.glsl.js +2 -2
  11. package/build/min/src/shaders/clipping_mask.fragment.glsl.js +1 -1
  12. package/build/min/src/shaders/clipping_mask.vertex.glsl.js +1 -1
  13. package/build/min/src/shaders/collision_box.fragment.glsl.js +1 -1
  14. package/build/min/src/shaders/collision_box.vertex.glsl.js +1 -1
  15. package/build/min/src/shaders/collision_circle.fragment.glsl.js +1 -1
  16. package/build/min/src/shaders/collision_circle.vertex.glsl.js +1 -1
  17. package/build/min/src/shaders/debug.fragment.glsl.js +1 -1
  18. package/build/min/src/shaders/debug.vertex.glsl.js +1 -1
  19. package/build/min/src/shaders/fill.fragment.glsl.js +2 -2
  20. package/build/min/src/shaders/fill.vertex.glsl.js +2 -2
  21. package/build/min/src/shaders/fill_extrusion.fragment.glsl.js +2 -2
  22. package/build/min/src/shaders/fill_extrusion.vertex.glsl.js +2 -2
  23. package/build/min/src/shaders/fill_extrusion_pattern.fragment.glsl.js +2 -2
  24. package/build/min/src/shaders/fill_extrusion_pattern.vertex.glsl.js +2 -2
  25. package/build/min/src/shaders/fill_outline.fragment.glsl.js +2 -2
  26. package/build/min/src/shaders/fill_outline.vertex.glsl.js +2 -2
  27. package/build/min/src/shaders/fill_outline_pattern.fragment.glsl.js +2 -2
  28. package/build/min/src/shaders/fill_outline_pattern.vertex.glsl.js +2 -2
  29. package/build/min/src/shaders/fill_pattern.fragment.glsl.js +2 -2
  30. package/build/min/src/shaders/fill_pattern.vertex.glsl.js +2 -2
  31. package/build/min/src/shaders/heatmap.fragment.glsl.js +2 -2
  32. package/build/min/src/shaders/heatmap.vertex.glsl.js +2 -2
  33. package/build/min/src/shaders/heatmap_texture.fragment.glsl.js +2 -2
  34. package/build/min/src/shaders/heatmap_texture.vertex.glsl.js +1 -1
  35. package/build/min/src/shaders/hillshade.fragment.glsl.js +2 -2
  36. package/build/min/src/shaders/hillshade.vertex.glsl.js +1 -1
  37. package/build/min/src/shaders/hillshade_prepare.fragment.glsl.js +2 -2
  38. package/build/min/src/shaders/hillshade_prepare.vertex.glsl.js +1 -1
  39. package/build/min/src/shaders/line.fragment.glsl.js +2 -2
  40. package/build/min/src/shaders/line.vertex.glsl.js +2 -2
  41. package/build/min/src/shaders/line_gradient.fragment.glsl.js +2 -2
  42. package/build/min/src/shaders/line_gradient.vertex.glsl.js +2 -2
  43. package/build/min/src/shaders/line_pattern.fragment.glsl.js +2 -2
  44. package/build/min/src/shaders/line_pattern.vertex.glsl.js +2 -2
  45. package/build/min/src/shaders/line_sdf.fragment.glsl.js +2 -2
  46. package/build/min/src/shaders/line_sdf.vertex.glsl.js +2 -2
  47. package/build/min/src/shaders/raster.fragment.glsl.js +2 -2
  48. package/build/min/src/shaders/raster.vertex.glsl.js +1 -1
  49. package/build/min/src/shaders/symbol_icon.fragment.glsl.js +2 -2
  50. package/build/min/src/shaders/symbol_icon.vertex.glsl.js +2 -2
  51. package/build/min/src/shaders/symbol_sdf.fragment.glsl.js +2 -2
  52. package/build/min/src/shaders/symbol_sdf.vertex.glsl.js +2 -2
  53. package/package.json +5 -4
  54. package/src/data/array_types.js +55 -117
  55. package/src/data/bucket/circle_attributes.js +2 -4
  56. package/src/data/bucket/circle_bucket.js +19 -16
  57. package/src/data/bucket/fill_attributes.js +2 -4
  58. package/src/data/bucket/fill_bucket.js +38 -27
  59. package/src/data/bucket/fill_extrusion_attributes.js +2 -4
  60. package/src/data/bucket/fill_extrusion_bucket.js +56 -37
  61. package/src/data/bucket/heatmap_bucket.js +2 -11
  62. package/src/data/bucket/line_attributes.js +2 -4
  63. package/src/data/bucket/line_bucket.js +208 -163
  64. package/src/data/bucket/pattern_attributes.js +2 -4
  65. package/src/data/bucket/pattern_bucket_features.js +7 -9
  66. package/src/data/bucket/symbol_attributes.js +12 -26
  67. package/src/data/bucket/symbol_bucket.js +174 -323
  68. package/src/data/bucket/symbol_buffers.js +62 -0
  69. package/src/data/bucket/symbol_collision_buffers.js +33 -0
  70. package/src/data/bucket.js +26 -25
  71. package/src/data/dem_data.js +11 -10
  72. package/src/data/extent.js +1 -1
  73. package/src/data/feature_index.js +38 -28
  74. package/src/data/index_array_type.js +1 -6
  75. package/src/data/load_geometry.js +6 -9
  76. package/src/data/pos_attributes.js +2 -3
  77. package/src/data/program_configuration.js +47 -38
  78. package/src/data/raster_bounds_attributes.js +2 -2
  79. package/src/data/segment.js +4 -7
  80. package/src/geo/coordinate.js +1 -1
  81. package/src/geo/lng_lat.js +3 -3
  82. package/src/geo/lng_lat_bounds.js +8 -4
  83. package/src/geo/transform.js +69 -30
  84. package/src/gl/color_mode.js +2 -2
  85. package/src/gl/context.js +28 -29
  86. package/src/gl/cull_face_mode.js +1 -1
  87. package/src/gl/depth_mode.js +1 -1
  88. package/src/gl/framebuffer.js +8 -4
  89. package/src/gl/index_buffer.js +2 -2
  90. package/src/gl/stencil_mode.js +1 -1
  91. package/src/gl/value.js +33 -68
  92. package/src/gl/vertex_buffer.js +2 -2
  93. package/src/index.js +49 -25
  94. package/src/render/draw_background.js +17 -12
  95. package/src/render/draw_circle.js +15 -12
  96. package/src/render/draw_collision_debug.js +11 -8
  97. package/src/render/draw_debug.js +16 -14
  98. package/src/render/draw_fill.js +27 -20
  99. package/src/render/draw_fill_extrusion.js +20 -17
  100. package/src/render/draw_heatmap.js +21 -16
  101. package/src/render/draw_hillshade.js +12 -9
  102. package/src/render/draw_line.js +36 -22
  103. package/src/render/draw_raster.js +22 -18
  104. package/src/render/draw_symbol.js +38 -33
  105. package/src/render/glyph_atlas.js +9 -8
  106. package/src/render/glyph_manager.js +2 -3
  107. package/src/render/image_atlas.js +4 -11
  108. package/src/render/image_manager.js +39 -28
  109. package/src/render/line_atlas.js +2 -2
  110. package/src/render/painter.js +78 -61
  111. package/src/render/program/background_program.js +6 -13
  112. package/src/render/program/circle_program.js +8 -10
  113. package/src/render/program/clipping_mask_program.js +3 -5
  114. package/src/render/program/collision_program.js +4 -6
  115. package/src/render/program/debug_program.js +3 -5
  116. package/src/render/program/fill_extrusion_program.js +9 -15
  117. package/src/render/program/fill_program.js +10 -21
  118. package/src/render/program/heatmap_program.js +9 -15
  119. package/src/render/program/hillshade_program.js +16 -22
  120. package/src/render/program/line_program.js +14 -25
  121. package/src/render/program/pattern.js +5 -7
  122. package/src/render/program/program_uniforms.js +13 -20
  123. package/src/render/program/raster_program.js +9 -11
  124. package/src/render/program/symbol_program.js +5 -7
  125. package/src/render/program.js +5 -6
  126. package/src/render/texture.js +1 -1
  127. package/src/render/tile_mask.js +6 -4
  128. package/src/render/uniform_binding.js +9 -20
  129. package/src/render/vertex_array_object.js +5 -3
  130. package/src/shaders/encode_attribute.js +2 -6
  131. package/src/shaders/index.js +103 -51
  132. package/src/source/geojson_source.js +25 -30
  133. package/src/source/geojson_worker_source.js +46 -74
  134. package/src/source/geojson_wrapper.js +13 -5
  135. package/src/source/image_source.js +17 -28
  136. package/src/source/load_tilejson.js +3 -3
  137. package/src/source/pixels_to_tile_units.js +3 -3
  138. package/src/source/query_features.js +17 -15
  139. package/src/source/raster_dem_tile_source.js +54 -71
  140. package/src/source/raster_tile_source.js +14 -15
  141. package/src/source/resources/glyphs.js +4 -5
  142. package/src/source/resources/index.js +4 -12
  143. package/src/source/rtl_text_plugin.js +62 -35
  144. package/src/source/source.js +14 -22
  145. package/src/source/source_cache.js +221 -179
  146. package/src/source/source_state.js +125 -13
  147. package/src/source/tile.js +67 -66
  148. package/src/source/tile_bounds.js +36 -29
  149. package/src/source/tile_cache.js +2 -2
  150. package/src/source/tile_id.js +30 -26
  151. package/src/source/vector_tile_source.js +23 -21
  152. package/src/source/vector_tile_worker_source.js +22 -26
  153. package/src/source/worker_tile.js +139 -134
  154. package/src/style/create_style_layer.js +11 -11
  155. package/src/style/evaluation_parameters.js +4 -6
  156. package/src/style/light.js +5 -5
  157. package/src/style/load_sprite.js +6 -6
  158. package/src/style/parse_glyph_pbf.js +21 -17
  159. package/src/style/pauseable_placement.js +7 -9
  160. package/src/style/properties.js +21 -51
  161. package/src/style/query_utils.js +7 -13
  162. package/src/style/style.js +314 -221
  163. package/src/style/style_layer/background_style_layer.js +3 -4
  164. package/src/style/style_layer/background_style_layer_properties.js +2 -2
  165. package/src/style/style_layer/circle_style_layer.js +25 -20
  166. package/src/style/style_layer/circle_style_layer_properties.js +2 -2
  167. package/src/style/style_layer/fill_extrusion_style_layer.js +55 -37
  168. package/src/style/style_layer/fill_extrusion_style_layer_properties.js +2 -2
  169. package/src/style/style_layer/fill_style_layer.js +11 -12
  170. package/src/style/style_layer/fill_style_layer_properties.js +2 -2
  171. package/src/style/style_layer/heatmap_style_layer.js +6 -7
  172. package/src/style/style_layer/heatmap_style_layer_properties.js +2 -2
  173. package/src/style/style_layer/hillshade_style_layer.js +4 -5
  174. package/src/style/style_layer/hillshade_style_layer_properties.js +2 -2
  175. package/src/style/style_layer/line_style_layer.js +33 -30
  176. package/src/style/style_layer/line_style_layer_properties.js +5 -5
  177. package/src/style/style_layer/raster_style_layer.js +3 -4
  178. package/src/style/style_layer/raster_style_layer_properties.js +2 -2
  179. package/src/style/style_layer/symbol_style_layer.js +20 -21
  180. package/src/style/style_layer/symbol_style_layer_properties.js +2 -2
  181. package/src/style/style_layer.js +66 -47
  182. package/src/style/style_layer_index.js +17 -42
  183. package/src/style/zoom_history.js +1 -1
  184. package/src/style-spec/error/parsing_error.js +1 -1
  185. package/src/style-spec/error/validation_error.js +5 -3
  186. package/src/style-spec/feature_filter/convert.js +17 -9
  187. package/src/style-spec/feature_filter/index.js +13 -9
  188. package/src/style-spec/util/eval_support.js +2 -2
  189. package/src/style-spec/util/ref_properties.js +1 -1
  190. package/src/symbol/anchor.js +2 -6
  191. package/src/symbol/check_max_angle.js +13 -5
  192. package/src/symbol/clip_line.js +2 -3
  193. package/src/symbol/collision_feature.js +8 -4
  194. package/src/symbol/collision_index.js +5 -7
  195. package/src/symbol/cross_tile_symbol_index.js +7 -10
  196. package/src/symbol/get_anchors.js +15 -8
  197. package/src/symbol/grid_index.js +5 -3
  198. package/src/symbol/mergelines.js +2 -2
  199. package/src/symbol/opacity_state.js +1 -5
  200. package/src/symbol/placement.js +28 -23
  201. package/src/symbol/projection.js +29 -28
  202. package/src/symbol/quads.js +14 -16
  203. package/src/symbol/shaping.js +27 -19
  204. package/src/symbol/symbol_layout.js +24 -28
  205. package/src/symbol/symbol_size.js +13 -12
  206. package/src/symbol/transform_text.js +4 -4
  207. package/src/ui/camera.js +34 -18
  208. package/src/ui/map.js +102 -44
  209. package/src/util/async.js +11 -5
  210. package/src/util/browser.js +1 -1
  211. package/src/util/callback.js +3 -9
  212. package/src/util/classify_rings.js +13 -8
  213. package/src/util/color_ramp.js +3 -3
  214. package/src/util/config.js +4 -4
  215. package/src/util/dictionary_coder.js +2 -3
  216. package/src/util/dom.js +7 -3
  217. package/src/util/find_pole_of_inaccessibility.js +29 -14
  218. package/src/util/group_layers.js +41 -0
  219. package/src/util/image.js +3 -13
  220. package/src/util/interpolate.js +1 -1
  221. package/src/util/intersection_tests.js +80 -42
  222. package/src/util/is_char_in_unicode_block.js +1 -1
  223. package/src/util/key.js +25 -0
  224. package/src/util/loader/image.js +1 -1
  225. package/src/util/object.js +33 -76
  226. package/src/util/script_detection.js +212 -91
  227. package/src/util/struct_array.js +8 -40
  228. package/src/util/task_queue.js +11 -7
  229. package/src/util/throttle.js +2 -2
  230. package/src/util/tile_cover.js +8 -5
  231. package/src/util/token.js +1 -1
  232. package/src/util/unique_id.js +2 -2
  233. package/src/util/util.js +21 -29
  234. package/src/util/vectortile_to_geojson.js +4 -2
  235. package/src/util/verticalize_punctuation.js +3 -7
  236. package/src/util/warn.js +4 -4
  237. package/src/util/web_worker.js +3 -3
  238. package/src/worker.js +1 -4
  239. package/src/source/resources/images.js +0 -68
  240. package/src/source/worker.js +0 -110
  241. package/src/source/worker_source.js +0 -14
  242. package/src/style-spec/deref.js +0 -51
  243. package/src/style-spec/group_by_layout.js +0 -46
  244. package/src/util/actor.js +0 -108
  245. package/src/util/dispatcher.js +0 -65
  246. package/src/util/global_worker_pool.js +0 -15
  247. package/src/util/transfer_registry.js +0 -168
  248. package/src/util/web_worker_transfer.js +0 -43
  249. package/src/util/worker_pool.js +0 -41
@@ -1,10 +1,8 @@
1
- const assert = require('assert');
2
-
3
- const { clone } = require('../util/object');
4
- const { easeCubicInOut } = require('../util/util');
5
- const { interpolate, normalizePropertyExpression } = require('@mapwhit/style-expressions');
6
- const { register } = require('../util/transfer_registry');
7
- const EvaluationParameters = require('./evaluation_parameters');
1
+ import { interpolate, normalizePropertyExpression } from '@mapwhit/style-expressions';
2
+ import assert from 'assert';
3
+ import { clone } from '../util/object.js';
4
+ import { easeCubicInOut } from '../util/util.js';
5
+ import EvaluationParameters from './evaluation_parameters.js';
8
6
 
9
7
  /**
10
8
  * Implements a number of classes that define state and behavior for paint and layout properties, most
@@ -61,7 +59,7 @@ const EvaluationParameters = require('./evaluation_parameters');
61
59
  *
62
60
  * @private
63
61
  */
64
- class PropertyValue {
62
+ export class PropertyValue {
65
63
  constructor(property, value) {
66
64
  this.property = property;
67
65
  this.value = value;
@@ -98,7 +96,7 @@ class PropertyValue {
98
96
  *
99
97
  * @private
100
98
  */
101
- class TransitionablePropertyValue {
99
+ export class TransitionablePropertyValue {
102
100
  constructor(property) {
103
101
  this.property = property;
104
102
  this.value = new PropertyValue(property, undefined);
@@ -133,7 +131,7 @@ class TransitionablePropertyValue {
133
131
  *
134
132
  * @private
135
133
  */
136
- class Transitionable {
134
+ export class Transitionable {
137
135
  constructor(properties) {
138
136
  this._properties = properties;
139
137
  this._values = Object.create(properties.defaultTransitionablePropertyValues);
@@ -210,7 +208,7 @@ class Transitionable {
210
208
  *
211
209
  * @private
212
210
  */
213
- class TransitioningPropertyValue {
211
+ export class TransitioningPropertyValue {
214
212
  constructor(property, value, prior, transition, now) {
215
213
  this.property = property;
216
214
  this.value = value;
@@ -265,7 +263,7 @@ class TransitioningPropertyValue {
265
263
  *
266
264
  * @private
267
265
  */
268
- class Transitioning {
266
+ export class Transitioning {
269
267
  constructor(properties) {
270
268
  this._properties = properties;
271
269
  this._values = Object.create(properties.defaultTransitioningPropertyValues);
@@ -309,7 +307,7 @@ class Transitioning {
309
307
  *
310
308
  * @private
311
309
  */
312
- class Layout {
310
+ export class Layout {
313
311
  constructor(properties) {
314
312
  this._properties = properties;
315
313
  this._values = Object.create(properties.defaultPropertyValues);
@@ -375,7 +373,7 @@ class Layout {
375
373
  *
376
374
  * @private
377
375
  */
378
- class PossiblyEvaluatedPropertyValue {
376
+ export class PossiblyEvaluatedPropertyValue {
379
377
  constructor(property, value, parameters) {
380
378
  this.property = property;
381
379
  this.value = value;
@@ -403,15 +401,8 @@ class PossiblyEvaluatedPropertyValue {
403
401
  * an object type with the same keys, and values of type `R`.
404
402
  *
405
403
  * For properties that don't allow data-driven values, `R` is a scalar type such as `number`, `string`, or `Color`.
406
- * For data-driven properties, it is `PossiblyEvaluatedPropertyValue`. Critically, the type definitions are set up
407
- * in a way that allows flow to know which of these two cases applies for any given property name, and if you attempt
408
- * to use a `PossiblyEvaluatedPropertyValue` as if it was a scalar, or vice versa, you will get a type error. (However,
409
- * there's at least one case in which flow fails to produce a type error that you should be aware of: in a context such
410
- * as `layer.paint.get('foo-opacity') === 0`, if `foo-opacity` is data-driven, than the left-hand side is of type
411
- * `PossiblyEvaluatedPropertyValue<number>`, but flow will not complain about comparing this to a number using `===`.
412
- * See https://github.com/facebook/flow/issues/2359.)
413
- *
414
- * There's also a third, special case possiblity for `R`: for cross-faded properties, it's `?CrossFaded<T>`.
404
+ * For data-driven properties, it is `PossiblyEvaluatedPropertyValue`.
405
+ * For cross-faded properties, it's `?CrossFaded<T>`.
415
406
  *
416
407
  * @private
417
408
  */
@@ -421,7 +412,7 @@ class PossiblyEvaluatedPropertyValue {
421
412
  * given layer type.
422
413
  * @private
423
414
  */
424
- class PossiblyEvaluated {
415
+ export class PossiblyEvaluated {
425
416
  constructor(properties) {
426
417
  this._properties = properties;
427
418
  this._values = Object.create(properties.defaultPossiblyEvaluatedValues);
@@ -439,7 +430,7 @@ class PossiblyEvaluated {
439
430
  *
440
431
  * @private
441
432
  */
442
- class DataConstantProperty {
433
+ export class DataConstantProperty {
443
434
  constructor(specification) {
444
435
  this.specification = specification;
445
436
  this.specification['property-type'] ??= 'data-constant';
@@ -466,7 +457,7 @@ class DataConstantProperty {
466
457
  *
467
458
  * @private
468
459
  */
469
- class DataDrivenProperty {
460
+ export class DataDrivenProperty {
470
461
  constructor(specification) {
471
462
  this.specification = specification;
472
463
  this.specification['property-type'] ??= 'data-driven';
@@ -526,7 +517,7 @@ class DataDrivenProperty {
526
517
  * @private
527
518
  */
528
519
 
529
- class CrossFadedDataDrivenProperty extends DataDrivenProperty {
520
+ export class CrossFadedDataDrivenProperty extends DataDrivenProperty {
530
521
  constructor(specification) {
531
522
  specification['property-type'] ??= 'cross-faded-data-driven';
532
523
  super(specification);
@@ -586,7 +577,7 @@ class CrossFadedDataDrivenProperty extends DataDrivenProperty {
586
577
  *
587
578
  * @private
588
579
  */
589
- class CrossFadedProperty {
580
+ export class CrossFadedProperty {
590
581
  constructor(specification) {
591
582
  this.specification = specification;
592
583
  this.specification['property-type'] ??= 'cross-faded';
@@ -627,7 +618,7 @@ class CrossFadedProperty {
627
618
  * @private
628
619
  */
629
620
 
630
- class ColorRampProperty {
621
+ export class ColorRampProperty {
631
622
  constructor(specification) {
632
623
  this.specification = specification;
633
624
  this.specification['property-type'] ??= 'color-ramp';
@@ -653,7 +644,7 @@ class ColorRampProperty {
653
644
  *
654
645
  * @private
655
646
  */
656
- class Properties {
647
+ export class Properties {
657
648
  constructor(properties) {
658
649
  this.properties = properties;
659
650
  this.defaultPropertyValues = {};
@@ -671,24 +662,3 @@ class Properties {
671
662
  }
672
663
  }
673
664
  }
674
-
675
- register('DataDrivenProperty', DataDrivenProperty);
676
- register('DataConstantProperty', DataConstantProperty);
677
- register('CrossFadedDataDrivenProperty', CrossFadedDataDrivenProperty);
678
- register('CrossFadedProperty', CrossFadedProperty);
679
- register('ColorRampProperty', ColorRampProperty);
680
-
681
- module.exports = {
682
- PropertyValue,
683
- Transitionable,
684
- Transitioning,
685
- Layout,
686
- PossiblyEvaluatedPropertyValue,
687
- PossiblyEvaluated,
688
- DataConstantProperty,
689
- DataDrivenProperty,
690
- CrossFadedDataDrivenProperty,
691
- CrossFadedProperty,
692
- ColorRampProperty,
693
- Properties
694
- };
@@ -1,13 +1,7 @@
1
- const { default: Point } = require('@mapbox/point-geometry');
1
+ import Point from '@mapbox/point-geometry';
2
2
 
3
- module.exports = {
4
- getMaximumPaintValue,
5
- translateDistance,
6
- translate
7
- };
8
-
9
- function getMaximumPaintValue(property, layer, bucket) {
10
- const value = layer.paint.get(property).value;
3
+ export function getMaximumPaintValue(property, layer, bucket) {
4
+ const value = layer._paint.get(property).value;
11
5
  if (value.kind === 'constant') {
12
6
  return value.value;
13
7
  }
@@ -15,16 +9,16 @@ function getMaximumPaintValue(property, layer, bucket) {
15
9
  return binders[property].maxValue;
16
10
  }
17
11
 
18
- function translateDistance(translate) {
12
+ export function translateDistance(translate) {
19
13
  return Math.sqrt(translate[0] * translate[0] + translate[1] * translate[1]);
20
14
  }
21
15
 
22
- function translate(queryGeometry, translate, translateAnchor, bearing, pixelsToTileUnits) {
16
+ export function translate(queryGeometry, translate, translateAnchor, bearing, pixelsToTileUnits) {
23
17
  if (!translate[0] && !translate[1]) {
24
18
  return queryGeometry;
25
19
  }
26
20
 
27
- const pt = Point.convert(translate);
21
+ const pt = Point.convert(translate)._mult(pixelsToTileUnits);
28
22
 
29
23
  if (translateAnchor === 'viewport') {
30
24
  pt._rotate(-bearing);
@@ -33,7 +27,7 @@ function translate(queryGeometry, translate, translateAnchor, bearing, pixelsToT
33
27
  const translated = [];
34
28
  for (let i = 0; i < queryGeometry.length; i++) {
35
29
  const point = queryGeometry[i];
36
- translated.push(point.sub(pt._mult(pixelsToTileUnits)));
30
+ translated.push(point.sub(pt));
37
31
  }
38
32
  return translated;
39
33
  }