@mapwhit/tilerenderer 1.0.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/min/package.json +2 -1
- package/build/min/src/shaders/_prelude.fragment.glsl.js +1 -1
- package/build/min/src/shaders/_prelude.vertex.glsl.js +1 -1
- package/build/min/src/shaders/background.fragment.glsl.js +1 -1
- package/build/min/src/shaders/background.vertex.glsl.js +1 -1
- package/build/min/src/shaders/background_pattern.fragment.glsl.js +1 -1
- package/build/min/src/shaders/background_pattern.vertex.glsl.js +1 -1
- package/build/min/src/shaders/circle.fragment.glsl.js +1 -1
- package/build/min/src/shaders/circle.vertex.glsl.js +1 -1
- package/build/min/src/shaders/clipping_mask.fragment.glsl.js +1 -1
- package/build/min/src/shaders/clipping_mask.vertex.glsl.js +1 -1
- package/build/min/src/shaders/collision_box.fragment.glsl.js +1 -1
- package/build/min/src/shaders/collision_box.vertex.glsl.js +1 -1
- package/build/min/src/shaders/collision_circle.fragment.glsl.js +1 -1
- package/build/min/src/shaders/collision_circle.vertex.glsl.js +1 -1
- package/build/min/src/shaders/debug.fragment.glsl.js +1 -1
- package/build/min/src/shaders/debug.vertex.glsl.js +1 -1
- package/build/min/src/shaders/fill.fragment.glsl.js +1 -1
- package/build/min/src/shaders/fill.vertex.glsl.js +1 -1
- package/build/min/src/shaders/fill_extrusion.fragment.glsl.js +1 -1
- package/build/min/src/shaders/fill_extrusion.vertex.glsl.js +1 -1
- package/build/min/src/shaders/fill_extrusion_pattern.fragment.glsl.js +1 -1
- package/build/min/src/shaders/fill_extrusion_pattern.vertex.glsl.js +1 -1
- package/build/min/src/shaders/fill_outline.fragment.glsl.js +1 -1
- package/build/min/src/shaders/fill_outline.vertex.glsl.js +1 -1
- package/build/min/src/shaders/fill_outline_pattern.fragment.glsl.js +1 -1
- package/build/min/src/shaders/fill_outline_pattern.vertex.glsl.js +1 -1
- package/build/min/src/shaders/fill_pattern.fragment.glsl.js +1 -1
- package/build/min/src/shaders/fill_pattern.vertex.glsl.js +1 -1
- package/build/min/src/shaders/heatmap.fragment.glsl.js +1 -1
- package/build/min/src/shaders/heatmap.vertex.glsl.js +1 -1
- package/build/min/src/shaders/heatmap_texture.fragment.glsl.js +1 -1
- package/build/min/src/shaders/heatmap_texture.vertex.glsl.js +1 -1
- package/build/min/src/shaders/hillshade.fragment.glsl.js +1 -1
- package/build/min/src/shaders/hillshade.vertex.glsl.js +1 -1
- package/build/min/src/shaders/hillshade_prepare.fragment.glsl.js +1 -1
- package/build/min/src/shaders/hillshade_prepare.vertex.glsl.js +1 -1
- package/build/min/src/shaders/line.fragment.glsl.js +1 -1
- package/build/min/src/shaders/line.vertex.glsl.js +1 -1
- package/build/min/src/shaders/line_gradient.fragment.glsl.js +1 -1
- package/build/min/src/shaders/line_gradient.vertex.glsl.js +1 -1
- package/build/min/src/shaders/line_pattern.fragment.glsl.js +1 -1
- package/build/min/src/shaders/line_pattern.vertex.glsl.js +1 -1
- package/build/min/src/shaders/line_sdf.fragment.glsl.js +1 -1
- package/build/min/src/shaders/line_sdf.vertex.glsl.js +1 -1
- package/build/min/src/shaders/raster.fragment.glsl.js +1 -1
- package/build/min/src/shaders/raster.vertex.glsl.js +1 -1
- package/build/min/src/shaders/symbol_icon.fragment.glsl.js +1 -1
- package/build/min/src/shaders/symbol_icon.vertex.glsl.js +1 -1
- package/build/min/src/shaders/symbol_sdf.fragment.glsl.js +1 -1
- package/build/min/src/shaders/symbol_sdf.vertex.glsl.js +1 -1
- package/package.json +3 -2
- package/src/data/array_types.js +54 -81
- package/src/data/bucket/circle_attributes.js +2 -4
- package/src/data/bucket/circle_bucket.js +19 -13
- package/src/data/bucket/fill_attributes.js +2 -4
- package/src/data/bucket/fill_bucket.js +38 -24
- package/src/data/bucket/fill_extrusion_attributes.js +2 -4
- package/src/data/bucket/fill_extrusion_bucket.js +56 -34
- package/src/data/bucket/heatmap_bucket.js +2 -7
- package/src/data/bucket/line_attributes.js +2 -4
- package/src/data/bucket/line_bucket.js +207 -159
- package/src/data/bucket/pattern_attributes.js +2 -4
- package/src/data/bucket/pattern_bucket_features.js +5 -7
- package/src/data/bucket/symbol_attributes.js +12 -26
- package/src/data/bucket/symbol_bucket.js +111 -221
- package/src/data/bucket/symbol_buffers.js +62 -0
- package/src/data/bucket/symbol_collision_buffers.js +33 -0
- package/src/data/bucket.js +2 -6
- package/src/data/dem_data.js +11 -7
- package/src/data/extent.js +1 -1
- package/src/data/feature_index.js +35 -20
- package/src/data/index_array_type.js +1 -6
- package/src/data/load_geometry.js +6 -9
- package/src/data/pos_attributes.js +2 -3
- package/src/data/program_configuration.js +44 -26
- package/src/data/raster_bounds_attributes.js +2 -2
- package/src/data/segment.js +4 -3
- package/src/geo/coordinate.js +1 -1
- package/src/geo/lng_lat.js +3 -3
- package/src/geo/lng_lat_bounds.js +8 -4
- package/src/geo/transform.js +69 -30
- package/src/gl/color_mode.js +2 -2
- package/src/gl/context.js +28 -29
- package/src/gl/cull_face_mode.js +1 -1
- package/src/gl/depth_mode.js +1 -1
- package/src/gl/framebuffer.js +8 -4
- package/src/gl/index_buffer.js +2 -2
- package/src/gl/stencil_mode.js +1 -1
- package/src/gl/value.js +33 -68
- package/src/gl/vertex_buffer.js +2 -2
- package/src/index.js +49 -25
- package/src/render/draw_background.js +14 -9
- package/src/render/draw_circle.js +11 -8
- package/src/render/draw_collision_debug.js +11 -8
- package/src/render/draw_debug.js +16 -14
- package/src/render/draw_fill.js +19 -12
- package/src/render/draw_fill_extrusion.js +12 -9
- package/src/render/draw_heatmap.js +17 -12
- package/src/render/draw_hillshade.js +12 -9
- package/src/render/draw_line.js +30 -16
- package/src/render/draw_raster.js +17 -13
- package/src/render/draw_symbol.js +22 -17
- package/src/render/glyph_atlas.js +9 -5
- package/src/render/glyph_manager.js +1 -1
- package/src/render/image_atlas.js +4 -7
- package/src/render/image_manager.js +6 -9
- package/src/render/line_atlas.js +2 -2
- package/src/render/painter.js +65 -47
- package/src/render/program/background_program.js +6 -13
- package/src/render/program/circle_program.js +4 -6
- package/src/render/program/clipping_mask_program.js +3 -5
- package/src/render/program/collision_program.js +4 -6
- package/src/render/program/debug_program.js +3 -5
- package/src/render/program/fill_extrusion_program.js +8 -14
- package/src/render/program/fill_program.js +10 -21
- package/src/render/program/heatmap_program.js +8 -14
- package/src/render/program/hillshade_program.js +10 -16
- package/src/render/program/line_program.js +11 -22
- package/src/render/program/pattern.js +5 -7
- package/src/render/program/program_uniforms.js +13 -20
- package/src/render/program/raster_program.js +3 -5
- package/src/render/program/symbol_program.js +5 -7
- package/src/render/program.js +5 -6
- package/src/render/texture.js +1 -1
- package/src/render/tile_mask.js +6 -4
- package/src/render/uniform_binding.js +9 -20
- package/src/render/vertex_array_object.js +5 -3
- package/src/shaders/encode_attribute.js +2 -6
- package/src/shaders/index.js +103 -51
- package/src/source/geojson_source.js +11 -7
- package/src/source/geojson_worker_source.js +7 -7
- package/src/source/geojson_wrapper.js +4 -4
- package/src/source/image_source.js +11 -12
- package/src/source/load_tilejson.js +3 -3
- package/src/source/pixels_to_tile_units.js +3 -3
- package/src/source/query_features.js +13 -10
- package/src/source/raster_dem_tile_source.js +12 -10
- package/src/source/raster_tile_source.js +13 -9
- package/src/source/resources/glyphs.js +2 -3
- package/src/source/resources/index.js +2 -4
- package/src/source/rtl_text_plugin.js +8 -8
- package/src/source/source.js +9 -15
- package/src/source/source_cache.js +114 -49
- package/src/source/source_state.js +37 -14
- package/src/source/tile.js +38 -23
- package/src/source/tile_bounds.js +15 -8
- package/src/source/tile_cache.js +2 -2
- package/src/source/tile_id.js +30 -23
- package/src/source/vector_tile_source.js +10 -8
- package/src/source/vector_tile_worker_source.js +4 -4
- package/src/source/worker_tile.js +24 -22
- package/src/style/create_style_layer.js +11 -11
- package/src/style/evaluation_parameters.js +4 -6
- package/src/style/light.js +5 -5
- package/src/style/load_sprite.js +6 -6
- package/src/style/parse_glyph_pbf.js +21 -17
- package/src/style/pauseable_placement.js +3 -4
- package/src/style/properties.js +21 -44
- package/src/style/query_utils.js +4 -10
- package/src/style/style.js +64 -34
- package/src/style/style_layer/background_style_layer.js +3 -4
- package/src/style/style_layer/background_style_layer_properties.js +2 -2
- package/src/style/style_layer/circle_style_layer.js +12 -9
- package/src/style/style_layer/circle_style_layer_properties.js +2 -2
- package/src/style/style_layer/fill_extrusion_style_layer.js +16 -13
- package/src/style/style_layer/fill_extrusion_style_layer_properties.js +2 -2
- package/src/style/style_layer/fill_style_layer.js +6 -7
- package/src/style/style_layer/fill_style_layer_properties.js +2 -2
- package/src/style/style_layer/heatmap_style_layer.js +5 -6
- package/src/style/style_layer/heatmap_style_layer_properties.js +2 -2
- package/src/style/style_layer/hillshade_style_layer.js +3 -4
- package/src/style/style_layer/hillshade_style_layer_properties.js +2 -2
- package/src/style/style_layer/line_style_layer.js +10 -11
- package/src/style/style_layer/line_style_layer_properties.js +5 -5
- package/src/style/style_layer/raster_style_layer.js +3 -4
- package/src/style/style_layer/raster_style_layer_properties.js +2 -2
- package/src/style/style_layer/symbol_style_layer.js +7 -8
- package/src/style/style_layer/symbol_style_layer_properties.js +2 -2
- package/src/style/style_layer.js +21 -20
- package/src/style/style_layer_index.js +2 -2
- package/src/style/zoom_history.js +1 -1
- package/src/style-spec/error/parsing_error.js +1 -1
- package/src/style-spec/error/validation_error.js +5 -3
- package/src/style-spec/feature_filter/convert.js +17 -9
- package/src/style-spec/feature_filter/index.js +13 -9
- package/src/style-spec/util/eval_support.js +2 -2
- package/src/style-spec/util/ref_properties.js +1 -1
- package/src/symbol/anchor.js +2 -2
- package/src/symbol/check_max_angle.js +13 -5
- package/src/symbol/clip_line.js +2 -3
- package/src/symbol/collision_feature.js +8 -4
- package/src/symbol/collision_index.js +5 -7
- package/src/symbol/cross_tile_symbol_index.js +5 -5
- package/src/symbol/get_anchors.js +15 -8
- package/src/symbol/grid_index.js +5 -3
- package/src/symbol/mergelines.js +2 -2
- package/src/symbol/opacity_state.js +1 -1
- package/src/symbol/placement.js +25 -20
- package/src/symbol/projection.js +29 -28
- package/src/symbol/quads.js +10 -12
- package/src/symbol/shaping.js +27 -19
- package/src/symbol/symbol_layout.js +17 -21
- package/src/symbol/symbol_size.js +13 -12
- package/src/symbol/transform_text.js +3 -3
- package/src/ui/camera.js +34 -18
- package/src/ui/map.js +54 -34
- package/src/util/async.js +11 -5
- package/src/util/browser.js +1 -1
- package/src/util/callback.js +3 -9
- package/src/util/classify_rings.js +13 -8
- package/src/util/color_ramp.js +3 -3
- package/src/util/config.js +4 -4
- package/src/util/dictionary_coder.js +2 -3
- package/src/util/dom.js +7 -3
- package/src/util/find_pole_of_inaccessibility.js +29 -14
- package/src/util/group_layers.js +1 -1
- package/src/util/image.js +3 -8
- package/src/util/interpolate.js +1 -1
- package/src/util/intersection_tests.js +80 -42
- package/src/util/is_char_in_unicode_block.js +1 -1
- package/src/util/key.js +7 -3
- package/src/util/loader/image.js +1 -1
- package/src/util/object.js +25 -23
- package/src/util/script_detection.js +212 -91
- package/src/util/struct_array.js +8 -40
- package/src/util/task_queue.js +11 -7
- package/src/util/throttle.js +2 -2
- package/src/util/tile_cover.js +8 -5
- package/src/util/token.js +1 -1
- package/src/util/unique_id.js +2 -2
- package/src/util/util.js +21 -29
- package/src/util/vectortile_to_geojson.js +4 -2
- package/src/util/verticalize_punctuation.js +3 -7
- package/src/util/warn.js +4 -4
- package/src/util/web_worker.js +3 -3
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const { Placement } = require('../symbol/placement');
|
|
1
|
+
import { Placement } from '../symbol/placement.js';
|
|
2
|
+
import browser from '../util/browser.js';
|
|
4
3
|
|
|
5
4
|
class LayerPlacement {
|
|
6
5
|
constructor() {
|
|
@@ -84,4 +83,4 @@ class PauseablePlacement {
|
|
|
84
83
|
}
|
|
85
84
|
}
|
|
86
85
|
|
|
87
|
-
|
|
86
|
+
export default PauseablePlacement;
|
package/src/style/properties.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
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';
|
|
7
6
|
|
|
8
7
|
/**
|
|
9
8
|
* Implements a number of classes that define state and behavior for paint and layout properties, most
|
|
@@ -60,7 +59,7 @@ const EvaluationParameters = require('./evaluation_parameters');
|
|
|
60
59
|
*
|
|
61
60
|
* @private
|
|
62
61
|
*/
|
|
63
|
-
class PropertyValue {
|
|
62
|
+
export class PropertyValue {
|
|
64
63
|
constructor(property, value) {
|
|
65
64
|
this.property = property;
|
|
66
65
|
this.value = value;
|
|
@@ -97,7 +96,7 @@ class PropertyValue {
|
|
|
97
96
|
*
|
|
98
97
|
* @private
|
|
99
98
|
*/
|
|
100
|
-
class TransitionablePropertyValue {
|
|
99
|
+
export class TransitionablePropertyValue {
|
|
101
100
|
constructor(property) {
|
|
102
101
|
this.property = property;
|
|
103
102
|
this.value = new PropertyValue(property, undefined);
|
|
@@ -132,7 +131,7 @@ class TransitionablePropertyValue {
|
|
|
132
131
|
*
|
|
133
132
|
* @private
|
|
134
133
|
*/
|
|
135
|
-
class Transitionable {
|
|
134
|
+
export class Transitionable {
|
|
136
135
|
constructor(properties) {
|
|
137
136
|
this._properties = properties;
|
|
138
137
|
this._values = Object.create(properties.defaultTransitionablePropertyValues);
|
|
@@ -209,7 +208,7 @@ class Transitionable {
|
|
|
209
208
|
*
|
|
210
209
|
* @private
|
|
211
210
|
*/
|
|
212
|
-
class TransitioningPropertyValue {
|
|
211
|
+
export class TransitioningPropertyValue {
|
|
213
212
|
constructor(property, value, prior, transition, now) {
|
|
214
213
|
this.property = property;
|
|
215
214
|
this.value = value;
|
|
@@ -264,7 +263,7 @@ class TransitioningPropertyValue {
|
|
|
264
263
|
*
|
|
265
264
|
* @private
|
|
266
265
|
*/
|
|
267
|
-
class Transitioning {
|
|
266
|
+
export class Transitioning {
|
|
268
267
|
constructor(properties) {
|
|
269
268
|
this._properties = properties;
|
|
270
269
|
this._values = Object.create(properties.defaultTransitioningPropertyValues);
|
|
@@ -308,7 +307,7 @@ class Transitioning {
|
|
|
308
307
|
*
|
|
309
308
|
* @private
|
|
310
309
|
*/
|
|
311
|
-
class Layout {
|
|
310
|
+
export class Layout {
|
|
312
311
|
constructor(properties) {
|
|
313
312
|
this._properties = properties;
|
|
314
313
|
this._values = Object.create(properties.defaultPropertyValues);
|
|
@@ -374,7 +373,7 @@ class Layout {
|
|
|
374
373
|
*
|
|
375
374
|
* @private
|
|
376
375
|
*/
|
|
377
|
-
class PossiblyEvaluatedPropertyValue {
|
|
376
|
+
export class PossiblyEvaluatedPropertyValue {
|
|
378
377
|
constructor(property, value, parameters) {
|
|
379
378
|
this.property = property;
|
|
380
379
|
this.value = value;
|
|
@@ -402,15 +401,8 @@ class PossiblyEvaluatedPropertyValue {
|
|
|
402
401
|
* an object type with the same keys, and values of type `R`.
|
|
403
402
|
*
|
|
404
403
|
* For properties that don't allow data-driven values, `R` is a scalar type such as `number`, `string`, or `Color`.
|
|
405
|
-
* For data-driven properties, it is `PossiblyEvaluatedPropertyValue`.
|
|
406
|
-
*
|
|
407
|
-
* to use a `PossiblyEvaluatedPropertyValue` as if it was a scalar, or vice versa, you will get a type error. (However,
|
|
408
|
-
* 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
|
|
409
|
-
* as `layer._paint.get('foo-opacity') === 0`, if `foo-opacity` is data-driven, than the left-hand side is of type
|
|
410
|
-
* `PossiblyEvaluatedPropertyValue<number>`, but flow will not complain about comparing this to a number using `===`.
|
|
411
|
-
* See https://github.com/facebook/flow/issues/2359.)
|
|
412
|
-
*
|
|
413
|
-
* 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>`.
|
|
414
406
|
*
|
|
415
407
|
* @private
|
|
416
408
|
*/
|
|
@@ -420,7 +412,7 @@ class PossiblyEvaluatedPropertyValue {
|
|
|
420
412
|
* given layer type.
|
|
421
413
|
* @private
|
|
422
414
|
*/
|
|
423
|
-
class PossiblyEvaluated {
|
|
415
|
+
export class PossiblyEvaluated {
|
|
424
416
|
constructor(properties) {
|
|
425
417
|
this._properties = properties;
|
|
426
418
|
this._values = Object.create(properties.defaultPossiblyEvaluatedValues);
|
|
@@ -438,7 +430,7 @@ class PossiblyEvaluated {
|
|
|
438
430
|
*
|
|
439
431
|
* @private
|
|
440
432
|
*/
|
|
441
|
-
class DataConstantProperty {
|
|
433
|
+
export class DataConstantProperty {
|
|
442
434
|
constructor(specification) {
|
|
443
435
|
this.specification = specification;
|
|
444
436
|
this.specification['property-type'] ??= 'data-constant';
|
|
@@ -465,7 +457,7 @@ class DataConstantProperty {
|
|
|
465
457
|
*
|
|
466
458
|
* @private
|
|
467
459
|
*/
|
|
468
|
-
class DataDrivenProperty {
|
|
460
|
+
export class DataDrivenProperty {
|
|
469
461
|
constructor(specification) {
|
|
470
462
|
this.specification = specification;
|
|
471
463
|
this.specification['property-type'] ??= 'data-driven';
|
|
@@ -525,7 +517,7 @@ class DataDrivenProperty {
|
|
|
525
517
|
* @private
|
|
526
518
|
*/
|
|
527
519
|
|
|
528
|
-
class CrossFadedDataDrivenProperty extends DataDrivenProperty {
|
|
520
|
+
export class CrossFadedDataDrivenProperty extends DataDrivenProperty {
|
|
529
521
|
constructor(specification) {
|
|
530
522
|
specification['property-type'] ??= 'cross-faded-data-driven';
|
|
531
523
|
super(specification);
|
|
@@ -585,7 +577,7 @@ class CrossFadedDataDrivenProperty extends DataDrivenProperty {
|
|
|
585
577
|
*
|
|
586
578
|
* @private
|
|
587
579
|
*/
|
|
588
|
-
class CrossFadedProperty {
|
|
580
|
+
export class CrossFadedProperty {
|
|
589
581
|
constructor(specification) {
|
|
590
582
|
this.specification = specification;
|
|
591
583
|
this.specification['property-type'] ??= 'cross-faded';
|
|
@@ -626,7 +618,7 @@ class CrossFadedProperty {
|
|
|
626
618
|
* @private
|
|
627
619
|
*/
|
|
628
620
|
|
|
629
|
-
class ColorRampProperty {
|
|
621
|
+
export class ColorRampProperty {
|
|
630
622
|
constructor(specification) {
|
|
631
623
|
this.specification = specification;
|
|
632
624
|
this.specification['property-type'] ??= 'color-ramp';
|
|
@@ -652,7 +644,7 @@ class ColorRampProperty {
|
|
|
652
644
|
*
|
|
653
645
|
* @private
|
|
654
646
|
*/
|
|
655
|
-
class Properties {
|
|
647
|
+
export class Properties {
|
|
656
648
|
constructor(properties) {
|
|
657
649
|
this.properties = properties;
|
|
658
650
|
this.defaultPropertyValues = {};
|
|
@@ -670,18 +662,3 @@ class Properties {
|
|
|
670
662
|
}
|
|
671
663
|
}
|
|
672
664
|
}
|
|
673
|
-
|
|
674
|
-
module.exports = {
|
|
675
|
-
PropertyValue,
|
|
676
|
-
Transitionable,
|
|
677
|
-
Transitioning,
|
|
678
|
-
Layout,
|
|
679
|
-
PossiblyEvaluatedPropertyValue,
|
|
680
|
-
PossiblyEvaluated,
|
|
681
|
-
DataConstantProperty,
|
|
682
|
-
DataDrivenProperty,
|
|
683
|
-
CrossFadedDataDrivenProperty,
|
|
684
|
-
CrossFadedProperty,
|
|
685
|
-
ColorRampProperty,
|
|
686
|
-
Properties
|
|
687
|
-
};
|
package/src/style/query_utils.js
CHANGED
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import Point from '@mapbox/point-geometry';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
getMaximumPaintValue,
|
|
5
|
-
translateDistance,
|
|
6
|
-
translate
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
function getMaximumPaintValue(property, layer, bucket) {
|
|
3
|
+
export function getMaximumPaintValue(property, layer, bucket) {
|
|
10
4
|
const value = layer._paint.get(property).value;
|
|
11
5
|
if (value.kind === 'constant') {
|
|
12
6
|
return value.value;
|
|
@@ -15,11 +9,11 @@ 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
|
}
|
package/src/style/style.js
CHANGED
|
@@ -1,23 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const { resources } = require('../source/resources');
|
|
1
|
+
import { ErrorEvent, Event, Evented } from '@mapwhit/events';
|
|
2
|
+
import assert from 'assert';
|
|
3
|
+
import GlyphManager from '../render/glyph_manager.js';
|
|
4
|
+
import ImageManager from '../render/image_manager.js';
|
|
5
|
+
import LineAtlas from '../render/line_atlas.js';
|
|
6
|
+
import { queryRenderedFeatures, queryRenderedSymbols, querySourceFeatures } from '../source/query_features.js';
|
|
7
|
+
import { resources } from '../source/resources/index.js';
|
|
8
|
+
import plugin from '../source/rtl_text_plugin.js';
|
|
9
|
+
import { getType as getSourceType, setType as setSourceType } from '../source/source.js';
|
|
10
|
+
import SourceCache from '../source/source_cache.js';
|
|
11
|
+
import CrossTileSymbolIndex from '../symbol/cross_tile_symbol_index.js';
|
|
12
|
+
import browser from '../util/browser.js';
|
|
13
|
+
import { clone, deepEqual } from '../util/object.js';
|
|
14
|
+
import createStyleLayer from './create_style_layer.js';
|
|
15
|
+
import Light from './light.js';
|
|
16
|
+
import loadSprite from './load_sprite.js';
|
|
17
|
+
import PauseablePlacement from './pauseable_placement.js';
|
|
18
|
+
import StyleLayerIndex from './style_layer_index.js';
|
|
19
|
+
import ZoomHistory from './zoom_history.js';
|
|
21
20
|
|
|
22
21
|
const properties = [
|
|
23
22
|
'version',
|
|
@@ -245,14 +244,29 @@ class Style extends Evented {
|
|
|
245
244
|
}
|
|
246
245
|
}
|
|
247
246
|
|
|
248
|
-
|
|
249
|
-
|
|
247
|
+
/**
|
|
248
|
+
* Returns `true` when style is loaded.
|
|
249
|
+
* @param {Boolean} ignoreTilesLoading set to `true` to check that style is loaded
|
|
250
|
+
* even when sources are loading tiles
|
|
251
|
+
*/
|
|
252
|
+
loaded(ignoreTilesLoading) {
|
|
253
|
+
if (!this._loaded) {
|
|
254
|
+
return false;
|
|
255
|
+
}
|
|
250
256
|
|
|
251
|
-
if (Object.keys(this._updatedSources).length)
|
|
257
|
+
if (Object.keys(this._updatedSources).length) {
|
|
258
|
+
return false;
|
|
259
|
+
}
|
|
252
260
|
|
|
253
|
-
for (const id in this._sources)
|
|
261
|
+
for (const id in this._sources) {
|
|
262
|
+
if (!this._sources[id].loaded(ignoreTilesLoading)) {
|
|
263
|
+
return false;
|
|
264
|
+
}
|
|
265
|
+
}
|
|
254
266
|
|
|
255
|
-
if (!this.imageManager.isLoaded())
|
|
267
|
+
if (!this.imageManager.isLoaded()) {
|
|
268
|
+
return false;
|
|
269
|
+
}
|
|
256
270
|
|
|
257
271
|
return true;
|
|
258
272
|
}
|
|
@@ -428,7 +442,9 @@ class Style extends Evented {
|
|
|
428
442
|
sourceCache.setEventedParent(null);
|
|
429
443
|
sourceCache.clearTiles();
|
|
430
444
|
|
|
431
|
-
if (sourceCache.onRemove)
|
|
445
|
+
if (sourceCache.onRemove) {
|
|
446
|
+
sourceCache.onRemove(this.map);
|
|
447
|
+
}
|
|
432
448
|
this._changed = true;
|
|
433
449
|
}
|
|
434
450
|
|
|
@@ -664,7 +680,9 @@ class Style extends Evented {
|
|
|
664
680
|
return;
|
|
665
681
|
}
|
|
666
682
|
|
|
667
|
-
if (deepEqual(layer.getLayoutProperty(name), value))
|
|
683
|
+
if (deepEqual(layer.getLayoutProperty(name), value)) {
|
|
684
|
+
return;
|
|
685
|
+
}
|
|
668
686
|
|
|
669
687
|
layer.setLayoutProperty(name, value);
|
|
670
688
|
const layerObject = this.layers.find(({ id }) => id === layerId);
|
|
@@ -695,7 +713,9 @@ class Style extends Evented {
|
|
|
695
713
|
return;
|
|
696
714
|
}
|
|
697
715
|
|
|
698
|
-
if (deepEqual(layer.getPaintProperty(name), value))
|
|
716
|
+
if (deepEqual(layer.getPaintProperty(name), value)) {
|
|
717
|
+
return;
|
|
718
|
+
}
|
|
699
719
|
|
|
700
720
|
const layerObject = this.layers.find(({ id }) => id === layerId);
|
|
701
721
|
layerObject.paint ??= {};
|
|
@@ -853,7 +873,9 @@ class Style extends Evented {
|
|
|
853
873
|
// add all 3D features that are in or above the current layer
|
|
854
874
|
for (let i = features3D.length - 1; i >= 0; i--) {
|
|
855
875
|
const topmost3D = features3D[i].feature;
|
|
856
|
-
if (layerIndex.get(topmost3D.layer.id) < l)
|
|
876
|
+
if (layerIndex.get(topmost3D.layer.id) < l) {
|
|
877
|
+
break;
|
|
878
|
+
}
|
|
857
879
|
features.push(topmost3D);
|
|
858
880
|
features3D.pop();
|
|
859
881
|
}
|
|
@@ -889,7 +911,9 @@ class Style extends Evented {
|
|
|
889
911
|
|
|
890
912
|
const sourceResults = [];
|
|
891
913
|
for (const id in this._sources) {
|
|
892
|
-
if (params.layers && !includedSources[id])
|
|
914
|
+
if (params.layers && !includedSources[id]) {
|
|
915
|
+
continue;
|
|
916
|
+
}
|
|
893
917
|
sourceResults.push(
|
|
894
918
|
queryRenderedFeatures(this._sources[id], this._layers, queryGeometry.viewport, params, transform)
|
|
895
919
|
);
|
|
@@ -932,7 +956,9 @@ class Style extends Evented {
|
|
|
932
956
|
break;
|
|
933
957
|
}
|
|
934
958
|
}
|
|
935
|
-
if (!_update)
|
|
959
|
+
if (!_update) {
|
|
960
|
+
return;
|
|
961
|
+
}
|
|
936
962
|
|
|
937
963
|
const parameters = {
|
|
938
964
|
now: browser.now(),
|
|
@@ -990,7 +1016,9 @@ class Style extends Evented {
|
|
|
990
1016
|
const layerTiles = {};
|
|
991
1017
|
|
|
992
1018
|
for (const layer of this._layers.values()) {
|
|
993
|
-
if (layer.type !== 'symbol')
|
|
1019
|
+
if (layer.type !== 'symbol') {
|
|
1020
|
+
continue;
|
|
1021
|
+
}
|
|
994
1022
|
|
|
995
1023
|
if (!layerTiles[layer.source]) {
|
|
996
1024
|
const sourceCache = this._sources[layer.source];
|
|
@@ -1055,7 +1083,9 @@ class Style extends Evented {
|
|
|
1055
1083
|
|
|
1056
1084
|
if (placementCommitted || symbolBucketsChanged) {
|
|
1057
1085
|
for (const layer of this._layers.values()) {
|
|
1058
|
-
if (layer.type !== 'symbol')
|
|
1086
|
+
if (layer.type !== 'symbol') {
|
|
1087
|
+
continue;
|
|
1088
|
+
}
|
|
1059
1089
|
this.placement.updateLayerOpacities(layer, layerTiles[layer.source]);
|
|
1060
1090
|
}
|
|
1061
1091
|
}
|
|
@@ -1084,4 +1114,4 @@ class Style extends Evented {
|
|
|
1084
1114
|
Style.getSourceType = getSourceType;
|
|
1085
1115
|
Style.setSourceType = setSourceType;
|
|
1086
1116
|
|
|
1087
|
-
|
|
1117
|
+
export default Style;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const properties = require('./background_style_layer_properties');
|
|
1
|
+
import StyleLayer from '../style_layer.js';
|
|
2
|
+
import properties from './background_style_layer_properties.js';
|
|
4
3
|
|
|
5
4
|
class BackgroundStyleLayer extends StyleLayer {
|
|
6
5
|
constructor(layer) {
|
|
@@ -8,4 +7,4 @@ class BackgroundStyleLayer extends StyleLayer {
|
|
|
8
7
|
}
|
|
9
8
|
}
|
|
10
9
|
|
|
11
|
-
|
|
10
|
+
export default BackgroundStyleLayer;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// This file is generated. Edit layer-properties.js.ejs, then run `make generate-style-code`.
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
import { CrossFadedProperty, DataConstantProperty, Properties } from '../properties.js';
|
|
4
4
|
|
|
5
5
|
const paint = new Properties({
|
|
6
6
|
'background-color': new DataConstantProperty({
|
|
@@ -22,4 +22,4 @@ const paint = new Properties({
|
|
|
22
22
|
})
|
|
23
23
|
});
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
export default { paint };
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
import glMatrix from '@mapbox/gl-matrix';
|
|
2
|
+
import Point from '@mapbox/point-geometry';
|
|
3
|
+
import CircleBucket from '../../data/bucket/circle_bucket.js';
|
|
4
|
+
import { polygonIntersectsBufferedPoint } from '../../util/intersection_tests.js';
|
|
5
|
+
import { getMaximumPaintValue, translate, translateDistance } from '../query_utils.js';
|
|
6
|
+
import StyleLayer from '../style_layer.js';
|
|
7
|
+
import properties from './circle_style_layer_properties.js';
|
|
2
8
|
|
|
3
|
-
const
|
|
4
|
-
const { polygonIntersectsBufferedPoint } = require('../../util/intersection_tests');
|
|
5
|
-
const { getMaximumPaintValue, translateDistance, translate } = require('../query_utils');
|
|
6
|
-
const properties = require('./circle_style_layer_properties');
|
|
7
|
-
const { vec4 } = require('@mapbox/gl-matrix');
|
|
8
|
-
const { default: Point } = require('@mapbox/point-geometry');
|
|
9
|
+
const { vec4 } = glMatrix;
|
|
9
10
|
|
|
10
11
|
class CircleStyleLayer extends StyleLayer {
|
|
11
12
|
constructor(layer) {
|
|
@@ -73,7 +74,9 @@ class CircleStyleLayer extends StyleLayer {
|
|
|
73
74
|
adjustedSize *= transform.cameraToCenterDistance / projectedCenter[3];
|
|
74
75
|
}
|
|
75
76
|
|
|
76
|
-
if (polygonIntersectsBufferedPoint(transformedPolygon, transformedPoint, adjustedSize))
|
|
77
|
+
if (polygonIntersectsBufferedPoint(transformedPolygon, transformedPoint, adjustedSize)) {
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
77
80
|
}
|
|
78
81
|
}
|
|
79
82
|
|
|
@@ -92,4 +95,4 @@ function projectQueryGeometry(queryGeometry, pixelPosMatrix) {
|
|
|
92
95
|
});
|
|
93
96
|
}
|
|
94
97
|
|
|
95
|
-
|
|
98
|
+
export default CircleStyleLayer;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// This file is generated. Edit layer-properties.js.ejs, then run `make generate-style-code`.
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
import { DataConstantProperty, DataDrivenProperty, Properties } from '../properties.js';
|
|
4
4
|
|
|
5
5
|
const paint = new Properties({
|
|
6
6
|
'circle-radius': new DataDrivenProperty({
|
|
@@ -73,4 +73,4 @@ const paint = new Properties({
|
|
|
73
73
|
})
|
|
74
74
|
});
|
|
75
75
|
|
|
76
|
-
|
|
76
|
+
export default { paint };
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
import glMatrix from '@mapbox/gl-matrix';
|
|
2
|
+
import Point from '@mapbox/point-geometry';
|
|
3
|
+
import FillExtrusionBucket from '../../data/bucket/fill_extrusion_bucket.js';
|
|
4
|
+
import { polygonIntersectsMultiPolygon, polygonIntersectsPolygon } from '../../util/intersection_tests.js';
|
|
5
|
+
import { translate, translateDistance } from '../query_utils.js';
|
|
6
|
+
import StyleLayer from '../style_layer.js';
|
|
7
|
+
import properties from './fill_extrusion_style_layer_properties.js';
|
|
2
8
|
|
|
3
|
-
const
|
|
4
|
-
const { polygonIntersectsPolygon, polygonIntersectsMultiPolygon } = require('../../util/intersection_tests');
|
|
5
|
-
const { translateDistance, translate } = require('../query_utils');
|
|
6
|
-
const properties = require('./fill_extrusion_style_layer_properties');
|
|
7
|
-
const { vec4 } = require('@mapbox/gl-matrix');
|
|
8
|
-
const { default: Point } = require('@mapbox/point-geometry');
|
|
9
|
+
const { vec4 } = glMatrix;
|
|
9
10
|
|
|
10
|
-
class FillExtrusionStyleLayer extends StyleLayer {
|
|
11
|
+
export class FillExtrusionStyleLayer extends StyleLayer {
|
|
11
12
|
constructor(layer) {
|
|
12
13
|
super(layer, properties);
|
|
13
14
|
}
|
|
@@ -57,7 +58,7 @@ function dot(a, b) {
|
|
|
57
58
|
return a.x * b.x + a.y * b.y;
|
|
58
59
|
}
|
|
59
60
|
|
|
60
|
-
function getIntersectionDistance(projectedQueryGeometry, projectedFace) {
|
|
61
|
+
export function getIntersectionDistance(projectedQueryGeometry, projectedFace) {
|
|
61
62
|
if (projectedQueryGeometry.length === 1) {
|
|
62
63
|
// For point queries calculate the z at which the point intersects the face
|
|
63
64
|
// using barycentric coordinates.
|
|
@@ -73,7 +74,9 @@ function getIntersectionDistance(projectedQueryGeometry, projectedFace) {
|
|
|
73
74
|
let b;
|
|
74
75
|
while (!b || a.equals(b)) {
|
|
75
76
|
b = projectedFace[i++];
|
|
76
|
-
if (!b)
|
|
77
|
+
if (!b) {
|
|
78
|
+
return Number.POSITIVE_INFINITY;
|
|
79
|
+
}
|
|
77
80
|
}
|
|
78
81
|
|
|
79
82
|
// Loop until point `c` is not colinear with points `a` and `b`.
|
|
@@ -99,7 +102,9 @@ function getIntersectionDistance(projectedQueryGeometry, projectedFace) {
|
|
|
99
102
|
// Use the barycentric weighting along with the original triangle z coordinates to get the point of intersection.
|
|
100
103
|
const distance = a.z * u + b.z * v + c.z * w;
|
|
101
104
|
|
|
102
|
-
if (Number.isFinite(distance))
|
|
105
|
+
if (Number.isFinite(distance)) {
|
|
106
|
+
return distance;
|
|
107
|
+
}
|
|
103
108
|
}
|
|
104
109
|
return Number.POSITIVE_INFINITY;
|
|
105
110
|
}
|
|
@@ -205,5 +210,3 @@ function projectQueryGeometry(queryGeometry, pixelPosMatrix, transform, z) {
|
|
|
205
210
|
}
|
|
206
211
|
return projectedQueryGeometry;
|
|
207
212
|
}
|
|
208
|
-
|
|
209
|
-
module.exports = { FillExtrusionStyleLayer, getIntersectionDistance };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// This file is generated. Edit layer-properties.js.ejs, then run `make generate-style-code`.
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
import { CrossFadedDataDrivenProperty, DataConstantProperty, DataDrivenProperty, Properties } from '../properties.js';
|
|
4
4
|
|
|
5
5
|
const paint = new Properties({
|
|
6
6
|
'fill-extrusion-opacity': new DataConstantProperty({
|
|
@@ -53,4 +53,4 @@ const paint = new Properties({
|
|
|
53
53
|
})
|
|
54
54
|
});
|
|
55
55
|
|
|
56
|
-
|
|
56
|
+
export default { paint };
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const properties = require('./fill_style_layer_properties');
|
|
1
|
+
import FillBucket from '../../data/bucket/fill_bucket.js';
|
|
2
|
+
import { polygonIntersectsMultiPolygon } from '../../util/intersection_tests.js';
|
|
3
|
+
import { translate, translateDistance } from '../query_utils.js';
|
|
4
|
+
import StyleLayer from '../style_layer.js';
|
|
5
|
+
import properties from './fill_style_layer_properties.js';
|
|
7
6
|
|
|
8
7
|
class FillStyleLayer extends StyleLayer {
|
|
9
8
|
constructor(layer) {
|
|
@@ -43,4 +42,4 @@ class FillStyleLayer extends StyleLayer {
|
|
|
43
42
|
}
|
|
44
43
|
}
|
|
45
44
|
|
|
46
|
-
|
|
45
|
+
export default FillStyleLayer;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// This file is generated. Edit layer-properties.js.ejs, then run `make generate-style-code`.
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
import { CrossFadedDataDrivenProperty, DataConstantProperty, DataDrivenProperty, Properties } from '../properties.js';
|
|
4
4
|
|
|
5
5
|
const paint = new Properties({
|
|
6
6
|
'fill-antialias': new DataConstantProperty({ type: 'boolean', default: true, expression: { parameters: ['zoom'] } }),
|
|
@@ -42,4 +42,4 @@ const paint = new Properties({
|
|
|
42
42
|
})
|
|
43
43
|
});
|
|
44
44
|
|
|
45
|
-
|
|
45
|
+
export default { paint };
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const renderColorRamp = require('../../util/color_ramp');
|
|
1
|
+
import HeatmapBucket from '../../data/bucket/heatmap_bucket.js';
|
|
2
|
+
import renderColorRamp from '../../util/color_ramp.js';
|
|
3
|
+
import StyleLayer from '../style_layer.js';
|
|
4
|
+
import properties from './heatmap_style_layer_properties.js';
|
|
6
5
|
|
|
7
6
|
class HeatmapStyleLayer extends StyleLayer {
|
|
8
7
|
createBucket(options) {
|
|
@@ -48,4 +47,4 @@ class HeatmapStyleLayer extends StyleLayer {
|
|
|
48
47
|
}
|
|
49
48
|
}
|
|
50
49
|
|
|
51
|
-
|
|
50
|
+
export default HeatmapStyleLayer;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// This file is generated. Edit layer-properties.js.ejs, then run `make generate-style-code`.
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
import { ColorRampProperty, DataConstantProperty, DataDrivenProperty, Properties } from '../properties.js';
|
|
4
4
|
|
|
5
5
|
const paint = new Properties({
|
|
6
6
|
'heatmap-radius': new DataDrivenProperty({
|
|
@@ -49,4 +49,4 @@ const paint = new Properties({
|
|
|
49
49
|
})
|
|
50
50
|
});
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
export default { paint };
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const properties = require('./hillshade_style_layer_properties');
|
|
1
|
+
import StyleLayer from '../style_layer.js';
|
|
2
|
+
import properties from './hillshade_style_layer_properties.js';
|
|
4
3
|
|
|
5
4
|
class HillshadeStyleLayer extends StyleLayer {
|
|
6
5
|
constructor(layer) {
|
|
@@ -12,4 +11,4 @@ class HillshadeStyleLayer extends StyleLayer {
|
|
|
12
11
|
}
|
|
13
12
|
}
|
|
14
13
|
|
|
15
|
-
|
|
14
|
+
export default HillshadeStyleLayer;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// This file is generated. Edit layer-properties.js.ejs, then run `make generate-style-code`.
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
import { DataConstantProperty, Properties } from '../properties.js';
|
|
4
4
|
|
|
5
5
|
const paint = new Properties({
|
|
6
6
|
'hillshade-illumination-direction': new DataConstantProperty({
|
|
@@ -40,4 +40,4 @@ const paint = new Properties({
|
|
|
40
40
|
})
|
|
41
41
|
});
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
export default { paint };
|