@mapgis/mapbox-gl 16.0.1 → 16.2.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.
- package/dist/mapbox-gl.js +3 -3
- package/dist/mapbox-gl.js.map +1 -1
- package/package.json +1 -1
- package/.flowconfig +0 -61
- package/LICENSE.txt +0 -84
- package/README.md +0 -34
- package/build/banner.js +0 -4
- package/build/check-bundle-size.js +0 -140
- package/build/generate-access-token-script.js +0 -11
- package/build/generate-flow-typed-style-spec.js +0 -188
- package/build/generate-release-list.js +0 -21
- package/build/generate-struct-arrays.js +0 -237
- package/build/generate-style-code.js +0 -159
- package/build/mapbox-gl.js.flow +0 -3
- package/build/print-release-url.js +0 -6
- package/build/rollup_plugin_minify_style_spec.js +0 -20
- package/build/rollup_plugins.js +0 -80
- package/build/run-node +0 -3
- package/build/run-tap +0 -8
- package/build/test/build-tape.js +0 -19
- package/flow-typed/gl.js +0 -5
- package/flow-typed/jsdom.js +0 -18
- package/flow-typed/mapbox-gl-supported.js +0 -9
- package/flow-typed/mapbox-unitbezier.js +0 -14
- package/flow-typed/offscreen-canvas.js +0 -9
- package/flow-typed/pbf.js +0 -25
- package/flow-typed/point-geometry.js +0 -44
- package/flow-typed/potpack.js +0 -12
- package/flow-typed/sinon.js +0 -28
- package/flow-typed/vector-tile.js +0 -41
- package/src/css/mapbox-gl.css +0 -798
- package/src/css/svg/mapboxgl-ctrl-attrib.svg +0 -3
- package/src/css/svg/mapboxgl-ctrl-compass.svg +0 -4
- package/src/css/svg/mapboxgl-ctrl-fullscreen.svg +0 -3
- package/src/css/svg/mapboxgl-ctrl-geolocate.svg +0 -5
- package/src/css/svg/mapboxgl-ctrl-logo.svg +0 -20
- package/src/css/svg/mapboxgl-ctrl-shrink.svg +0 -3
- package/src/css/svg/mapboxgl-ctrl-zoom-in.svg +0 -3
- package/src/css/svg/mapboxgl-ctrl-zoom-out.svg +0 -3
- package/src/data/array_types.js +0 -1095
- package/src/data/bucket/circle_attributes.js +0 -9
- package/src/data/bucket/circle_bucket.js +0 -204
- package/src/data/bucket/fill_attributes.js +0 -9
- package/src/data/bucket/fill_bucket.js +0 -233
- package/src/data/bucket/fill_extrusion_attributes.js +0 -10
- package/src/data/bucket/fill_extrusion_bucket.js +0 -289
- package/src/data/bucket/heatmap_bucket.js +0 -17
- package/src/data/bucket/line_attributes.js +0 -10
- package/src/data/bucket/line_bucket.js +0 -556
- package/src/data/bucket/pattern_attributes.js +0 -10
- package/src/data/bucket/pattern_bucket_features.js +0 -60
- package/src/data/bucket/symbol_attributes.js +0 -117
- package/src/data/bucket/symbol_bucket.js +0 -972
- package/src/data/bucket.js +0 -123
- package/src/data/dem_data.js +0 -125
- package/src/data/extent.js +0 -18
- package/src/data/feature_index.js +0 -321
- package/src/data/feature_position_map.js +0 -125
- package/src/data/index_array_type.js +0 -16
- package/src/data/load_geometry.js +0 -48
- package/src/data/pos_attributes.js +0 -6
- package/src/data/program_configuration.js +0 -687
- package/src/data/raster_bounds_attributes.js +0 -7
- package/src/data/segment.js +0 -76
- package/src/geo/edge_insets.js +0 -102
- package/src/geo/lng_lat.js +0 -165
- package/src/geo/lng_lat_bounds.js +0 -267
- package/src/geo/mercator_coordinate.js +0 -153
- package/src/geo/transform.js +0 -864
- package/src/gl/color_mode.js +0 -34
- package/src/gl/context.js +0 -298
- package/src/gl/cull_face_mode.js +0 -26
- package/src/gl/depth_mode.js +0 -29
- package/src/gl/framebuffer.js +0 -44
- package/src/gl/index_buffer.js +0 -55
- package/src/gl/stencil_mode.js +0 -30
- package/src/gl/types.js +0 -84
- package/src/gl/value.js +0 -520
- package/src/gl/vertex_buffer.js +0 -119
- package/src/index.js +0 -201
- package/src/render/draw_background.js +0 -57
- package/src/render/draw_circle.js +0 -113
- package/src/render/draw_collision_debug.js +0 -49
- package/src/render/draw_custom.js +0 -49
- package/src/render/draw_debug.js +0 -127
- package/src/render/draw_fill.js +0 -126
- package/src/render/draw_fill_extrusion.js +0 -96
- package/src/render/draw_heatmap.js +0 -140
- package/src/render/draw_hillshade.js +0 -108
- package/src/render/draw_line.js +0 -98
- package/src/render/draw_raster.js +0 -125
- package/src/render/draw_symbol.js +0 -394
- package/src/render/glyph_atlas.js +0 -71
- package/src/render/glyph_manager.js +0 -182
- package/src/render/image_atlas.js +0 -149
- package/src/render/image_manager.js +0 -306
- package/src/render/line_atlas.js +0 -210
- package/src/render/painter.js +0 -653
- package/src/render/program/background_program.js +0 -103
- package/src/render/program/circle_program.js +0 -69
- package/src/render/program/clipping_mask_program.js +0 -20
- package/src/render/program/collision_program.js +0 -49
- package/src/render/program/debug_program.js +0 -35
- package/src/render/program/fill_extrusion_program.js +0 -122
- package/src/render/program/fill_program.js +0 -126
- package/src/render/program/heatmap_program.js +0 -83
- package/src/render/program/hillshade_program.js +0 -122
- package/src/render/program/line_program.js +0 -207
- package/src/render/program/pattern.js +0 -102
- package/src/render/program/program_uniforms.js +0 -42
- package/src/render/program/raster_program.js +0 -92
- package/src/render/program/symbol_program.js +0 -224
- package/src/render/program.js +0 -168
- package/src/render/texture.js +0 -122
- package/src/render/uniform_binding.js +0 -147
- package/src/render/vertex_array_object.js +0 -163
- package/src/shaders/README.md +0 -42
- package/src/shaders/_prelude.fragment.glsl +0 -17
- package/src/shaders/_prelude.vertex.glsl +0 -73
- package/src/shaders/background.fragment.glsl +0 -10
- package/src/shaders/background.vertex.glsl +0 -7
- package/src/shaders/background_pattern.fragment.glsl +0 -28
- package/src/shaders/background_pattern.vertex.glsl +0 -20
- package/src/shaders/circle.fragment.glsl +0 -39
- package/src/shaders/circle.vertex.glsl +0 -64
- package/src/shaders/clipping_mask.fragment.glsl +0 -3
- package/src/shaders/clipping_mask.vertex.glsl +0 -7
- package/src/shaders/collision_box.fragment.glsl +0 -21
- package/src/shaders/collision_box.vertex.glsl +0 -27
- package/src/shaders/collision_circle.fragment.glsl +0 -34
- package/src/shaders/collision_circle.vertex.glsl +0 -36
- package/src/shaders/debug.fragment.glsl +0 -9
- package/src/shaders/debug.vertex.glsl +0 -12
- package/src/shaders/encode_attribute.js +0 -17
- package/src/shaders/fill.fragment.glsl +0 -13
- package/src/shaders/fill.vertex.glsl +0 -13
- package/src/shaders/fill_extrusion.fragment.glsl +0 -9
- package/src/shaders/fill_extrusion.vertex.glsl +0 -66
- package/src/shaders/fill_extrusion_pattern.fragment.glsl +0 -45
- package/src/shaders/fill_extrusion_pattern.vertex.glsl +0 -79
- package/src/shaders/fill_outline.fragment.glsl +0 -17
- package/src/shaders/fill_outline.vertex.glsl +0 -17
- package/src/shaders/fill_outline_pattern.fragment.glsl +0 -43
- package/src/shaders/fill_outline_pattern.vertex.glsl +0 -44
- package/src/shaders/fill_pattern.fragment.glsl +0 -36
- package/src/shaders/fill_pattern.vertex.glsl +0 -39
- package/src/shaders/heatmap.fragment.glsl +0 -22
- package/src/shaders/heatmap.vertex.glsl +0 -54
- package/src/shaders/heatmap_texture.fragment.glsl +0 -14
- package/src/shaders/heatmap_texture.vertex.glsl +0 -11
- package/src/shaders/hillshade.fragment.glsl +0 -52
- package/src/shaders/hillshade.vertex.glsl +0 -11
- package/src/shaders/hillshade_prepare.fragment.glsl +0 -74
- package/src/shaders/hillshade_prepare.vertex.glsl +0 -15
- package/src/shaders/index.js +0 -20
- package/src/shaders/line.fragment.glsl +0 -30
- package/src/shaders/line.vertex.glsl +0 -85
- package/src/shaders/line_gradient.fragment.glsl +0 -34
- package/src/shaders/line_gradient.vertex.glsl +0 -87
- package/src/shaders/line_pattern.fragment.glsl +0 -74
- package/src/shaders/line_pattern.vertex.glsl +0 -99
- package/src/shaders/line_sdf.fragment.glsl +0 -45
- package/src/shaders/line_sdf.vertex.glsl +0 -98
- package/src/shaders/raster.fragment.glsl +0 -52
- package/src/shaders/raster.vertex.glsl +0 -21
- package/src/shaders/shaders.js +0 -180
- package/src/shaders/symbol_icon.fragment.glsl +0 -17
- package/src/shaders/symbol_icon.vertex.glsl +0 -94
- package/src/shaders/symbol_sdf.fragment.glsl +0 -52
- package/src/shaders/symbol_sdf.vertex.glsl +0 -115
- package/src/shaders/symbol_text_and_icon.fragment.glsl +0 -68
- package/src/shaders/symbol_text_and_icon.vertex.glsl +0 -116
- package/src/source/canvas_source.js +0 -238
- package/src/source/geojson_helper.js +0 -92
- package/src/source/geojson_source.js +0 -374
- package/src/source/geojson_worker_source.js +0 -357
- package/src/source/geojson_wrapper.js +0 -94
- package/src/source/image_source.js +0 -307
- package/src/source/load_tilejson.js +0 -39
- package/src/source/mbtiles_source.js +0 -115
- package/src/source/offline_database.js +0 -61
- package/src/source/offline_database_root.js +0 -62
- package/src/source/pixels_to_tile_units.js +0 -21
- package/src/source/query_features.js +0 -208
- package/src/source/raster_dem_tile_source.js +0 -138
- package/src/source/raster_dem_tile_worker_source.js +0 -62
- package/src/source/raster_tile_offline_source.js +0 -136
- package/src/source/raster_tile_source.js +0 -177
- package/src/source/rtl_text_plugin.js +0 -138
- package/src/source/source.js +0 -137
- package/src/source/source_cache.js +0 -957
- package/src/source/source_state.js +0 -159
- package/src/source/tile.js +0 -465
- package/src/source/tile_bounds.js +0 -38
- package/src/source/tile_cache.js +0 -212
- package/src/source/tile_id.js +0 -402
- package/src/source/vector_tile_source.js +0 -192
- package/src/source/vector_tile_worker_source.js +0 -216
- package/src/source/video_source.js +0 -203
- package/src/source/worker.js +0 -237
- package/src/source/worker_source.js +0 -106
- package/src/source/worker_tile.js +0 -224
- package/src/style/create_style_layer.js +0 -36
- package/src/style/evaluation_parameters.js +0 -62
- package/src/style/light.js +0 -130
- package/src/style/load_glyph_range.js +0 -38
- package/src/style/load_sprite.js +0 -67
- package/src/style/parse_glyph_pbf.js +0 -44
- package/src/style/pauseable_placement.js +0 -132
- package/src/style/properties.js +0 -753
- package/src/style/query_utils.js +0 -43
- package/src/style/style.js +0 -1361
- package/src/style/style_glyph.js +0 -17
- package/src/style/style_image.js +0 -137
- package/src/style/style_layer/background_style_layer.js +0 -21
- package/src/style/style_layer/background_style_layer_properties.js +0 -40
- package/src/style/style_layer/circle_style_layer.js +0 -98
- package/src/style/style_layer/circle_style_layer_properties.js +0 -63
- package/src/style/style_layer/custom_style_layer.js +0 -223
- package/src/style/style_layer/fill_extrusion_style_layer.js +0 -224
- package/src/style/style_layer/fill_extrusion_style_layer_properties.js +0 -50
- package/src/style/style_layer/fill_style_layer.js +0 -67
- package/src/style/style_layer/fill_style_layer_properties.js +0 -55
- package/src/style/style_layer/heatmap_style_layer.js +0 -69
- package/src/style/style_layer/heatmap_style_layer_properties.js +0 -44
- package/src/style/style_layer/hillshade_style_layer.js +0 -25
- package/src/style/style_layer/hillshade_style_layer_properties.js +0 -46
- package/src/style/style_layer/layer_properties.js.ejs +0 -69
- package/src/style/style_layer/line_style_layer.js +0 -151
- package/src/style/style_layer/line_style_layer_properties.js +0 -71
- package/src/style/style_layer/raster_style_layer.js +0 -21
- package/src/style/style_layer/raster_style_layer_properties.js +0 -50
- package/src/style/style_layer/symbol_style_layer.js +0 -190
- package/src/style/style_layer/symbol_style_layer_properties.js +0 -153
- package/src/style/style_layer/typed_style_layer.js +0 -17
- package/src/style/style_layer.js +0 -281
- package/src/style/style_layer_index.js +0 -80
- package/src/style/validate_style.js +0 -42
- package/src/style/zoom_history.js +0 -44
- package/src/style-spec/.eslintrc +0 -5
- package/src/style-spec/CHANGELOG.md +0 -438
- package/src/style-spec/README.md +0 -59
- package/src/style-spec/bin/gl-style-composite +0 -9
- package/src/style-spec/bin/gl-style-format +0 -22
- package/src/style-spec/bin/gl-style-migrate +0 -9
- package/src/style-spec/bin/gl-style-validate +0 -50
- package/src/style-spec/composite.js +0 -50
- package/src/style-spec/declass.js +0 -42
- package/src/style-spec/deref.js +0 -52
- package/src/style-spec/diff.js +0 -393
- package/src/style-spec/dist/.gitkeep +0 -0
- package/src/style-spec/empty.js +0 -29
- package/src/style-spec/error/parsing_error.js +0 -16
- package/src/style-spec/error/validation_error.js +0 -18
- package/src/style-spec/expression/compound_expression.js +0 -162
- package/src/style-spec/expression/definitions/assertion.js +0 -130
- package/src/style-spec/expression/definitions/at.js +0 -70
- package/src/style-spec/expression/definitions/case.js +0 -85
- package/src/style-spec/expression/definitions/coalesce.js +0 -93
- package/src/style-spec/expression/definitions/coercion.js +0 -133
- package/src/style-spec/expression/definitions/collator.js +0 -78
- package/src/style-spec/expression/definitions/comparison.js +0 -184
- package/src/style-spec/expression/definitions/format.js +0 -144
- package/src/style-spec/expression/definitions/format_section_override.js +0 -54
- package/src/style-spec/expression/definitions/image.js +0 -52
- package/src/style-spec/expression/definitions/in.js +0 -92
- package/src/style-spec/expression/definitions/index.js +0 -561
- package/src/style-spec/expression/definitions/interpolate.js +0 -267
- package/src/style-spec/expression/definitions/length.js +0 -61
- package/src/style-spec/expression/definitions/let.js +0 -72
- package/src/style-spec/expression/definitions/literal.js +0 -77
- package/src/style-spec/expression/definitions/match.js +0 -158
- package/src/style-spec/expression/definitions/number_format.js +0 -142
- package/src/style-spec/expression/definitions/step.js +0 -120
- package/src/style-spec/expression/definitions/var.js +0 -46
- package/src/style-spec/expression/definitions/within.js +0 -333
- package/src/style-spec/expression/evaluation_context.js +0 -59
- package/src/style-spec/expression/expression.js +0 -27
- package/src/style-spec/expression/index.js +0 -392
- package/src/style-spec/expression/is_constant.js +0 -59
- package/src/style-spec/expression/parsing_context.js +0 -233
- package/src/style-spec/expression/parsing_error.js +0 -13
- package/src/style-spec/expression/runtime_error.js +0 -17
- package/src/style-spec/expression/scope.js +0 -36
- package/src/style-spec/expression/stops.js +0 -39
- package/src/style-spec/expression/types/collator.js +0 -61
- package/src/style-spec/expression/types/formatted.js +0 -73
- package/src/style-spec/expression/types/resolved_image.js +0 -29
- package/src/style-spec/expression/types.js +0 -106
- package/src/style-spec/expression/values.js +0 -123
- package/src/style-spec/feature_filter/README.md +0 -55
- package/src/style-spec/feature_filter/convert.js +0 -208
- package/src/style-spec/feature_filter/index.js +0 -165
- package/src/style-spec/format.js +0 -51
- package/src/style-spec/function/convert.js +0 -254
- package/src/style-spec/function/index.js +0 -262
- package/src/style-spec/group_by_layout.js +0 -75
- package/src/style-spec/migrate/expressions.js +0 -39
- package/src/style-spec/migrate/v8.js +0 -203
- package/src/style-spec/migrate/v9.js +0 -26
- package/src/style-spec/migrate.js +0 -36
- package/src/style-spec/package.json +0 -41
- package/src/style-spec/read_style.js +0 -14
- package/src/style-spec/reference/latest.js +0 -3
- package/src/style-spec/reference/v8.json +0 -5808
- package/src/style-spec/rollup.config.js +0 -45
- package/src/style-spec/style-spec.js +0 -122
- package/src/style-spec/types.js +0 -438
- package/src/style-spec/util/color.js +0 -95
- package/src/style-spec/util/color_spaces.js +0 -139
- package/src/style-spec/util/deep_equal.js +0 -28
- package/src/style-spec/util/extend.js +0 -10
- package/src/style-spec/util/get_type.js +0 -17
- package/src/style-spec/util/interpolate.js +0 -22
- package/src/style-spec/util/properties.js +0 -15
- package/src/style-spec/util/ref_properties.js +0 -2
- package/src/style-spec/util/result.js +0 -19
- package/src/style-spec/util/unbundle_jsonlint.js +0 -24
- package/src/style-spec/validate/latest.js +0 -11
- package/src/style-spec/validate/validate.js +0 -75
- package/src/style-spec/validate/validate_array.js +0 -52
- package/src/style-spec/validate/validate_boolean.js +0 -15
- package/src/style-spec/validate/validate_color.js +0 -20
- package/src/style-spec/validate/validate_constants.js +0 -13
- package/src/style-spec/validate/validate_enum.js +0 -21
- package/src/style-spec/validate/validate_expression.js +0 -43
- package/src/style-spec/validate/validate_filter.js +0 -111
- package/src/style-spec/validate/validate_formatted.js +0 -11
- package/src/style-spec/validate/validate_function.js +0 -207
- package/src/style-spec/validate/validate_glyphs_url.js +0 -21
- package/src/style-spec/validate/validate_image.js +0 -11
- package/src/style-spec/validate/validate_layer.js +0 -134
- package/src/style-spec/validate/validate_layout_property.js +0 -6
- package/src/style-spec/validate/validate_light.js +0 -47
- package/src/style-spec/validate/validate_number.js +0 -29
- package/src/style-spec/validate/validate_object.js +0 -61
- package/src/style-spec/validate/validate_paint_property.js +0 -6
- package/src/style-spec/validate/validate_property.js +0 -64
- package/src/style-spec/validate/validate_source.js +0 -111
- package/src/style-spec/validate/validate_string.js +0 -15
- package/src/style-spec/validate_mapbox_api_supported.js +0 -171
- package/src/style-spec/validate_style.js +0 -39
- package/src/style-spec/validate_style.min.js +0 -78
- package/src/style-spec/visit.js +0 -77
- package/src/symbol/anchor.js +0 -26
- package/src/symbol/check_max_angle.js +0 -81
- package/src/symbol/clip_line.js +0 -71
- package/src/symbol/collision_feature.js +0 -217
- package/src/symbol/collision_index.js +0 -372
- package/src/symbol/cross_tile_symbol_index.js +0 -301
- package/src/symbol/get_anchors.js +0 -167
- package/src/symbol/grid_index.js +0 -335
- package/src/symbol/mergelines.js +0 -82
- package/src/symbol/one_em.js +0 -4
- package/src/symbol/opacity_state.js +0 -27
- package/src/symbol/placement.js +0 -1062
- package/src/symbol/projection.js +0 -450
- package/src/symbol/quads.js +0 -334
- package/src/symbol/shaping.js +0 -816
- package/src/symbol/symbol_layout.js +0 -772
- package/src/symbol/symbol_size.js +0 -113
- package/src/symbol/transform_text.js +0 -29
- package/src/types/callback.js +0 -17
- package/src/types/cancelable.js +0 -3
- package/src/types/tilejson.js +0 -17
- package/src/types/transferable.js +0 -3
- package/src/types/window.js +0 -172
- package/src/ui/anchor.js +0 -32
- package/src/ui/bind_handlers.js +0 -202
- package/src/ui/camera.js +0 -1152
- package/src/ui/control/attribution_control.js +0 -189
- package/src/ui/control/fps_control.js +0 -185
- package/src/ui/control/fullscreen_control.js +0 -147
- package/src/ui/control/geolocate_control.js +0 -594
- package/src/ui/control/logo_control.js +0 -92
- package/src/ui/control/navigation_control.js +0 -148
- package/src/ui/control/scale_control.js +0 -142
- package/src/ui/crs.js +0 -64
- package/src/ui/default_locale.js +0 -20
- package/src/ui/events.js +0 -806
- package/src/ui/handler/box_zoom.js +0 -175
- package/src/ui/handler/dblclick_zoom.js +0 -139
- package/src/ui/handler/drag_pan.js +0 -416
- package/src/ui/handler/drag_rotate.js +0 -378
- package/src/ui/handler/keyboard.js +0 -161
- package/src/ui/handler/scroll_zoom.js +0 -333
- package/src/ui/handler/touch_zoom_rotate.js +0 -293
- package/src/ui/hash.js +0 -147
- package/src/ui/map.js +0 -2883
- package/src/ui/marker.js +0 -607
- package/src/ui/offline_map.js +0 -91
- package/src/ui/popup.js +0 -530
- package/src/util/actor.js +0 -212
- package/src/util/ajax.js +0 -371
- package/src/util/browser/web_worker.js +0 -10
- package/src/util/browser/window.js +0 -5
- package/src/util/browser.js +0 -70
- package/src/util/classify_rings.js +0 -52
- package/src/util/color_ramp.js +0 -28
- package/src/util/config.js +0 -30
- package/src/util/debug.js +0 -12
- package/src/util/dictionary_coder.js +0 -30
- package/src/util/dispatcher.js +0 -70
- package/src/util/dom.js +0 -144
- package/src/util/evented.js +0 -174
- package/src/util/find_pole_of_inaccessibility.js +0 -129
- package/src/util/global_worker_pool.js +0 -17
- package/src/util/image.js +0 -142
- package/src/util/intersection_tests.js +0 -208
- package/src/util/is_char_in_unicode_block.js +0 -311
- package/src/util/mapbox.js +0 -486
- package/src/util/offscreen_canvas_supported.js +0 -14
- package/src/util/performance.js +0 -112
- package/src/util/primitives.js +0 -145
- package/src/util/resolve_tokens.js +0 -16
- package/src/util/script_detection.js +0 -328
- package/src/util/sku_token.js +0 -42
- package/src/util/smart_wrap.js +0 -55
- package/src/util/struct_array.js +0 -243
- package/src/util/struct_array.js.ejs +0 -112
- package/src/util/struct_array_layout.js.ejs +0 -98
- package/src/util/task_queue.js +0 -68
- package/src/util/throttle.js +0 -28
- package/src/util/throttled_invoker.js +0 -46
- package/src/util/tile_cover.js +0 -101
- package/src/util/tile_request_cache.js +0 -172
- package/src/util/util.js +0 -504
- package/src/util/vectortile_to_geojson.js +0 -54
- package/src/util/verticalize_punctuation.js +0 -114
- package/src/util/web_worker.js +0 -91
- package/src/util/web_worker_transfer.js +0 -266
- package/src/util/webp_supported.js +0 -69
- package/src/util/window.js +0 -102
- package/src/util/worker_pool.js +0 -47
|
@@ -1,224 +0,0 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import StyleLayer from '../style_layer';
|
|
4
|
-
|
|
5
|
-
import FillExtrusionBucket from '../../data/bucket/fill_extrusion_bucket';
|
|
6
|
-
import {polygonIntersectsPolygon, polygonIntersectsMultiPolygon} from '../../util/intersection_tests';
|
|
7
|
-
import {translateDistance, translate} from '../query_utils';
|
|
8
|
-
import properties from './fill_extrusion_style_layer_properties';
|
|
9
|
-
import {Transitionable, Transitioning, PossiblyEvaluated} from '../properties';
|
|
10
|
-
import {vec4} from 'gl-matrix';
|
|
11
|
-
import Point from '@mapbox/point-geometry';
|
|
12
|
-
|
|
13
|
-
import type {FeatureState} from '../../style-spec/expression';
|
|
14
|
-
import type {BucketParameters} from '../../data/bucket';
|
|
15
|
-
import type {PaintProps} from './fill_extrusion_style_layer_properties';
|
|
16
|
-
import type Transform from '../../geo/transform';
|
|
17
|
-
import type {LayerSpecification} from '../../style-spec/types';
|
|
18
|
-
|
|
19
|
-
class FillExtrusionStyleLayer extends StyleLayer {
|
|
20
|
-
_transitionablePaint: Transitionable<PaintProps>;
|
|
21
|
-
_transitioningPaint: Transitioning<PaintProps>;
|
|
22
|
-
paint: PossiblyEvaluated<PaintProps>;
|
|
23
|
-
|
|
24
|
-
constructor(layer: LayerSpecification) {
|
|
25
|
-
super(layer, properties);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
createBucket(parameters: BucketParameters<FillExtrusionStyleLayer>) {
|
|
29
|
-
return new FillExtrusionBucket(parameters);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
queryRadius(): number {
|
|
33
|
-
return translateDistance(this.paint.get('fill-extrusion-translate'));
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
is3D(): boolean {
|
|
37
|
-
return true;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
queryIntersectsFeature(queryGeometry: Array<Point>,
|
|
41
|
-
feature: VectorTileFeature,
|
|
42
|
-
featureState: FeatureState,
|
|
43
|
-
geometry: Array<Array<Point>>,
|
|
44
|
-
zoom: number,
|
|
45
|
-
transform: Transform,
|
|
46
|
-
pixelsToTileUnits: number,
|
|
47
|
-
pixelPosMatrix: Float32Array): boolean | number {
|
|
48
|
-
|
|
49
|
-
const translatedPolygon = translate(queryGeometry,
|
|
50
|
-
this.paint.get('fill-extrusion-translate'),
|
|
51
|
-
this.paint.get('fill-extrusion-translate-anchor'),
|
|
52
|
-
transform.angle, pixelsToTileUnits);
|
|
53
|
-
|
|
54
|
-
const height = this.paint.get('fill-extrusion-height').evaluate(feature, featureState);
|
|
55
|
-
const base = this.paint.get('fill-extrusion-base').evaluate(feature, featureState);
|
|
56
|
-
|
|
57
|
-
const projectedQueryGeometry = projectQueryGeometry(translatedPolygon, pixelPosMatrix, transform, 0);
|
|
58
|
-
|
|
59
|
-
const projected = projectExtrusion(geometry, base, height, pixelPosMatrix);
|
|
60
|
-
const projectedBase = projected[0];
|
|
61
|
-
const projectedTop = projected[1];
|
|
62
|
-
return checkIntersection(projectedBase, projectedTop, projectedQueryGeometry);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
function dot(a, b) {
|
|
67
|
-
return a.x * b.x + a.y * b.y;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
export function getIntersectionDistance(projectedQueryGeometry: Array<Point>, projectedFace: Array<Point>) {
|
|
71
|
-
|
|
72
|
-
if (projectedQueryGeometry.length === 1) {
|
|
73
|
-
// For point queries calculate the z at which the point intersects the face
|
|
74
|
-
// using barycentric coordinates.
|
|
75
|
-
|
|
76
|
-
// Find the barycentric coordinates of the projected point within the first
|
|
77
|
-
// triangle of the face, using only the xy plane. It doesn't matter if the
|
|
78
|
-
// point is outside the first triangle because all the triangles in the face
|
|
79
|
-
// are in the same plane.
|
|
80
|
-
//
|
|
81
|
-
// Check whether points are coincident and use other points if they are.
|
|
82
|
-
let i = 0;
|
|
83
|
-
const a = projectedFace[i++];
|
|
84
|
-
let b;
|
|
85
|
-
while (!b || a.equals(b)) {
|
|
86
|
-
b = projectedFace[i++];
|
|
87
|
-
if (!b) return Infinity;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
// Loop until point `c` is not colinear with points `a` and `b`.
|
|
91
|
-
for (; i < projectedFace.length; i++) {
|
|
92
|
-
const c = projectedFace[i];
|
|
93
|
-
|
|
94
|
-
const p = projectedQueryGeometry[0];
|
|
95
|
-
|
|
96
|
-
const ab = b.sub(a);
|
|
97
|
-
const ac = c.sub(a);
|
|
98
|
-
const ap = p.sub(a);
|
|
99
|
-
|
|
100
|
-
const dotABAB = dot(ab, ab);
|
|
101
|
-
const dotABAC = dot(ab, ac);
|
|
102
|
-
const dotACAC = dot(ac, ac);
|
|
103
|
-
const dotAPAB = dot(ap, ab);
|
|
104
|
-
const dotAPAC = dot(ap, ac);
|
|
105
|
-
const denom = dotABAB * dotACAC - dotABAC * dotABAC;
|
|
106
|
-
|
|
107
|
-
const v = (dotACAC * dotAPAB - dotABAC * dotAPAC) / denom;
|
|
108
|
-
const w = (dotABAB * dotAPAC - dotABAC * dotAPAB) / denom;
|
|
109
|
-
const u = 1 - v - w;
|
|
110
|
-
|
|
111
|
-
// Use the barycentric weighting along with the original triangle z coordinates to get the point of intersection.
|
|
112
|
-
const distance = a.z * u + b.z * v + c.z * w;
|
|
113
|
-
|
|
114
|
-
if (isFinite(distance)) return distance;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
return Infinity;
|
|
118
|
-
|
|
119
|
-
} else {
|
|
120
|
-
// The counts as closest is less clear when the query is a box. This
|
|
121
|
-
// returns the distance to the nearest point on the face, whether it is
|
|
122
|
-
// within the query or not. It could be more correct to return the
|
|
123
|
-
// distance to the closest point within the query box but this would be
|
|
124
|
-
// more complicated and expensive to calculate with little benefit.
|
|
125
|
-
let closestDistance = Infinity;
|
|
126
|
-
for (const p of projectedFace) {
|
|
127
|
-
closestDistance = Math.min(closestDistance, p.z);
|
|
128
|
-
}
|
|
129
|
-
return closestDistance;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
function checkIntersection(projectedBase: Array<Point>, projectedTop: Array<Point>, projectedQueryGeometry: Array<Point>) {
|
|
134
|
-
let closestDistance = Infinity;
|
|
135
|
-
|
|
136
|
-
if (polygonIntersectsMultiPolygon(projectedQueryGeometry, projectedTop)) {
|
|
137
|
-
closestDistance = getIntersectionDistance(projectedQueryGeometry, projectedTop[0]);
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
for (let r = 0; r < projectedTop.length; r++) {
|
|
141
|
-
const ringTop = projectedTop[r];
|
|
142
|
-
const ringBase = projectedBase[r];
|
|
143
|
-
for (let p = 0; p < ringTop.length - 1; p++) {
|
|
144
|
-
const topA = ringTop[p];
|
|
145
|
-
const topB = ringTop[p + 1];
|
|
146
|
-
const baseA = ringBase[p];
|
|
147
|
-
const baseB = ringBase[p + 1];
|
|
148
|
-
const face = [topA, topB, baseB, baseA, topA];
|
|
149
|
-
if (polygonIntersectsPolygon(projectedQueryGeometry, face)) {
|
|
150
|
-
closestDistance = Math.min(closestDistance, getIntersectionDistance(projectedQueryGeometry, face));
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
return closestDistance === Infinity ? false : closestDistance;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
/*
|
|
159
|
-
* Project the geometry using matrix `m`. This is essentially doing
|
|
160
|
-
* `vec4.transformMat4([], [p.x, p.y, z, 1], m)` but the multiplication
|
|
161
|
-
* is inlined so that parts of the projection that are the same across
|
|
162
|
-
* different points can only be done once. This produced a measurable
|
|
163
|
-
* performance improvement.
|
|
164
|
-
*/
|
|
165
|
-
function projectExtrusion(geometry: Array<Array<Point>>, zBase: number, zTop: number, m: Float32Array) {
|
|
166
|
-
const projectedBase = [];
|
|
167
|
-
const projectedTop = [];
|
|
168
|
-
|
|
169
|
-
const baseXZ = m[8] * zBase;
|
|
170
|
-
const baseYZ = m[9] * zBase;
|
|
171
|
-
const baseZZ = m[10] * zBase;
|
|
172
|
-
const baseWZ = m[11] * zBase;
|
|
173
|
-
const topXZ = m[8] * zTop;
|
|
174
|
-
const topYZ = m[9] * zTop;
|
|
175
|
-
const topZZ = m[10] * zTop;
|
|
176
|
-
const topWZ = m[11] * zTop;
|
|
177
|
-
|
|
178
|
-
for (const r of geometry) {
|
|
179
|
-
const ringBase = [];
|
|
180
|
-
const ringTop = [];
|
|
181
|
-
for (const p of r) {
|
|
182
|
-
const x = p.x;
|
|
183
|
-
const y = p.y;
|
|
184
|
-
|
|
185
|
-
const sX = m[0] * x + m[4] * y + m[12];
|
|
186
|
-
const sY = m[1] * x + m[5] * y + m[13];
|
|
187
|
-
const sZ = m[2] * x + m[6] * y + m[14];
|
|
188
|
-
const sW = m[3] * x + m[7] * y + m[15];
|
|
189
|
-
|
|
190
|
-
const baseX = sX + baseXZ;
|
|
191
|
-
const baseY = sY + baseYZ;
|
|
192
|
-
const baseZ = sZ + baseZZ;
|
|
193
|
-
const baseW = sW + baseWZ;
|
|
194
|
-
|
|
195
|
-
const topX = sX + topXZ;
|
|
196
|
-
const topY = sY + topYZ;
|
|
197
|
-
const topZ = sZ + topZZ;
|
|
198
|
-
const topW = sW + topWZ;
|
|
199
|
-
|
|
200
|
-
const b = new Point(baseX / baseW, baseY / baseW);
|
|
201
|
-
b.z = baseZ / baseW;
|
|
202
|
-
ringBase.push(b);
|
|
203
|
-
|
|
204
|
-
const t = new Point(topX / topW, topY / topW);
|
|
205
|
-
t.z = topZ / topW;
|
|
206
|
-
ringTop.push(t);
|
|
207
|
-
}
|
|
208
|
-
projectedBase.push(ringBase);
|
|
209
|
-
projectedTop.push(ringTop);
|
|
210
|
-
}
|
|
211
|
-
return [projectedBase, projectedTop];
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
function projectQueryGeometry(queryGeometry: Array<Point>, pixelPosMatrix: Float32Array, transform: Transform, z: number) {
|
|
215
|
-
const projectedQueryGeometry = [];
|
|
216
|
-
for (const p of queryGeometry) {
|
|
217
|
-
const v = [p.x, p.y, z, 1];
|
|
218
|
-
vec4.transformMat4(v, v, pixelPosMatrix);
|
|
219
|
-
projectedQueryGeometry.push(new Point(v[0] / v[3], v[1] / v[3]));
|
|
220
|
-
}
|
|
221
|
-
return projectedQueryGeometry;
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
export default FillExtrusionStyleLayer;
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
// This file is generated. Edit build/generate-style-code.js, then run `yarn run codegen`.
|
|
2
|
-
// @flow
|
|
3
|
-
/* eslint-disable */
|
|
4
|
-
|
|
5
|
-
import styleSpec from '../../style-spec/reference/latest';
|
|
6
|
-
|
|
7
|
-
import {
|
|
8
|
-
Properties,
|
|
9
|
-
DataConstantProperty,
|
|
10
|
-
DataDrivenProperty,
|
|
11
|
-
CrossFadedDataDrivenProperty,
|
|
12
|
-
CrossFadedProperty,
|
|
13
|
-
ColorRampProperty
|
|
14
|
-
} from '../properties';
|
|
15
|
-
|
|
16
|
-
import type Color from '../../style-spec/util/color';
|
|
17
|
-
|
|
18
|
-
import type Formatted from '../../style-spec/expression/types/formatted';
|
|
19
|
-
|
|
20
|
-
import type ResolvedImage from '../../style-spec/expression/types/resolved_image';
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
export type PaintProps = {|
|
|
24
|
-
"fill-extrusion-opacity": DataConstantProperty<number>,
|
|
25
|
-
"fill-extrusion-color": DataDrivenProperty<Color>,
|
|
26
|
-
"fill-extrusion-translate": DataConstantProperty<[number, number]>,
|
|
27
|
-
"fill-extrusion-translate-anchor": DataConstantProperty<"map" | "viewport">,
|
|
28
|
-
"fill-extrusion-pattern": CrossFadedDataDrivenProperty<ResolvedImage>,
|
|
29
|
-
"fill-extrusion-height": DataDrivenProperty<number>,
|
|
30
|
-
"fill-extrusion-base": DataDrivenProperty<number>,
|
|
31
|
-
"fill-extrusion-vertical-gradient": DataConstantProperty<boolean>,
|
|
32
|
-
|};
|
|
33
|
-
|
|
34
|
-
const paint: Properties<PaintProps> = new Properties({
|
|
35
|
-
"fill-extrusion-opacity": new DataConstantProperty(styleSpec["paint_fill-extrusion"]["fill-extrusion-opacity"]),
|
|
36
|
-
"fill-extrusion-color": new DataDrivenProperty(styleSpec["paint_fill-extrusion"]["fill-extrusion-color"]),
|
|
37
|
-
"fill-extrusion-translate": new DataConstantProperty(styleSpec["paint_fill-extrusion"]["fill-extrusion-translate"]),
|
|
38
|
-
"fill-extrusion-translate-anchor": new DataConstantProperty(styleSpec["paint_fill-extrusion"]["fill-extrusion-translate-anchor"]),
|
|
39
|
-
"fill-extrusion-pattern": new CrossFadedDataDrivenProperty(styleSpec["paint_fill-extrusion"]["fill-extrusion-pattern"]),
|
|
40
|
-
"fill-extrusion-height": new DataDrivenProperty(styleSpec["paint_fill-extrusion"]["fill-extrusion-height"]),
|
|
41
|
-
"fill-extrusion-base": new DataDrivenProperty(styleSpec["paint_fill-extrusion"]["fill-extrusion-base"]),
|
|
42
|
-
"fill-extrusion-vertical-gradient": new DataConstantProperty(styleSpec["paint_fill-extrusion"]["fill-extrusion-vertical-gradient"]),
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
// Note: without adding the explicit type annotation, Flow infers weaker types
|
|
46
|
-
// for these objects from their use in the constructor to StyleLayer, as
|
|
47
|
-
// {layout?: Properties<...>, paint: Properties<...>}
|
|
48
|
-
export default ({ paint }: $Exact<{
|
|
49
|
-
paint: Properties<PaintProps>
|
|
50
|
-
}>);
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import StyleLayer from '../style_layer';
|
|
4
|
-
|
|
5
|
-
import FillBucket from '../../data/bucket/fill_bucket';
|
|
6
|
-
import {polygonIntersectsMultiPolygon} from '../../util/intersection_tests';
|
|
7
|
-
import {translateDistance, translate} from '../query_utils';
|
|
8
|
-
import properties from './fill_style_layer_properties';
|
|
9
|
-
import {Transitionable, Transitioning, Layout, PossiblyEvaluated} from '../properties';
|
|
10
|
-
|
|
11
|
-
import type {FeatureState} from '../../style-spec/expression';
|
|
12
|
-
import type {BucketParameters} from '../../data/bucket';
|
|
13
|
-
import type Point from '@mapbox/point-geometry';
|
|
14
|
-
import type {LayoutProps, PaintProps} from './fill_style_layer_properties';
|
|
15
|
-
import type EvaluationParameters from '../evaluation_parameters';
|
|
16
|
-
import type Transform from '../../geo/transform';
|
|
17
|
-
import type {LayerSpecification} from '../../style-spec/types';
|
|
18
|
-
|
|
19
|
-
class FillStyleLayer extends StyleLayer {
|
|
20
|
-
_unevaluatedLayout: Layout<LayoutProps>;
|
|
21
|
-
layout: PossiblyEvaluated<LayoutProps>;
|
|
22
|
-
|
|
23
|
-
_transitionablePaint: Transitionable<PaintProps>;
|
|
24
|
-
_transitioningPaint: Transitioning<PaintProps>;
|
|
25
|
-
paint: PossiblyEvaluated<PaintProps>;
|
|
26
|
-
|
|
27
|
-
constructor(layer: LayerSpecification) {
|
|
28
|
-
super(layer, properties);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
recalculate(parameters: EvaluationParameters, availableImages: Array<string>) {
|
|
32
|
-
super.recalculate(parameters, availableImages);
|
|
33
|
-
|
|
34
|
-
const outlineColor = this.paint._values['fill-outline-color'];
|
|
35
|
-
if (outlineColor.value.kind === 'constant' && outlineColor.value.value === undefined) {
|
|
36
|
-
this.paint._values['fill-outline-color'] = this.paint._values['fill-color'];
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
createBucket(parameters: BucketParameters<*>) {
|
|
41
|
-
return new FillBucket(parameters);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
queryRadius(): number {
|
|
45
|
-
return translateDistance(this.paint.get('fill-translate'));
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
queryIntersectsFeature(queryGeometry: Array<Point>,
|
|
49
|
-
feature: VectorTileFeature,
|
|
50
|
-
featureState: FeatureState,
|
|
51
|
-
geometry: Array<Array<Point>>,
|
|
52
|
-
zoom: number,
|
|
53
|
-
transform: Transform,
|
|
54
|
-
pixelsToTileUnits: number): boolean {
|
|
55
|
-
const translatedPolygon = translate(queryGeometry,
|
|
56
|
-
this.paint.get('fill-translate'),
|
|
57
|
-
this.paint.get('fill-translate-anchor'),
|
|
58
|
-
transform.angle, pixelsToTileUnits);
|
|
59
|
-
return polygonIntersectsMultiPolygon(translatedPolygon, geometry);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
isTileClipped() {
|
|
63
|
-
return true;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
export default FillStyleLayer;
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
// This file is generated. Edit build/generate-style-code.js, then run `yarn run codegen`.
|
|
2
|
-
// @flow
|
|
3
|
-
/* eslint-disable */
|
|
4
|
-
|
|
5
|
-
import styleSpec from '../../style-spec/reference/latest';
|
|
6
|
-
|
|
7
|
-
import {
|
|
8
|
-
Properties,
|
|
9
|
-
DataConstantProperty,
|
|
10
|
-
DataDrivenProperty,
|
|
11
|
-
CrossFadedDataDrivenProperty,
|
|
12
|
-
CrossFadedProperty,
|
|
13
|
-
ColorRampProperty
|
|
14
|
-
} from '../properties';
|
|
15
|
-
|
|
16
|
-
import type Color from '../../style-spec/util/color';
|
|
17
|
-
|
|
18
|
-
import type Formatted from '../../style-spec/expression/types/formatted';
|
|
19
|
-
|
|
20
|
-
import type ResolvedImage from '../../style-spec/expression/types/resolved_image';
|
|
21
|
-
|
|
22
|
-
export type LayoutProps = {|
|
|
23
|
-
"fill-sort-key": DataDrivenProperty<number>,
|
|
24
|
-
|};
|
|
25
|
-
|
|
26
|
-
const layout: Properties<LayoutProps> = new Properties({
|
|
27
|
-
"fill-sort-key": new DataDrivenProperty(styleSpec["layout_fill"]["fill-sort-key"]),
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
export type PaintProps = {|
|
|
31
|
-
"fill-antialias": DataConstantProperty<boolean>,
|
|
32
|
-
"fill-opacity": DataDrivenProperty<number>,
|
|
33
|
-
"fill-color": DataDrivenProperty<Color>,
|
|
34
|
-
"fill-outline-color": DataDrivenProperty<Color>,
|
|
35
|
-
"fill-translate": DataConstantProperty<[number, number]>,
|
|
36
|
-
"fill-translate-anchor": DataConstantProperty<"map" | "viewport">,
|
|
37
|
-
"fill-pattern": CrossFadedDataDrivenProperty<ResolvedImage>,
|
|
38
|
-
|};
|
|
39
|
-
|
|
40
|
-
const paint: Properties<PaintProps> = new Properties({
|
|
41
|
-
"fill-antialias": new DataConstantProperty(styleSpec["paint_fill"]["fill-antialias"]),
|
|
42
|
-
"fill-opacity": new DataDrivenProperty(styleSpec["paint_fill"]["fill-opacity"]),
|
|
43
|
-
"fill-color": new DataDrivenProperty(styleSpec["paint_fill"]["fill-color"]),
|
|
44
|
-
"fill-outline-color": new DataDrivenProperty(styleSpec["paint_fill"]["fill-outline-color"]),
|
|
45
|
-
"fill-translate": new DataConstantProperty(styleSpec["paint_fill"]["fill-translate"]),
|
|
46
|
-
"fill-translate-anchor": new DataConstantProperty(styleSpec["paint_fill"]["fill-translate-anchor"]),
|
|
47
|
-
"fill-pattern": new CrossFadedDataDrivenProperty(styleSpec["paint_fill"]["fill-pattern"]),
|
|
48
|
-
});
|
|
49
|
-
|
|
50
|
-
// Note: without adding the explicit type annotation, Flow infers weaker types
|
|
51
|
-
// for these objects from their use in the constructor to StyleLayer, as
|
|
52
|
-
// {layout?: Properties<...>, paint: Properties<...>}
|
|
53
|
-
export default ({ paint, layout }: $Exact<{
|
|
54
|
-
paint: Properties<PaintProps>, layout: Properties<LayoutProps>
|
|
55
|
-
}>);
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import StyleLayer from '../style_layer';
|
|
4
|
-
|
|
5
|
-
import HeatmapBucket from '../../data/bucket/heatmap_bucket';
|
|
6
|
-
import {RGBAImage} from '../../util/image';
|
|
7
|
-
import properties from './heatmap_style_layer_properties';
|
|
8
|
-
import renderColorRamp from '../../util/color_ramp';
|
|
9
|
-
import {Transitionable, Transitioning, PossiblyEvaluated} from '../properties';
|
|
10
|
-
|
|
11
|
-
import type Texture from '../../render/texture';
|
|
12
|
-
import type Framebuffer from '../../gl/framebuffer';
|
|
13
|
-
import type {PaintProps} from './heatmap_style_layer_properties';
|
|
14
|
-
import type {LayerSpecification} from '../../style-spec/types';
|
|
15
|
-
|
|
16
|
-
class HeatmapStyleLayer extends StyleLayer {
|
|
17
|
-
|
|
18
|
-
heatmapFbo: ?Framebuffer;
|
|
19
|
-
colorRamp: RGBAImage;
|
|
20
|
-
colorRampTexture: ?Texture;
|
|
21
|
-
|
|
22
|
-
_transitionablePaint: Transitionable<PaintProps>;
|
|
23
|
-
_transitioningPaint: Transitioning<PaintProps>;
|
|
24
|
-
paint: PossiblyEvaluated<PaintProps>;
|
|
25
|
-
|
|
26
|
-
createBucket(options: any) {
|
|
27
|
-
return new HeatmapBucket(options);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
constructor(layer: LayerSpecification) {
|
|
31
|
-
super(layer, properties);
|
|
32
|
-
|
|
33
|
-
// make sure color ramp texture is generated for default heatmap color too
|
|
34
|
-
this._updateColorRamp();
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
_handleSpecialPaintPropertyUpdate(name: string) {
|
|
38
|
-
if (name === 'heatmap-color') {
|
|
39
|
-
this._updateColorRamp();
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
_updateColorRamp() {
|
|
44
|
-
const expression = this._transitionablePaint._values['heatmap-color'].value.expression;
|
|
45
|
-
this.colorRamp = renderColorRamp(expression, 'heatmapDensity');
|
|
46
|
-
this.colorRampTexture = null;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
resize() {
|
|
50
|
-
if (this.heatmapFbo) {
|
|
51
|
-
this.heatmapFbo.destroy();
|
|
52
|
-
this.heatmapFbo = null;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
queryRadius(): number {
|
|
57
|
-
return 0;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
queryIntersectsFeature(): boolean {
|
|
61
|
-
return false;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
hasOffscreenPass() {
|
|
65
|
-
return this.paint.get('heatmap-opacity') !== 0 && this.visibility !== 'none';
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
export default HeatmapStyleLayer;
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
// This file is generated. Edit build/generate-style-code.js, then run `yarn run codegen`.
|
|
2
|
-
// @flow
|
|
3
|
-
/* eslint-disable */
|
|
4
|
-
|
|
5
|
-
import styleSpec from '../../style-spec/reference/latest';
|
|
6
|
-
|
|
7
|
-
import {
|
|
8
|
-
Properties,
|
|
9
|
-
DataConstantProperty,
|
|
10
|
-
DataDrivenProperty,
|
|
11
|
-
CrossFadedDataDrivenProperty,
|
|
12
|
-
CrossFadedProperty,
|
|
13
|
-
ColorRampProperty
|
|
14
|
-
} from '../properties';
|
|
15
|
-
|
|
16
|
-
import type Color from '../../style-spec/util/color';
|
|
17
|
-
|
|
18
|
-
import type Formatted from '../../style-spec/expression/types/formatted';
|
|
19
|
-
|
|
20
|
-
import type ResolvedImage from '../../style-spec/expression/types/resolved_image';
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
export type PaintProps = {|
|
|
24
|
-
"heatmap-radius": DataDrivenProperty<number>,
|
|
25
|
-
"heatmap-weight": DataDrivenProperty<number>,
|
|
26
|
-
"heatmap-intensity": DataConstantProperty<number>,
|
|
27
|
-
"heatmap-color": ColorRampProperty,
|
|
28
|
-
"heatmap-opacity": DataConstantProperty<number>,
|
|
29
|
-
|};
|
|
30
|
-
|
|
31
|
-
const paint: Properties<PaintProps> = new Properties({
|
|
32
|
-
"heatmap-radius": new DataDrivenProperty(styleSpec["paint_heatmap"]["heatmap-radius"]),
|
|
33
|
-
"heatmap-weight": new DataDrivenProperty(styleSpec["paint_heatmap"]["heatmap-weight"]),
|
|
34
|
-
"heatmap-intensity": new DataConstantProperty(styleSpec["paint_heatmap"]["heatmap-intensity"]),
|
|
35
|
-
"heatmap-color": new ColorRampProperty(styleSpec["paint_heatmap"]["heatmap-color"]),
|
|
36
|
-
"heatmap-opacity": new DataConstantProperty(styleSpec["paint_heatmap"]["heatmap-opacity"]),
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
// Note: without adding the explicit type annotation, Flow infers weaker types
|
|
40
|
-
// for these objects from their use in the constructor to StyleLayer, as
|
|
41
|
-
// {layout?: Properties<...>, paint: Properties<...>}
|
|
42
|
-
export default ({ paint }: $Exact<{
|
|
43
|
-
paint: Properties<PaintProps>
|
|
44
|
-
}>);
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import StyleLayer from '../style_layer';
|
|
4
|
-
|
|
5
|
-
import properties from './hillshade_style_layer_properties';
|
|
6
|
-
import {Transitionable, Transitioning, PossiblyEvaluated} from '../properties';
|
|
7
|
-
|
|
8
|
-
import type {PaintProps} from './hillshade_style_layer_properties';
|
|
9
|
-
import type {LayerSpecification} from '../../style-spec/types';
|
|
10
|
-
|
|
11
|
-
class HillshadeStyleLayer extends StyleLayer {
|
|
12
|
-
_transitionablePaint: Transitionable<PaintProps>;
|
|
13
|
-
_transitioningPaint: Transitioning<PaintProps>;
|
|
14
|
-
paint: PossiblyEvaluated<PaintProps>;
|
|
15
|
-
|
|
16
|
-
constructor(layer: LayerSpecification) {
|
|
17
|
-
super(layer, properties);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
hasOffscreenPass() {
|
|
21
|
-
return this.paint.get('hillshade-exaggeration') !== 0 && this.visibility !== 'none';
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export default HillshadeStyleLayer;
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
// This file is generated. Edit build/generate-style-code.js, then run `yarn run codegen`.
|
|
2
|
-
// @flow
|
|
3
|
-
/* eslint-disable */
|
|
4
|
-
|
|
5
|
-
import styleSpec from '../../style-spec/reference/latest';
|
|
6
|
-
|
|
7
|
-
import {
|
|
8
|
-
Properties,
|
|
9
|
-
DataConstantProperty,
|
|
10
|
-
DataDrivenProperty,
|
|
11
|
-
CrossFadedDataDrivenProperty,
|
|
12
|
-
CrossFadedProperty,
|
|
13
|
-
ColorRampProperty
|
|
14
|
-
} from '../properties';
|
|
15
|
-
|
|
16
|
-
import type Color from '../../style-spec/util/color';
|
|
17
|
-
|
|
18
|
-
import type Formatted from '../../style-spec/expression/types/formatted';
|
|
19
|
-
|
|
20
|
-
import type ResolvedImage from '../../style-spec/expression/types/resolved_image';
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
export type PaintProps = {|
|
|
24
|
-
"hillshade-illumination-direction": DataConstantProperty<number>,
|
|
25
|
-
"hillshade-illumination-anchor": DataConstantProperty<"map" | "viewport">,
|
|
26
|
-
"hillshade-exaggeration": DataConstantProperty<number>,
|
|
27
|
-
"hillshade-shadow-color": DataConstantProperty<Color>,
|
|
28
|
-
"hillshade-highlight-color": DataConstantProperty<Color>,
|
|
29
|
-
"hillshade-accent-color": DataConstantProperty<Color>,
|
|
30
|
-
|};
|
|
31
|
-
|
|
32
|
-
const paint: Properties<PaintProps> = new Properties({
|
|
33
|
-
"hillshade-illumination-direction": new DataConstantProperty(styleSpec["paint_hillshade"]["hillshade-illumination-direction"]),
|
|
34
|
-
"hillshade-illumination-anchor": new DataConstantProperty(styleSpec["paint_hillshade"]["hillshade-illumination-anchor"]),
|
|
35
|
-
"hillshade-exaggeration": new DataConstantProperty(styleSpec["paint_hillshade"]["hillshade-exaggeration"]),
|
|
36
|
-
"hillshade-shadow-color": new DataConstantProperty(styleSpec["paint_hillshade"]["hillshade-shadow-color"]),
|
|
37
|
-
"hillshade-highlight-color": new DataConstantProperty(styleSpec["paint_hillshade"]["hillshade-highlight-color"]),
|
|
38
|
-
"hillshade-accent-color": new DataConstantProperty(styleSpec["paint_hillshade"]["hillshade-accent-color"]),
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
// Note: without adding the explicit type annotation, Flow infers weaker types
|
|
42
|
-
// for these objects from their use in the constructor to StyleLayer, as
|
|
43
|
-
// {layout?: Properties<...>, paint: Properties<...>}
|
|
44
|
-
export default ({ paint }: $Exact<{
|
|
45
|
-
paint: Properties<PaintProps>
|
|
46
|
-
}>);
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
<%
|
|
2
|
-
const type = locals.type;
|
|
3
|
-
const layoutProperties = locals.layoutProperties;
|
|
4
|
-
const paintProperties = locals.paintProperties;
|
|
5
|
-
-%>
|
|
6
|
-
// This file is generated. Edit build/generate-style-code.js, then run `yarn run codegen`.
|
|
7
|
-
// @flow
|
|
8
|
-
/* eslint-disable */
|
|
9
|
-
|
|
10
|
-
import styleSpec from '../../style-spec/reference/latest';
|
|
11
|
-
|
|
12
|
-
import {
|
|
13
|
-
Properties,
|
|
14
|
-
DataConstantProperty,
|
|
15
|
-
DataDrivenProperty,
|
|
16
|
-
CrossFadedDataDrivenProperty,
|
|
17
|
-
CrossFadedProperty,
|
|
18
|
-
ColorRampProperty
|
|
19
|
-
} from '../properties';
|
|
20
|
-
|
|
21
|
-
import type Color from '../../style-spec/util/color';
|
|
22
|
-
|
|
23
|
-
import type Formatted from '../../style-spec/expression/types/formatted';
|
|
24
|
-
|
|
25
|
-
import type ResolvedImage from '../../style-spec/expression/types/resolved_image';
|
|
26
|
-
<%
|
|
27
|
-
const overridables = paintProperties.filter(p => p.overridable)
|
|
28
|
-
if (overridables.length) { -%>
|
|
29
|
-
|
|
30
|
-
import {
|
|
31
|
-
<%= overridables.reduce((imports, prop) => { imports.push(runtimeType(prop)); return imports; }, []).join(',\n\t'); -%>
|
|
32
|
-
|
|
33
|
-
} from '../../style-spec/expression/types';
|
|
34
|
-
<% } -%>
|
|
35
|
-
|
|
36
|
-
<% if (layoutProperties.length) { -%>
|
|
37
|
-
export type LayoutProps = {|
|
|
38
|
-
<% for (const property of layoutProperties) { -%>
|
|
39
|
-
"<%= property.name %>": <%- propertyType(property) %>,
|
|
40
|
-
<% } -%>
|
|
41
|
-
|};
|
|
42
|
-
|
|
43
|
-
const layout: Properties<LayoutProps> = new Properties({
|
|
44
|
-
<% for (const property of layoutProperties) { -%>
|
|
45
|
-
"<%= property.name %>": <%- propertyValue(property, 'layout') %>,
|
|
46
|
-
<% } -%>
|
|
47
|
-
});
|
|
48
|
-
<% } -%>
|
|
49
|
-
<% if(paintProperties.length){ %>
|
|
50
|
-
export type PaintProps = {|
|
|
51
|
-
<% for (const property of paintProperties) { -%>
|
|
52
|
-
"<%= property.name %>": <%- propertyType(property) %>,
|
|
53
|
-
<% } -%>
|
|
54
|
-
|};
|
|
55
|
-
<% } else{ %>
|
|
56
|
-
export type PaintProps = {};
|
|
57
|
-
<% } %>
|
|
58
|
-
const paint: Properties<PaintProps> = new Properties({
|
|
59
|
-
<% for (const property of paintProperties) { -%>
|
|
60
|
-
"<%= property.name %>": <%- propertyValue(property, 'paint') %>,
|
|
61
|
-
<% } -%>
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
// Note: without adding the explicit type annotation, Flow infers weaker types
|
|
65
|
-
// for these objects from their use in the constructor to StyleLayer, as
|
|
66
|
-
// {layout?: Properties<...>, paint: Properties<...>}
|
|
67
|
-
export default ({ paint<% if (layoutProperties.length) { %>, layout<% } %> }: $Exact<{
|
|
68
|
-
paint: Properties<PaintProps><% if (layoutProperties.length) { %>, layout: Properties<LayoutProps><% } %>
|
|
69
|
-
}>);
|