@deck.gl-community/editable-layers 9.2.0-beta.6 → 9.2.0-beta.8
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/edit-modes/draw-90degree-polygon-mode.d.ts +2 -2
- package/dist/edit-modes/draw-90degree-polygon-mode.d.ts.map +1 -1
- package/dist/edit-modes/draw-90degree-polygon-mode.js.map +1 -1
- package/dist/edit-modes/draw-circle-by-diameter-mode.d.ts +2 -2
- package/dist/edit-modes/draw-circle-by-diameter-mode.d.ts.map +1 -1
- package/dist/edit-modes/draw-circle-by-diameter-mode.js +0 -1
- package/dist/edit-modes/draw-circle-by-diameter-mode.js.map +1 -1
- package/dist/edit-modes/draw-circle-from-center-mode.d.ts +2 -2
- package/dist/edit-modes/draw-circle-from-center-mode.d.ts.map +1 -1
- package/dist/edit-modes/draw-circle-from-center-mode.js +0 -1
- package/dist/edit-modes/draw-circle-from-center-mode.js.map +1 -1
- package/dist/edit-modes/draw-ellipse-by-bounding-box-mode.d.ts +2 -2
- package/dist/edit-modes/draw-ellipse-by-bounding-box-mode.d.ts.map +1 -1
- package/dist/edit-modes/draw-ellipse-by-bounding-box-mode.js +1 -2
- package/dist/edit-modes/draw-ellipse-by-bounding-box-mode.js.map +1 -1
- package/dist/edit-modes/draw-ellipse-using-three-points-mode.d.ts +2 -2
- package/dist/edit-modes/draw-ellipse-using-three-points-mode.d.ts.map +1 -1
- package/dist/edit-modes/draw-ellipse-using-three-points-mode.js +0 -2
- package/dist/edit-modes/draw-ellipse-using-three-points-mode.js.map +1 -1
- package/dist/edit-modes/draw-line-string-mode.d.ts +5 -5
- package/dist/edit-modes/draw-line-string-mode.d.ts.map +1 -1
- package/dist/edit-modes/draw-line-string-mode.js.map +1 -1
- package/dist/edit-modes/draw-point-mode.d.ts +2 -2
- package/dist/edit-modes/draw-point-mode.d.ts.map +1 -1
- package/dist/edit-modes/draw-point-mode.js.map +1 -1
- package/dist/edit-modes/draw-polygon-by-dragging-mode.d.ts +8 -8
- package/dist/edit-modes/draw-polygon-by-dragging-mode.d.ts.map +1 -1
- package/dist/edit-modes/draw-polygon-by-dragging-mode.js.map +1 -1
- package/dist/edit-modes/draw-polygon-mode.d.ts +5 -5
- package/dist/edit-modes/draw-polygon-mode.d.ts.map +1 -1
- package/dist/edit-modes/draw-polygon-mode.js.map +1 -1
- package/dist/edit-modes/draw-rectangle-from-center-mode.d.ts +2 -2
- package/dist/edit-modes/draw-rectangle-from-center-mode.d.ts.map +1 -1
- package/dist/edit-modes/draw-rectangle-from-center-mode.js +0 -1
- package/dist/edit-modes/draw-rectangle-from-center-mode.js.map +1 -1
- package/dist/edit-modes/draw-rectangle-mode.d.ts +2 -2
- package/dist/edit-modes/draw-rectangle-mode.d.ts.map +1 -1
- package/dist/edit-modes/draw-rectangle-mode.js +0 -1
- package/dist/edit-modes/draw-rectangle-mode.js.map +1 -1
- package/dist/edit-modes/draw-rectangle-using-three-points-mode.d.ts +2 -2
- package/dist/edit-modes/draw-rectangle-using-three-points-mode.d.ts.map +1 -1
- package/dist/edit-modes/draw-square-from-center-mode.d.ts +2 -2
- package/dist/edit-modes/draw-square-from-center-mode.d.ts.map +1 -1
- package/dist/edit-modes/draw-square-from-center-mode.js +0 -1
- package/dist/edit-modes/draw-square-from-center-mode.js.map +1 -1
- package/dist/edit-modes/draw-square-mode.d.ts +2 -2
- package/dist/edit-modes/draw-square-mode.d.ts.map +1 -1
- package/dist/edit-modes/draw-square-mode.js +0 -1
- package/dist/edit-modes/draw-square-mode.js.map +1 -1
- package/dist/edit-modes/duplicate-mode.d.ts +2 -2
- package/dist/edit-modes/duplicate-mode.d.ts.map +1 -1
- package/dist/edit-modes/duplicate-mode.js.map +1 -1
- package/dist/edit-modes/extend-line-string-mode.d.ts +4 -4
- package/dist/edit-modes/extend-line-string-mode.d.ts.map +1 -1
- package/dist/edit-modes/extend-line-string-mode.js.map +1 -1
- package/dist/edit-modes/extrude-mode.d.ts +7 -7
- package/dist/edit-modes/extrude-mode.d.ts.map +1 -1
- package/dist/edit-modes/extrude-mode.js.map +1 -1
- package/dist/edit-modes/geojson-edit-mode.d.ts +9 -9
- package/dist/edit-modes/geojson-edit-mode.d.ts.map +1 -1
- package/dist/edit-modes/geojson-edit-mode.js +4 -7
- package/dist/edit-modes/geojson-edit-mode.js.map +1 -1
- package/dist/edit-modes/immutable-feature-collection.d.ts +7 -7
- package/dist/edit-modes/immutable-feature-collection.d.ts.map +1 -1
- package/dist/edit-modes/immutable-feature-collection.js.map +1 -1
- package/dist/edit-modes/measure-area-mode.d.ts +3 -3
- package/dist/edit-modes/measure-area-mode.d.ts.map +1 -1
- package/dist/edit-modes/measure-area-mode.js.map +1 -1
- package/dist/edit-modes/modify-mode.d.ts +8 -8
- package/dist/edit-modes/modify-mode.d.ts.map +1 -1
- package/dist/edit-modes/modify-mode.js +2 -4
- package/dist/edit-modes/modify-mode.js.map +1 -1
- package/dist/edit-modes/resize-circle-mode.d.ts +3 -3
- package/dist/edit-modes/resize-circle-mode.d.ts.map +1 -1
- package/dist/edit-modes/resize-circle-mode.js +1 -5
- package/dist/edit-modes/resize-circle-mode.js.map +1 -1
- package/dist/edit-modes/rotate-mode.d.ts +7 -7
- package/dist/edit-modes/rotate-mode.d.ts.map +1 -1
- package/dist/edit-modes/rotate-mode.js +2 -9
- package/dist/edit-modes/rotate-mode.js.map +1 -1
- package/dist/edit-modes/scale-mode.d.ts +11 -11
- package/dist/edit-modes/scale-mode.d.ts.map +1 -1
- package/dist/edit-modes/scale-mode.js +1 -6
- package/dist/edit-modes/scale-mode.js.map +1 -1
- package/dist/edit-modes/snappable-mode.d.ts +5 -5
- package/dist/edit-modes/snappable-mode.d.ts.map +1 -1
- package/dist/edit-modes/snappable-mode.js.map +1 -1
- package/dist/edit-modes/split-polygon-mode.d.ts +5 -5
- package/dist/edit-modes/split-polygon-mode.d.ts.map +1 -1
- package/dist/edit-modes/split-polygon-mode.js +2 -5
- package/dist/edit-modes/split-polygon-mode.js.map +1 -1
- package/dist/edit-modes/three-click-polygon-mode.d.ts +3 -3
- package/dist/edit-modes/three-click-polygon-mode.d.ts.map +1 -1
- package/dist/edit-modes/three-click-polygon-mode.js.map +1 -1
- package/dist/edit-modes/translate-mode.d.ts +6 -6
- package/dist/edit-modes/translate-mode.d.ts.map +1 -1
- package/dist/edit-modes/translate-mode.js +1 -2
- package/dist/edit-modes/translate-mode.js.map +1 -1
- package/dist/edit-modes/two-click-polygon-mode.d.ts +6 -6
- package/dist/edit-modes/two-click-polygon-mode.d.ts.map +1 -1
- package/dist/edit-modes/two-click-polygon-mode.js.map +1 -1
- package/dist/edit-modes/types.d.ts +3 -3
- package/dist/edit-modes/types.d.ts.map +1 -1
- package/dist/edit-modes/utils.d.ts +7 -7
- package/dist/edit-modes/utils.d.ts.map +1 -1
- package/dist/edit-modes/utils.js +0 -3
- package/dist/edit-modes/utils.js.map +1 -1
- package/dist/editable-layers/editable-geojson-layer.d.ts +5 -13
- package/dist/editable-layers/editable-geojson-layer.d.ts.map +1 -1
- package/dist/editable-layers/editable-geojson-layer.js +4 -4
- package/dist/editable-layers/editable-geojson-layer.js.map +1 -1
- package/dist/editable-layers/selection-layer.d.ts +1 -2
- package/dist/editable-layers/selection-layer.d.ts.map +1 -1
- package/dist/editable-layers/selection-layer.js +2 -2
- package/dist/editable-layers/selection-layer.js.map +1 -1
- package/dist/index.cjs +192 -942
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +3 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -10
- package/dist/index.js.map +1 -1
- package/dist/mode-handlers/composite-mode-handler.d.ts +3 -3
- package/dist/mode-handlers/composite-mode-handler.d.ts.map +1 -1
- package/dist/mode-handlers/composite-mode-handler.js.map +1 -1
- package/dist/mode-handlers/draw-90degree-polygon-handler.d.ts.map +1 -1
- package/dist/mode-handlers/draw-90degree-polygon-handler.js +4 -2
- package/dist/mode-handlers/draw-90degree-polygon-handler.js.map +1 -1
- package/dist/mode-handlers/draw-circle-by-bounding-box-handler.d.ts.map +1 -1
- package/dist/mode-handlers/draw-circle-by-bounding-box-handler.js +0 -1
- package/dist/mode-handlers/draw-circle-by-bounding-box-handler.js.map +1 -1
- package/dist/mode-handlers/draw-circle-from-center-handler.d.ts.map +1 -1
- package/dist/mode-handlers/draw-circle-from-center-handler.js +0 -1
- package/dist/mode-handlers/draw-circle-from-center-handler.js.map +1 -1
- package/dist/mode-handlers/draw-ellipse-by-bounding-box-handler.d.ts.map +1 -1
- package/dist/mode-handlers/draw-ellipse-by-bounding-box-handler.js +1 -2
- package/dist/mode-handlers/draw-ellipse-by-bounding-box-handler.js.map +1 -1
- package/dist/mode-handlers/draw-ellipse-using-three-points-handler.d.ts.map +1 -1
- package/dist/mode-handlers/draw-ellipse-using-three-points-handler.js +2 -2
- package/dist/mode-handlers/draw-ellipse-using-three-points-handler.js.map +1 -1
- package/dist/mode-handlers/draw-point-handler.js.map +1 -1
- package/dist/mode-handlers/draw-polygon-handler.d.ts.map +1 -1
- package/dist/mode-handlers/draw-polygon-handler.js +4 -2
- package/dist/mode-handlers/draw-polygon-handler.js.map +1 -1
- package/dist/mode-handlers/draw-rectangle-handler.d.ts.map +1 -1
- package/dist/mode-handlers/draw-rectangle-handler.js +0 -1
- package/dist/mode-handlers/draw-rectangle-handler.js.map +1 -1
- package/dist/mode-handlers/draw-rectangle-using-three-points-handler.d.ts.map +1 -1
- package/dist/mode-handlers/draw-rectangle-using-three-points-handler.js +4 -2
- package/dist/mode-handlers/draw-rectangle-using-three-points-handler.js.map +1 -1
- package/dist/mode-handlers/mode-handler.d.ts +12 -12
- package/dist/mode-handlers/mode-handler.d.ts.map +1 -1
- package/dist/mode-handlers/mode-handler.js +6 -7
- package/dist/mode-handlers/mode-handler.js.map +1 -1
- package/dist/mode-handlers/modify-handler.d.ts +2 -2
- package/dist/mode-handlers/modify-handler.d.ts.map +1 -1
- package/dist/mode-handlers/modify-handler.js +1 -4
- package/dist/mode-handlers/modify-handler.js.map +1 -1
- package/dist/mode-handlers/rotate-handler.d.ts +2 -2
- package/dist/mode-handlers/rotate-handler.d.ts.map +1 -1
- package/dist/mode-handlers/rotate-handler.js +2 -7
- package/dist/mode-handlers/rotate-handler.js.map +1 -1
- package/dist/mode-handlers/scale-handler.d.ts +2 -2
- package/dist/mode-handlers/scale-handler.d.ts.map +1 -1
- package/dist/mode-handlers/scale-handler.js +2 -7
- package/dist/mode-handlers/scale-handler.js.map +1 -1
- package/dist/mode-handlers/snappable-handler.d.ts +3 -3
- package/dist/mode-handlers/snappable-handler.d.ts.map +1 -1
- package/dist/mode-handlers/snappable-handler.js.map +1 -1
- package/dist/mode-handlers/split-polygon-handler.d.ts.map +1 -1
- package/dist/mode-handlers/split-polygon-handler.js +4 -5
- package/dist/mode-handlers/split-polygon-handler.js.map +1 -1
- package/dist/mode-handlers/translate-handler.d.ts +2 -2
- package/dist/mode-handlers/translate-handler.d.ts.map +1 -1
- package/dist/mode-handlers/translate-handler.js +1 -4
- package/dist/mode-handlers/translate-handler.js.map +1 -1
- package/dist/utils/geojson-types.d.ts +13 -34
- package/dist/utils/geojson-types.d.ts.map +1 -1
- package/dist/utils/translate-from-center.d.ts +2 -4
- package/dist/utils/translate-from-center.d.ts.map +1 -1
- package/dist/utils/translate-from-center.js.map +1 -1
- package/dist/utils/utils.d.ts +3 -3
- package/dist/utils/utils.d.ts.map +1 -1
- package/dist/utils/utils.js.map +1 -1
- package/package.json +33 -34
- package/src/edit-modes/draw-90degree-polygon-mode.ts +2 -2
- package/src/edit-modes/draw-circle-by-diameter-mode.ts +3 -3
- package/src/edit-modes/draw-circle-from-center-mode.ts +3 -3
- package/src/edit-modes/draw-ellipse-by-bounding-box-mode.ts +4 -4
- package/src/edit-modes/draw-ellipse-using-three-points-mode.ts +3 -4
- package/src/edit-modes/draw-line-string-mode.ts +5 -5
- package/src/edit-modes/draw-point-mode.ts +2 -2
- package/src/edit-modes/draw-polygon-by-dragging-mode.ts +8 -8
- package/src/edit-modes/draw-polygon-mode.ts +8 -8
- package/src/edit-modes/draw-rectangle-from-center-mode.ts +2 -3
- package/src/edit-modes/draw-rectangle-mode.ts +2 -3
- package/src/edit-modes/draw-rectangle-using-three-points-mode.ts +2 -2
- package/src/edit-modes/draw-square-from-center-mode.ts +2 -3
- package/src/edit-modes/draw-square-mode.ts +3 -3
- package/src/edit-modes/duplicate-mode.ts +2 -2
- package/src/edit-modes/extend-line-string-mode.ts +4 -4
- package/src/edit-modes/extrude-mode.ts +7 -7
- package/src/edit-modes/geojson-edit-mode.ts +16 -19
- package/src/edit-modes/immutable-feature-collection.ts +10 -11
- package/src/edit-modes/measure-area-mode.ts +3 -3
- package/src/edit-modes/modify-mode.ts +13 -13
- package/src/edit-modes/resize-circle-mode.ts +6 -8
- package/src/edit-modes/rotate-mode.ts +9 -15
- package/src/edit-modes/scale-mode.ts +11 -15
- package/src/edit-modes/snappable-mode.ts +5 -5
- package/src/edit-modes/split-polygon-mode.ts +12 -16
- package/src/edit-modes/three-click-polygon-mode.ts +3 -3
- package/src/edit-modes/translate-mode.ts +10 -12
- package/src/edit-modes/two-click-polygon-mode.ts +7 -7
- package/src/edit-modes/types.ts +4 -4
- package/src/edit-modes/utils.ts +12 -16
- package/src/editable-layers/editable-geojson-layer.ts +19 -18
- package/src/editable-layers/selection-layer.ts +3 -3
- package/src/index.ts +8 -28
- package/src/mode-handlers/composite-mode-handler.ts +3 -3
- package/src/mode-handlers/draw-90degree-polygon-handler.ts +4 -2
- package/src/mode-handlers/draw-circle-by-bounding-box-handler.ts +0 -1
- package/src/mode-handlers/draw-circle-from-center-handler.ts +0 -1
- package/src/mode-handlers/draw-ellipse-by-bounding-box-handler.ts +1 -2
- package/src/mode-handlers/draw-ellipse-using-three-points-handler.ts +3 -2
- package/src/mode-handlers/draw-point-handler.ts +2 -2
- package/src/mode-handlers/draw-polygon-handler.ts +4 -2
- package/src/mode-handlers/draw-rectangle-handler.ts +0 -1
- package/src/mode-handlers/draw-rectangle-using-three-points-handler.ts +4 -2
- package/src/mode-handlers/mode-handler.ts +20 -21
- package/src/mode-handlers/modify-handler.ts +2 -4
- package/src/mode-handlers/rotate-handler.ts +4 -8
- package/src/mode-handlers/scale-handler.ts +4 -8
- package/src/mode-handlers/snappable-handler.ts +3 -3
- package/src/mode-handlers/split-polygon-handler.ts +6 -7
- package/src/mode-handlers/translate-handler.ts +3 -5
- package/src/utils/geojson-types.ts +15 -54
- package/src/utils/translate-from-center.ts +6 -11
- package/src/utils/utils.ts +4 -4
- package/dist/lib/constants.d.ts +0 -7
- package/dist/lib/constants.d.ts.map +0 -1
- package/dist/lib/constants.js +0 -10
- package/dist/lib/constants.js.map +0 -1
- package/dist/lib/deck-renderer/deck-cache.d.ts +0 -15
- package/dist/lib/deck-renderer/deck-cache.d.ts.map +0 -1
- package/dist/lib/deck-renderer/deck-cache.js +0 -52
- package/dist/lib/deck-renderer/deck-cache.js.map +0 -1
- package/dist/lib/deck-renderer/deck-drawer.d.ts +0 -63
- package/dist/lib/deck-renderer/deck-drawer.d.ts.map +0 -1
- package/dist/lib/deck-renderer/deck-drawer.js +0 -233
- package/dist/lib/deck-renderer/deck-drawer.js.map +0 -1
- package/dist/lib/feature.d.ts +0 -11
- package/dist/lib/feature.d.ts.map +0 -1
- package/dist/lib/feature.js +0 -20
- package/dist/lib/feature.js.map +0 -1
- package/dist/lib/layer-mouse-event.d.ts +0 -12
- package/dist/lib/layer-mouse-event.d.ts.map +0 -1
- package/dist/lib/layer-mouse-event.js +0 -28
- package/dist/lib/layer-mouse-event.js.map +0 -1
- package/dist/lib/layers/junctions-layer.d.ts +0 -9
- package/dist/lib/layers/junctions-layer.d.ts.map +0 -1
- package/dist/lib/layers/junctions-layer.js +0 -37
- package/dist/lib/layers/junctions-layer.js.map +0 -1
- package/dist/lib/layers/segments-layer.d.ts +0 -19
- package/dist/lib/layers/segments-layer.d.ts.map +0 -1
- package/dist/lib/layers/segments-layer.js +0 -98
- package/dist/lib/layers/segments-layer.js.map +0 -1
- package/dist/lib/layers/texts-layer.d.ts +0 -9
- package/dist/lib/layers/texts-layer.d.ts.map +0 -1
- package/dist/lib/layers/texts-layer.js +0 -36
- package/dist/lib/layers/texts-layer.js.map +0 -1
- package/dist/lib/math.d.ts +0 -12
- package/dist/lib/math.d.ts.map +0 -1
- package/dist/lib/math.js +0 -26
- package/dist/lib/math.js.map +0 -1
- package/dist/lib/nebula-core.d.ts +0 -35
- package/dist/lib/nebula-core.d.ts.map +0 -1
- package/dist/lib/nebula-core.js +0 -258
- package/dist/lib/nebula-core.js.map +0 -1
- package/dist/lib/nebula-layer.d.ts +0 -14
- package/dist/lib/nebula-layer.d.ts.map +0 -1
- package/dist/lib/nebula-layer.js +0 -30
- package/dist/lib/nebula-layer.js.map +0 -1
- package/dist/lib/style.d.ts +0 -20
- package/dist/lib/style.d.ts.map +0 -1
- package/dist/lib/style.js +0 -24
- package/dist/lib/style.js.map +0 -1
- package/dist/utils/curve-utils.d.ts +0 -3
- package/dist/utils/curve-utils.d.ts.map +0 -1
- package/dist/utils/curve-utils.js +0 -65
- package/dist/utils/curve-utils.js.map +0 -1
- package/src/lib/constants.ts +0 -10
- package/src/lib/deck-renderer/deck-cache.ts +0 -61
- package/src/lib/deck-renderer/deck-drawer.ts +0 -263
- package/src/lib/feature.ts +0 -31
- package/src/lib/layer-mouse-event.ts +0 -33
- package/src/lib/layers/junctions-layer.ts +0 -44
- package/src/lib/layers/segments-layer.ts +0 -112
- package/src/lib/layers/texts-layer.ts +0 -47
- package/src/lib/math.ts +0 -30
- package/src/lib/nebula-core.ts +0 -327
- package/src/lib/nebula-layer.ts +0 -37
- package/src/lib/style.ts +0 -26
- package/src/utils/curve-utils.ts +0 -81
package/dist/index.cjs
CHANGED
|
@@ -34,9 +34,8 @@ var __publicField = (obj, key, value) => {
|
|
|
34
34
|
// dist/index.js
|
|
35
35
|
var dist_exports = {};
|
|
36
36
|
__export(dist_exports, {
|
|
37
|
-
ArrowStyles: () => ArrowStyles,
|
|
38
37
|
CompositeMode: () => CompositeMode,
|
|
39
|
-
|
|
38
|
+
DeleteMode: () => DeleteMode,
|
|
40
39
|
Draw90DegreePolygonMode: () => Draw90DegreePolygonMode,
|
|
41
40
|
DrawCircleByDiameterMode: () => DrawCircleByDiameterMode,
|
|
42
41
|
DrawCircleFromCenterMode: () => DrawCircleFromCenterMode,
|
|
@@ -59,29 +58,19 @@ __export(dist_exports, {
|
|
|
59
58
|
ElevationMode: () => ElevationMode,
|
|
60
59
|
ExtendLineStringMode: () => ExtendLineStringMode,
|
|
61
60
|
ExtrudeMode: () => ExtrudeMode,
|
|
62
|
-
Feature: () => Feature,
|
|
63
61
|
GeoJsonEditMode: () => GeoJsonEditMode,
|
|
64
62
|
ImmutableFeatureCollection: () => ImmutableFeatureCollection,
|
|
65
63
|
JunctionScatterplotLayer: () => JunctionScatterplotLayer,
|
|
66
|
-
JunctionsLayer: () => JunctionsLayer,
|
|
67
|
-
LayerMouseEvent: () => LayerMouseEvent,
|
|
68
|
-
MAX_ARROWS: () => MAX_ARROWS,
|
|
69
64
|
MeasureAngleMode: () => MeasureAngleMode,
|
|
70
65
|
MeasureAreaMode: () => MeasureAreaMode,
|
|
71
66
|
MeasureDistanceMode: () => MeasureDistanceMode,
|
|
72
67
|
ModifyMode: () => ModifyMode,
|
|
73
|
-
NebulaCore: () => NebulaCore,
|
|
74
|
-
NebulaLayer: () => NebulaLayer,
|
|
75
|
-
PROJECTED_PIXEL_SIZE_MULTIPLIER: () => PROJECTED_PIXEL_SIZE_MULTIPLIER,
|
|
76
68
|
ResizeCircleMode: () => ResizeCircleMode,
|
|
77
69
|
RotateMode: () => RotateMode,
|
|
78
|
-
SELECTION_TYPE: () => SELECTION_TYPE,
|
|
79
70
|
ScaleMode: () => ScaleMode,
|
|
80
|
-
SegmentsLayer: () => SegmentsLayer,
|
|
81
71
|
SelectionLayer: () => SelectionLayer,
|
|
82
72
|
SnappableMode: () => SnappableMode,
|
|
83
73
|
SplitPolygonMode: () => SplitPolygonMode,
|
|
84
|
-
TextsLayer: () => TextsLayer,
|
|
85
74
|
TransformMode: () => TransformMode,
|
|
86
75
|
TranslateMode: () => TranslateMode,
|
|
87
76
|
ViewMode: () => ViewMode,
|
|
@@ -93,302 +82,6 @@ __export(dist_exports, {
|
|
|
93
82
|
});
|
|
94
83
|
module.exports = __toCommonJS(dist_exports);
|
|
95
84
|
|
|
96
|
-
// dist/lib/style.js
|
|
97
|
-
var ArrowStyles = {
|
|
98
|
-
NONE: 0,
|
|
99
|
-
FORWARD: 1,
|
|
100
|
-
BACKWARD: 2,
|
|
101
|
-
BOTH: 3
|
|
102
|
-
};
|
|
103
|
-
var DEFAULT_ARROWS = 1;
|
|
104
|
-
var MAX_ARROWS = 3;
|
|
105
|
-
var DEFAULT_STYLE = {
|
|
106
|
-
arrowColor: [0, 0, 0, 1],
|
|
107
|
-
arrowCount: DEFAULT_ARROWS,
|
|
108
|
-
arrowStyle: ArrowStyles.NONE,
|
|
109
|
-
fillColor: [0, 0, 0, 1],
|
|
110
|
-
lineColor: [0, 0, 0, 1],
|
|
111
|
-
lineWidthMeters: 5,
|
|
112
|
-
outlineRadiusMeters: 0,
|
|
113
|
-
opacity: 1,
|
|
114
|
-
zLevel: 0
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
// dist/lib/deck-renderer/deck-drawer.js
|
|
118
|
-
var import_layers = require("@deck.gl/layers");
|
|
119
|
-
var import_helpers = require("@turf/helpers");
|
|
120
|
-
var import_bbox = __toESM(require("@turf/bbox"), 1);
|
|
121
|
-
var import_bbox_polygon = __toESM(require("@turf/bbox-polygon"), 1);
|
|
122
|
-
var import_buffer = __toESM(require("@turf/buffer"), 1);
|
|
123
|
-
var import_difference = __toESM(require("@turf/difference"), 1);
|
|
124
|
-
var import_distance = __toESM(require("@turf/distance"), 1);
|
|
125
|
-
var POLYGON_LINE_COLOR = [0, 255, 0, 255];
|
|
126
|
-
var POLYGON_FILL_COLOR = [255, 255, 255, 90];
|
|
127
|
-
var POLYGON_LINE_WIDTH = 2;
|
|
128
|
-
var POLYGON_THRESHOLD = 0.01;
|
|
129
|
-
var EXPANSION_KM = 10;
|
|
130
|
-
var LAYER_ID_VIEW = "DeckDrawerView";
|
|
131
|
-
var LAYER_ID_PICK = "DeckDrawerPick";
|
|
132
|
-
var SELECTION_TYPE = {
|
|
133
|
-
NONE: null,
|
|
134
|
-
RECTANGLE: "rectangle",
|
|
135
|
-
POLYGON: "polygon"
|
|
136
|
-
};
|
|
137
|
-
var DeckDrawer = class {
|
|
138
|
-
nebula;
|
|
139
|
-
usePolygon;
|
|
140
|
-
validPolygon;
|
|
141
|
-
landPoints;
|
|
142
|
-
mousePoints;
|
|
143
|
-
constructor(nebula) {
|
|
144
|
-
this.nebula = nebula;
|
|
145
|
-
this.usePolygon = false;
|
|
146
|
-
this.validPolygon = true;
|
|
147
|
-
this.landPoints = [];
|
|
148
|
-
this.mousePoints = [];
|
|
149
|
-
}
|
|
150
|
-
_getLayerIds() {
|
|
151
|
-
return this.nebula.deckgl.props.layers.filter((l) => l && l.props && l.props.nebulaLayer && l.props.nebulaLayer.enableSelection).map((l) => l.id);
|
|
152
|
-
}
|
|
153
|
-
_selectFromPickingInfos(pickingInfos) {
|
|
154
|
-
const objects = pickingInfos.map(({ layer, index, object }) => object.original || layer.props.nebulaLayer.deckCache.originals[index]);
|
|
155
|
-
this.nebula.props.onSelection(objects);
|
|
156
|
-
}
|
|
157
|
-
_getBoundingBox() {
|
|
158
|
-
const { mousePoints } = this;
|
|
159
|
-
const allX = mousePoints.map((mousePoint) => mousePoint[0]);
|
|
160
|
-
const allY = mousePoints.map((mousePoint) => mousePoint[1]);
|
|
161
|
-
const x = Math.min(...allX);
|
|
162
|
-
const y = Math.min(...allY);
|
|
163
|
-
const maxX = Math.max(...allX);
|
|
164
|
-
const maxY = Math.max(...allY);
|
|
165
|
-
return { x, y, width: maxX - x, height: maxY - y };
|
|
166
|
-
}
|
|
167
|
-
_selectRectangleObjects() {
|
|
168
|
-
if (this.landPoints.length !== 2)
|
|
169
|
-
return;
|
|
170
|
-
const [x1, y1] = this.mousePoints[0];
|
|
171
|
-
const [x2, y2] = this.mousePoints[1];
|
|
172
|
-
const pickingInfos = this.nebula.deckgl.pickObjects({
|
|
173
|
-
x: Math.min(x1, x2),
|
|
174
|
-
y: Math.min(y1, y2),
|
|
175
|
-
width: Math.abs(x2 - x1),
|
|
176
|
-
height: Math.abs(y2 - y1),
|
|
177
|
-
layerIds: this._getLayerIds()
|
|
178
|
-
});
|
|
179
|
-
this._selectFromPickingInfos(pickingInfos);
|
|
180
|
-
}
|
|
181
|
-
_selectPolygonObjects() {
|
|
182
|
-
const pickingInfos = this.nebula.deckgl.pickObjects({
|
|
183
|
-
...this._getBoundingBox(),
|
|
184
|
-
layerIds: [LAYER_ID_PICK, ...this._getLayerIds()]
|
|
185
|
-
});
|
|
186
|
-
this._selectFromPickingInfos(pickingInfos.filter((item) => item.layer.id !== LAYER_ID_PICK));
|
|
187
|
-
}
|
|
188
|
-
_getMousePosFromEvent(event) {
|
|
189
|
-
const { offsetX, offsetY } = event;
|
|
190
|
-
return [offsetX, offsetY];
|
|
191
|
-
}
|
|
192
|
-
// eslint-disable-next-line max-statements, complexity
|
|
193
|
-
handleEvent(event, lngLat, selectionType) {
|
|
194
|
-
if (event.type !== "mouseup")
|
|
195
|
-
event.stopPropagation();
|
|
196
|
-
this.usePolygon = selectionType === SELECTION_TYPE.POLYGON;
|
|
197
|
-
let redraw = false;
|
|
198
|
-
let deactivate = false;
|
|
199
|
-
const { usePolygon, landPoints, mousePoints } = this;
|
|
200
|
-
if (event.type === "mousedown") {
|
|
201
|
-
if (usePolygon && landPoints.length) {
|
|
202
|
-
if (this.landPoints.length < 3 || this.validPolygon) {
|
|
203
|
-
landPoints.push(lngLat);
|
|
204
|
-
mousePoints.push(this._getMousePosFromEvent(event));
|
|
205
|
-
}
|
|
206
|
-
} else {
|
|
207
|
-
this.landPoints = [lngLat, lngLat];
|
|
208
|
-
const m = this._getMousePosFromEvent(event);
|
|
209
|
-
this.mousePoints = [m, m];
|
|
210
|
-
}
|
|
211
|
-
redraw = true;
|
|
212
|
-
} else if (event.type === "mousemove" && landPoints.length) {
|
|
213
|
-
landPoints[landPoints.length - 1] = lngLat;
|
|
214
|
-
mousePoints[mousePoints.length - 1] = this._getMousePosFromEvent(event);
|
|
215
|
-
redraw = true;
|
|
216
|
-
} else if (event.type === "mouseup") {
|
|
217
|
-
if (usePolygon) {
|
|
218
|
-
if (landPoints.length > 4 && (0, import_distance.default)(landPoints[0], landPoints[landPoints.length - 1]) < POLYGON_THRESHOLD && this.validPolygon) {
|
|
219
|
-
this._selectPolygonObjects();
|
|
220
|
-
this.reset();
|
|
221
|
-
redraw = true;
|
|
222
|
-
deactivate = true;
|
|
223
|
-
}
|
|
224
|
-
} else {
|
|
225
|
-
this._selectRectangleObjects();
|
|
226
|
-
this.reset();
|
|
227
|
-
redraw = true;
|
|
228
|
-
deactivate = true;
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
return { redraw, deactivate };
|
|
232
|
-
}
|
|
233
|
-
reset() {
|
|
234
|
-
this.landPoints = [];
|
|
235
|
-
this.mousePoints = [];
|
|
236
|
-
}
|
|
237
|
-
_makeStartPointHighlight(center) {
|
|
238
|
-
const buffer = (0, import_buffer.default)((0, import_helpers.point)(center), POLYGON_THRESHOLD / 4);
|
|
239
|
-
return (0, import_bbox_polygon.default)((0, import_bbox.default)(buffer)).geometry.coordinates;
|
|
240
|
-
}
|
|
241
|
-
render() {
|
|
242
|
-
const data = [];
|
|
243
|
-
const dataPick = [];
|
|
244
|
-
if (!this.usePolygon && this.landPoints.length === 2) {
|
|
245
|
-
const [[x1, y1], [x2, y2]] = this.mousePoints;
|
|
246
|
-
const selPolygon = [
|
|
247
|
-
[x1, y1],
|
|
248
|
-
[x1, y2],
|
|
249
|
-
[x2, y2],
|
|
250
|
-
[x2, y1],
|
|
251
|
-
[x1, y1]
|
|
252
|
-
].map((mousePos) => this.nebula.unprojectMousePosition(mousePos));
|
|
253
|
-
data.push({
|
|
254
|
-
polygon: selPolygon,
|
|
255
|
-
lineColor: POLYGON_LINE_COLOR,
|
|
256
|
-
fillColor: POLYGON_FILL_COLOR
|
|
257
|
-
});
|
|
258
|
-
} else if (this.usePolygon && this.landPoints.length) {
|
|
259
|
-
data.push({
|
|
260
|
-
polygon: this.landPoints,
|
|
261
|
-
lineColor: POLYGON_LINE_COLOR,
|
|
262
|
-
fillColor: POLYGON_FILL_COLOR
|
|
263
|
-
});
|
|
264
|
-
if (this.landPoints.length >= 3) {
|
|
265
|
-
const landPointsPoly = (0, import_helpers.polygon)([[...this.landPoints, this.landPoints[0]]]);
|
|
266
|
-
const bigBuffer = (0, import_buffer.default)((0, import_helpers.point)(this.landPoints[0]), EXPANSION_KM);
|
|
267
|
-
let bigPolygon;
|
|
268
|
-
try {
|
|
269
|
-
bigPolygon = (0, import_difference.default)(bigBuffer, landPointsPoly);
|
|
270
|
-
dataPick.push({
|
|
271
|
-
polygon: bigPolygon.geometry.coordinates,
|
|
272
|
-
fillColor: [0, 0, 0, 1]
|
|
273
|
-
});
|
|
274
|
-
this.validPolygon = true;
|
|
275
|
-
} catch (e) {
|
|
276
|
-
this.validPolygon = false;
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
if (this.landPoints.length) {
|
|
281
|
-
data.push({
|
|
282
|
-
polygon: this._makeStartPointHighlight(this.landPoints[0]),
|
|
283
|
-
lineColor: [0, 0, 0, 0],
|
|
284
|
-
fillColor: POLYGON_LINE_COLOR
|
|
285
|
-
});
|
|
286
|
-
}
|
|
287
|
-
data.push({ polygon: [[0, 0]] });
|
|
288
|
-
dataPick.push({ polygon: [[0, 0]] });
|
|
289
|
-
return [
|
|
290
|
-
new import_layers.PolygonLayer({
|
|
291
|
-
id: LAYER_ID_VIEW,
|
|
292
|
-
data,
|
|
293
|
-
fp64: false,
|
|
294
|
-
opacity: 1,
|
|
295
|
-
pickable: false,
|
|
296
|
-
lineWidthMinPixels: POLYGON_LINE_WIDTH,
|
|
297
|
-
lineWidthMaxPixels: POLYGON_LINE_WIDTH,
|
|
298
|
-
lineDashJustified: true,
|
|
299
|
-
// TODO(v9) Add extension
|
|
300
|
-
// getLineDashArray: (x) => POLYGON_DASHES,
|
|
301
|
-
getLineColor: (obj) => obj.lineColor || [0, 0, 0, 255],
|
|
302
|
-
getFillColor: (obj) => obj.fillColor || [0, 0, 0, 255],
|
|
303
|
-
getPolygon: (o) => o.polygon
|
|
304
|
-
}),
|
|
305
|
-
new import_layers.PolygonLayer({
|
|
306
|
-
id: LAYER_ID_PICK,
|
|
307
|
-
data: dataPick,
|
|
308
|
-
getLineColor: (obj) => obj.lineColor || [0, 0, 0, 255],
|
|
309
|
-
getFillColor: (obj) => obj.fillColor || [0, 0, 0, 255],
|
|
310
|
-
fp64: false,
|
|
311
|
-
opacity: 1,
|
|
312
|
-
stroked: false,
|
|
313
|
-
pickable: true,
|
|
314
|
-
getPolygon: (o) => o.polygon
|
|
315
|
-
})
|
|
316
|
-
];
|
|
317
|
-
}
|
|
318
|
-
};
|
|
319
|
-
|
|
320
|
-
// dist/lib/feature.js
|
|
321
|
-
var Feature = class {
|
|
322
|
-
// geo json coordinates
|
|
323
|
-
geoJson;
|
|
324
|
-
style;
|
|
325
|
-
original;
|
|
326
|
-
metadata;
|
|
327
|
-
constructor(geoJson, style, original = null, metadata = {}) {
|
|
328
|
-
this.geoJson = geoJson;
|
|
329
|
-
this.style = style;
|
|
330
|
-
this.original = original;
|
|
331
|
-
this.metadata = metadata;
|
|
332
|
-
}
|
|
333
|
-
getCoords() {
|
|
334
|
-
return this.geoJson.geometry.coordinates;
|
|
335
|
-
}
|
|
336
|
-
};
|
|
337
|
-
|
|
338
|
-
// dist/lib/layer-mouse-event.js
|
|
339
|
-
var LayerMouseEvent = class {
|
|
340
|
-
canceled = false;
|
|
341
|
-
// original item that this event is related to
|
|
342
|
-
data;
|
|
343
|
-
// internal nebula info about the object
|
|
344
|
-
metadata;
|
|
345
|
-
// the mouse [lng,lat] raycasted onto the ground
|
|
346
|
-
groundPoint;
|
|
347
|
-
// browser event
|
|
348
|
-
nativeEvent;
|
|
349
|
-
// reference to nebula
|
|
350
|
-
nebula;
|
|
351
|
-
constructor(nativeEvent, { data, groundPoint, nebula, metadata }) {
|
|
352
|
-
this.nativeEvent = nativeEvent;
|
|
353
|
-
this.data = data;
|
|
354
|
-
this.groundPoint = groundPoint;
|
|
355
|
-
this.nebula = nebula;
|
|
356
|
-
this.metadata = metadata;
|
|
357
|
-
}
|
|
358
|
-
stopPropagation() {
|
|
359
|
-
this.nativeEvent.stopPropagation();
|
|
360
|
-
this.canceled = true;
|
|
361
|
-
}
|
|
362
|
-
};
|
|
363
|
-
|
|
364
|
-
// dist/lib/nebula-layer.js
|
|
365
|
-
var import_eventemitter3 = require("eventemitter3");
|
|
366
|
-
var import_uuid = require("uuid");
|
|
367
|
-
var NebulaLayer = class extends import_eventemitter3.EventEmitter {
|
|
368
|
-
getData;
|
|
369
|
-
toNebulaFeature;
|
|
370
|
-
id;
|
|
371
|
-
helperLayers;
|
|
372
|
-
// flags
|
|
373
|
-
usesMapEvents = false;
|
|
374
|
-
enablePicking = false;
|
|
375
|
-
enableSelection = false;
|
|
376
|
-
//
|
|
377
|
-
constructor({ getData, on, toNebulaFeature }) {
|
|
378
|
-
super();
|
|
379
|
-
this.id = (0, import_uuid.v4)();
|
|
380
|
-
this.getData = getData;
|
|
381
|
-
this.toNebulaFeature = toNebulaFeature;
|
|
382
|
-
this.helperLayers = [];
|
|
383
|
-
if (on) {
|
|
384
|
-
Object.keys(on).forEach((key) => this.on(key, on[key]));
|
|
385
|
-
}
|
|
386
|
-
}
|
|
387
|
-
render(config) {
|
|
388
|
-
return null;
|
|
389
|
-
}
|
|
390
|
-
};
|
|
391
|
-
|
|
392
85
|
// dist/utils/utils.js
|
|
393
86
|
var utils_exports = {};
|
|
394
87
|
__export(utils_exports, {
|
|
@@ -403,7 +96,7 @@ __export(utils_exports, {
|
|
|
403
96
|
var import_destination = __toESM(require("@turf/destination"), 1);
|
|
404
97
|
var import_bearing = __toESM(require("@turf/bearing"), 1);
|
|
405
98
|
var import_point_to_line_distance = __toESM(require("@turf/point-to-line-distance"), 1);
|
|
406
|
-
var
|
|
99
|
+
var import_helpers = require("@turf/helpers");
|
|
407
100
|
var import_viewport_mercator_project = require("viewport-mercator-project");
|
|
408
101
|
function toDeckColor(color, defaultColor = [255, 0, 0, 255]) {
|
|
409
102
|
if (!Array.isArray(color)) {
|
|
@@ -428,7 +121,7 @@ function generatePointsParallelToLinePoints(p1, p2, mapCoords2) {
|
|
|
428
121
|
type: "LineString",
|
|
429
122
|
coordinates: [p1, p2]
|
|
430
123
|
};
|
|
431
|
-
const pt = (0,
|
|
124
|
+
const pt = (0, import_helpers.point)(mapCoords2);
|
|
432
125
|
const ddistance = (0, import_point_to_line_distance.default)(pt, lineString3);
|
|
433
126
|
const lineBearing = (0, import_bearing.default)(p1, p2);
|
|
434
127
|
const isPointToLeftOfLine = (mapCoords2[0] - p1[0]) * (p2[1] - p1[1]) - (mapCoords2[1] - p1[1]) * (p2[0] - p1[0]);
|
|
@@ -499,479 +192,13 @@ function insertBefore(base, insertBeforeText, toInsert) {
|
|
|
499
192
|
return base.slice(0, at) + toInsert + base.slice(at);
|
|
500
193
|
}
|
|
501
194
|
|
|
502
|
-
// dist/lib/deck-renderer/deck-cache.js
|
|
503
|
-
var DeckCache = class {
|
|
504
|
-
objects;
|
|
505
|
-
originals;
|
|
506
|
-
updateTrigger;
|
|
507
|
-
_idToPosition;
|
|
508
|
-
_getData;
|
|
509
|
-
_convert;
|
|
510
|
-
constructor(getData, convert) {
|
|
511
|
-
this.objects = [];
|
|
512
|
-
this.originals = [];
|
|
513
|
-
this.updateTrigger = 0;
|
|
514
|
-
this._idToPosition = /* @__PURE__ */ new Map();
|
|
515
|
-
this._getData = getData;
|
|
516
|
-
this._convert = convert;
|
|
517
|
-
}
|
|
518
|
-
updateAllDeckObjects() {
|
|
519
|
-
if (!this._getData || !this._convert)
|
|
520
|
-
return;
|
|
521
|
-
this.originals.length = 0;
|
|
522
|
-
this.objects.length = 0;
|
|
523
|
-
this._idToPosition.clear();
|
|
524
|
-
this._getData().forEach((d) => {
|
|
525
|
-
this._idToPosition.set(d.id, this.objects.length);
|
|
526
|
-
this.originals.push(d);
|
|
527
|
-
this.objects.push(this._convert(d));
|
|
528
|
-
});
|
|
529
|
-
this.triggerUpdate();
|
|
530
|
-
}
|
|
531
|
-
updateDeckObjectsByIds(ids) {
|
|
532
|
-
if (!this._getData || !this._convert)
|
|
533
|
-
return;
|
|
534
|
-
ids.forEach((id) => {
|
|
535
|
-
const p = this._idToPosition.get(id);
|
|
536
|
-
if (p !== void 0) {
|
|
537
|
-
this.objects[p] = this._convert(this.originals[p]);
|
|
538
|
-
}
|
|
539
|
-
});
|
|
540
|
-
this.triggerUpdate();
|
|
541
|
-
}
|
|
542
|
-
triggerUpdate() {
|
|
543
|
-
this.updateTrigger++;
|
|
544
|
-
}
|
|
545
|
-
getDeckObjectById(id) {
|
|
546
|
-
const p = this._idToPosition.get(id);
|
|
547
|
-
return p !== void 0 ? this.objects[p] : null;
|
|
548
|
-
}
|
|
549
|
-
getOriginalById(id) {
|
|
550
|
-
const p = this._idToPosition.get(id);
|
|
551
|
-
return p !== void 0 ? this.originals[p] : null;
|
|
552
|
-
}
|
|
553
|
-
};
|
|
554
|
-
|
|
555
|
-
// dist/editable-layers/junction-scatterplot-layer.js
|
|
556
|
-
var import_core = require("@deck.gl/core");
|
|
557
|
-
var import_layers2 = require("@deck.gl/layers");
|
|
558
|
-
var JunctionScatterplotLayer = class extends import_core.CompositeLayer {
|
|
559
|
-
renderLayers() {
|
|
560
|
-
const { id, getFillColor, getStrokeColor, getInnerRadius, updateTriggers } = this.props;
|
|
561
|
-
return [
|
|
562
|
-
// the full circles
|
|
563
|
-
new import_layers2.ScatterplotLayer({
|
|
564
|
-
...this.props,
|
|
565
|
-
id: `${id}-full`,
|
|
566
|
-
data: this.props.data,
|
|
567
|
-
getLineColor: getStrokeColor,
|
|
568
|
-
updateTriggers: {
|
|
569
|
-
...updateTriggers,
|
|
570
|
-
getStrokeColor: updateTriggers.getStrokeColor
|
|
571
|
-
}
|
|
572
|
-
}),
|
|
573
|
-
// the inner part
|
|
574
|
-
new import_layers2.ScatterplotLayer({
|
|
575
|
-
...this.props,
|
|
576
|
-
id: `${id}-inner`,
|
|
577
|
-
data: this.props.data,
|
|
578
|
-
getFillColor,
|
|
579
|
-
getRadius: getInnerRadius,
|
|
580
|
-
pickable: false,
|
|
581
|
-
updateTriggers: {
|
|
582
|
-
...updateTriggers,
|
|
583
|
-
getFillColor: updateTriggers.getFillColor,
|
|
584
|
-
getRadius: updateTriggers.getInnerRadius
|
|
585
|
-
}
|
|
586
|
-
})
|
|
587
|
-
];
|
|
588
|
-
}
|
|
589
|
-
};
|
|
590
|
-
__publicField(JunctionScatterplotLayer, "layerName", "JunctionScatterplotLayer");
|
|
591
|
-
__publicField(JunctionScatterplotLayer, "defaultProps", {
|
|
592
|
-
...import_layers2.ScatterplotLayer.defaultProps,
|
|
593
|
-
getFillColor: (d) => [0, 0, 0, 255],
|
|
594
|
-
getStrokeColor: (d) => [255, 255, 255, 255],
|
|
595
|
-
getInnerRadius: (d) => 1
|
|
596
|
-
});
|
|
597
|
-
|
|
598
|
-
// dist/lib/layers/junctions-layer.js
|
|
599
|
-
var JunctionsLayer = class extends NebulaLayer {
|
|
600
|
-
deckCache;
|
|
601
|
-
constructor(config) {
|
|
602
|
-
super(config);
|
|
603
|
-
this.deckCache = new DeckCache(config.getData, (data) => config.toNebulaFeature(data));
|
|
604
|
-
this.enablePicking = true;
|
|
605
|
-
}
|
|
606
|
-
render({ nebula }) {
|
|
607
|
-
const defaultColor = [0, 0, 0, 255];
|
|
608
|
-
const { objects, updateTrigger } = this.deckCache;
|
|
609
|
-
return new JunctionScatterplotLayer({
|
|
610
|
-
id: `junctions-${this.id}`,
|
|
611
|
-
data: objects,
|
|
612
|
-
opacity: 1,
|
|
613
|
-
pickable: true,
|
|
614
|
-
getPosition: (nf) => nf.geoJson.geometry.coordinates,
|
|
615
|
-
getFillColor: (nf) => toDeckColor(nf.style.fillColor) || defaultColor,
|
|
616
|
-
getStrokeColor: (nf) => toDeckColor(nf.style.outlineColor) || toDeckColor(nf.style.fillColor) || defaultColor,
|
|
617
|
-
getRadius: (nf) => nf.style.pointRadiusMeters + nf.style.outlineRadiusMeters || 1,
|
|
618
|
-
getInnerRadius: (nf) => nf.style.pointRadiusMeters || 0.5,
|
|
619
|
-
parameters: {
|
|
620
|
-
depthCompare: "always"
|
|
621
|
-
},
|
|
622
|
-
updateTriggers: { all: updateTrigger },
|
|
623
|
-
// @ts-expect-error TODO
|
|
624
|
-
nebulaLayer: this
|
|
625
|
-
});
|
|
626
|
-
}
|
|
627
|
-
};
|
|
628
|
-
|
|
629
|
-
// dist/lib/layers/texts-layer.js
|
|
630
|
-
var import_layers3 = require("@deck.gl/layers");
|
|
631
|
-
|
|
632
|
-
// dist/lib/constants.js
|
|
633
|
-
var PROJECTED_PIXEL_SIZE_MULTIPLIER = 2 / 3;
|
|
634
|
-
|
|
635
|
-
// dist/lib/layers/texts-layer.js
|
|
636
|
-
var TextsLayer = class extends NebulaLayer {
|
|
637
|
-
deckCache;
|
|
638
|
-
constructor(config) {
|
|
639
|
-
super(config);
|
|
640
|
-
this.deckCache = new DeckCache(config.getData, (data) => config.toNebulaFeature(data));
|
|
641
|
-
}
|
|
642
|
-
render({ nebula }) {
|
|
643
|
-
const defaultColor = [0, 0, 0, 255];
|
|
644
|
-
const { objects, updateTrigger } = this.deckCache;
|
|
645
|
-
const { zoom } = nebula.props.viewport;
|
|
646
|
-
return new import_layers3.TextLayer({
|
|
647
|
-
id: `texts-${this.id}`,
|
|
648
|
-
data: objects,
|
|
649
|
-
opacity: 1,
|
|
650
|
-
fp64: false,
|
|
651
|
-
pickable: false,
|
|
652
|
-
getText: (nf) => nf.style.text,
|
|
653
|
-
getPosition: (nf) => nf.geoJson.geometry.coordinates,
|
|
654
|
-
getColor: (nf) => toDeckColor(nf.style.fillColor) || defaultColor,
|
|
655
|
-
// TODO: layer should offer option to scale with zoom
|
|
656
|
-
sizeScale: 1 / Math.pow(2, 20 - zoom),
|
|
657
|
-
getSize: PROJECTED_PIXEL_SIZE_MULTIPLIER,
|
|
658
|
-
updateTriggers: { all: updateTrigger },
|
|
659
|
-
nebulaLayer: this
|
|
660
|
-
});
|
|
661
|
-
}
|
|
662
|
-
};
|
|
663
|
-
|
|
664
|
-
// dist/lib/layers/segments-layer.js
|
|
665
|
-
var import_layers4 = require("@deck.gl-community/layers");
|
|
666
|
-
var NEBULA_TO_DECK_DIRECTIONS = {
|
|
667
|
-
[ArrowStyles.NONE]: { forward: false, backward: false },
|
|
668
|
-
[ArrowStyles.FORWARD]: { forward: true, backward: false },
|
|
669
|
-
[ArrowStyles.BACKWARD]: { forward: false, backward: true },
|
|
670
|
-
[ArrowStyles.BOTH]: { forward: true, backward: true }
|
|
671
|
-
};
|
|
672
|
-
var SegmentsLayer = class extends NebulaLayer {
|
|
673
|
-
deckCache;
|
|
674
|
-
noBlend;
|
|
675
|
-
highlightColor;
|
|
676
|
-
arrowSize;
|
|
677
|
-
jointRounded;
|
|
678
|
-
capRounded;
|
|
679
|
-
dashed;
|
|
680
|
-
markerLayerProps;
|
|
681
|
-
constructor(config) {
|
|
682
|
-
super(config);
|
|
683
|
-
this.deckCache = new DeckCache(config.getData, (data) => config.toNebulaFeature(data));
|
|
684
|
-
this.enableSelection = true;
|
|
685
|
-
this.enablePicking = config.enablePicking ?? true;
|
|
686
|
-
this.noBlend = config.noBlend ?? false;
|
|
687
|
-
this.jointRounded = config.jointRounded ?? true;
|
|
688
|
-
this.capRounded = config.capRounded ?? true;
|
|
689
|
-
this.dashed = config.dashed ?? false;
|
|
690
|
-
this.markerLayerProps = config.markerLayerProps ?? null;
|
|
691
|
-
this.highlightColor = [1, 1, 1, 1];
|
|
692
|
-
this.arrowSize = 1;
|
|
693
|
-
}
|
|
694
|
-
getMouseOverSegment() {
|
|
695
|
-
return null;
|
|
696
|
-
}
|
|
697
|
-
_calcMarkerPercentages(nf) {
|
|
698
|
-
const { arrowPercentages } = nf.style;
|
|
699
|
-
if (arrowPercentages) {
|
|
700
|
-
return arrowPercentages;
|
|
701
|
-
}
|
|
702
|
-
const arrowStyle = nf.style.arrowStyle || DEFAULT_STYLE.arrowStyle;
|
|
703
|
-
if (arrowStyle === ArrowStyles.NONE)
|
|
704
|
-
return [];
|
|
705
|
-
const arrowCount = Math.min(nf.style.arrowCount || DEFAULT_STYLE.arrowCount, MAX_ARROWS);
|
|
706
|
-
return [[0.5], [0.33, 0.66], [0.25, 0.5, 0.75]][arrowCount - 1];
|
|
707
|
-
}
|
|
708
|
-
_getHighlightedObjectIndex({ nebula }) {
|
|
709
|
-
const { deckglMouseOverInfo } = nebula;
|
|
710
|
-
if (deckglMouseOverInfo) {
|
|
711
|
-
const { originalLayer, index } = deckglMouseOverInfo;
|
|
712
|
-
if (originalLayer === this) {
|
|
713
|
-
return index;
|
|
714
|
-
}
|
|
715
|
-
}
|
|
716
|
-
return -1;
|
|
717
|
-
}
|
|
718
|
-
render({ nebula }) {
|
|
719
|
-
const defaultColor = [0, 0, 0, 255];
|
|
720
|
-
const { objects, updateTrigger } = this.deckCache;
|
|
721
|
-
return new import_layers4.PathMarkerLayer({
|
|
722
|
-
id: `segments-${this.id}`,
|
|
723
|
-
data: objects,
|
|
724
|
-
opacity: 1,
|
|
725
|
-
fp64: false,
|
|
726
|
-
jointRounded: this.jointRounded,
|
|
727
|
-
capRounded: this.capRounded,
|
|
728
|
-
pickable: true,
|
|
729
|
-
sizeScale: this.arrowSize || 6,
|
|
730
|
-
parameters: {
|
|
731
|
-
depthCompare: "always",
|
|
732
|
-
blendColorOperation: this.noBlend ? void 0 : "max"
|
|
733
|
-
},
|
|
734
|
-
getPath: (nf) => nf.geoJson.geometry.coordinates,
|
|
735
|
-
getColor: (nf) => toDeckColor(nf.style.lineColor, defaultColor),
|
|
736
|
-
getWidth: (nf) => nf.style.lineWidthMeters || 1,
|
|
737
|
-
getZLevel: (nf) => nf.style.zLevel * 255,
|
|
738
|
-
getDirection: (nf) => NEBULA_TO_DECK_DIRECTIONS[nf.style.arrowStyle],
|
|
739
|
-
getMarkerColor: (nf) => toDeckColor(nf.style.arrowColor, defaultColor),
|
|
740
|
-
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
741
|
-
getMarkerPercentages: this._calcMarkerPercentages,
|
|
742
|
-
updateTriggers: { all: updateTrigger },
|
|
743
|
-
highlightedObjectIndex: this._getHighlightedObjectIndex({ nebula }),
|
|
744
|
-
highlightColor: toDeckColor(this.highlightColor),
|
|
745
|
-
dashJustified: this.dashed,
|
|
746
|
-
getDashArray: this.dashed ? (nf) => nf.style.dashArray : void 0,
|
|
747
|
-
markerLayerProps: this.markerLayerProps || import_layers4.PathMarkerLayer.defaultProps.markerLayerProps,
|
|
748
|
-
nebulaLayer: this
|
|
749
|
-
});
|
|
750
|
-
}
|
|
751
|
-
};
|
|
752
|
-
|
|
753
|
-
// dist/lib/nebula-core.js
|
|
754
|
-
var import_eventemitter32 = require("eventemitter3");
|
|
755
|
-
var import_core2 = require("@deck.gl/core");
|
|
756
|
-
var LOGGER_PREFIX = "Nebula: ";
|
|
757
|
-
var NebulaCore = class {
|
|
758
|
-
init(props) {
|
|
759
|
-
this.props = props;
|
|
760
|
-
this.wmViewport = new import_core2.WebMercatorViewport(this.props.viewport);
|
|
761
|
-
["click", "mousemove", "mouseup", "mousedown"].forEach((name) => document.addEventListener(name, this._onMouseEvent, true));
|
|
762
|
-
}
|
|
763
|
-
detach() {
|
|
764
|
-
["click", "mousemove", "mouseup", "mousedown"].forEach((name) => document.removeEventListener(name, this._onMouseEvent, true));
|
|
765
|
-
}
|
|
766
|
-
updateProps(newProps) {
|
|
767
|
-
this.props = newProps;
|
|
768
|
-
const { viewport } = this.props;
|
|
769
|
-
this.wmViewport = new import_core2.WebMercatorViewport(viewport);
|
|
770
|
-
}
|
|
771
|
-
props = null;
|
|
772
|
-
deckgl = null;
|
|
773
|
-
mainContainer = null;
|
|
774
|
-
deckglMouseOverInfo = null;
|
|
775
|
-
_deckDrawer = null;
|
|
776
|
-
_mouseWasDown = null;
|
|
777
|
-
wmViewport = null;
|
|
778
|
-
queryObjectEvents = new import_eventemitter32.EventEmitter();
|
|
779
|
-
forceUpdate = null;
|
|
780
|
-
inited = null;
|
|
781
|
-
log(message) {
|
|
782
|
-
const { logger } = this.props;
|
|
783
|
-
if (logger && logger.info) {
|
|
784
|
-
logger.info(LOGGER_PREFIX + message);
|
|
785
|
-
}
|
|
786
|
-
}
|
|
787
|
-
updateAllDeckObjects() {
|
|
788
|
-
this.getAllLayers().forEach((layer) => {
|
|
789
|
-
if (layer && layer.deckCache) {
|
|
790
|
-
layer.deckCache.updateAllDeckObjects();
|
|
791
|
-
}
|
|
792
|
-
});
|
|
793
|
-
this.forceUpdate();
|
|
794
|
-
}
|
|
795
|
-
updateDeckObjectsByIds(ids) {
|
|
796
|
-
this.getAllLayers().forEach((layer) => {
|
|
797
|
-
if (layer && layer.deckCache) {
|
|
798
|
-
layer.deckCache.updateDeckObjectsByIds(ids);
|
|
799
|
-
}
|
|
800
|
-
});
|
|
801
|
-
this.forceUpdate();
|
|
802
|
-
}
|
|
803
|
-
rerenderLayers() {
|
|
804
|
-
this.updateAllDeckObjects();
|
|
805
|
-
}
|
|
806
|
-
_isNebulaEvent({ buttons, target, type }) {
|
|
807
|
-
const { viewport } = this.props;
|
|
808
|
-
if (this._mouseWasDown && type === "mouseup") {
|
|
809
|
-
this._mouseWasDown = false;
|
|
810
|
-
return true;
|
|
811
|
-
}
|
|
812
|
-
if (type === "mousemove" && buttons > 0) {
|
|
813
|
-
return true;
|
|
814
|
-
}
|
|
815
|
-
if (!target.getBoundingClientRect) {
|
|
816
|
-
return false;
|
|
817
|
-
}
|
|
818
|
-
const rect = target.getBoundingClientRect();
|
|
819
|
-
return Math.round(rect.width) === Math.round(viewport.width) && Math.round(rect.height) === Math.round(viewport.height);
|
|
820
|
-
}
|
|
821
|
-
_onMouseEvent = (event) => {
|
|
822
|
-
if (!this._isNebulaEvent(event)) {
|
|
823
|
-
return;
|
|
824
|
-
}
|
|
825
|
-
if (event.type === "mousedown") {
|
|
826
|
-
this._mouseWasDown = true;
|
|
827
|
-
}
|
|
828
|
-
const { top = 0, left = 0 } = this.mainContainer ? this.mainContainer.getBoundingClientRect() : {};
|
|
829
|
-
const proxyEvent = new Proxy(event, {
|
|
830
|
-
get: (original, propertyName) => {
|
|
831
|
-
if (propertyName === "offsetX") {
|
|
832
|
-
return original.pageX - left;
|
|
833
|
-
}
|
|
834
|
-
if (propertyName === "offsetY") {
|
|
835
|
-
return original.pageY - top;
|
|
836
|
-
}
|
|
837
|
-
if (propertyName === "type") {
|
|
838
|
-
return original.type.replace("pointer", "mouse");
|
|
839
|
-
}
|
|
840
|
-
const result = original[propertyName];
|
|
841
|
-
if (typeof result === "function") {
|
|
842
|
-
return result.bind(original);
|
|
843
|
-
}
|
|
844
|
-
return result;
|
|
845
|
-
}
|
|
846
|
-
});
|
|
847
|
-
this._handleDeckGLEvent(proxyEvent);
|
|
848
|
-
};
|
|
849
|
-
getMouseGroundPosition(event) {
|
|
850
|
-
return this.wmViewport.unproject([event.offsetX, event.offsetY]);
|
|
851
|
-
}
|
|
852
|
-
unprojectMousePosition(mousePosition) {
|
|
853
|
-
return this.wmViewport.unproject(mousePosition);
|
|
854
|
-
}
|
|
855
|
-
// eslint-disable-next-line max-statements, complexity
|
|
856
|
-
_handleDeckGLEvent(event) {
|
|
857
|
-
const { deckgl, props: { onMapMouseEvent, selectionType, eventFilter } } = this;
|
|
858
|
-
let sendMapEvent = true;
|
|
859
|
-
let cursor = "auto";
|
|
860
|
-
if (event && deckgl && selectionType) {
|
|
861
|
-
if (!this._deckDrawer)
|
|
862
|
-
this._deckDrawer = new DeckDrawer(this);
|
|
863
|
-
const lngLat = this.getMouseGroundPosition(event);
|
|
864
|
-
if (eventFilter && !eventFilter(lngLat, event))
|
|
865
|
-
return;
|
|
866
|
-
const drawerResult = this._deckDrawer.handleEvent(event, lngLat, selectionType);
|
|
867
|
-
if (drawerResult.redraw)
|
|
868
|
-
this.forceUpdate();
|
|
869
|
-
return;
|
|
870
|
-
}
|
|
871
|
-
if (event && deckgl && (!event.buttons || event.type !== "mousemove")) {
|
|
872
|
-
const layerIds = deckgl.props.layers.filter((l) => l && l.props && l.props.nebulaLayer && l.props.nebulaLayer.enablePicking).map((l) => l.id);
|
|
873
|
-
const pickingInfo = deckgl.pickObject({
|
|
874
|
-
x: event.offsetX,
|
|
875
|
-
y: event.offsetY,
|
|
876
|
-
radius: 5,
|
|
877
|
-
layerIds
|
|
878
|
-
});
|
|
879
|
-
this.queryObjectEvents.emit("pick", { event, pickingInfo });
|
|
880
|
-
if (pickingInfo) {
|
|
881
|
-
sendMapEvent = false;
|
|
882
|
-
const { index, lngLat } = pickingInfo;
|
|
883
|
-
if (eventFilter && !eventFilter(lngLat, event))
|
|
884
|
-
return;
|
|
885
|
-
const { layer: deckLayer, object } = pickingInfo;
|
|
886
|
-
if (deckLayer && deckLayer.props && deckLayer.props.nebulaLayer && deckLayer.props.nebulaLayer.eventHandler) {
|
|
887
|
-
deckLayer.props.nebulaLayer.eventHandler(event, pickingInfo);
|
|
888
|
-
}
|
|
889
|
-
const original = object.original || deckLayer.props.nebulaLayer && deckLayer.props.nebulaLayer.deckCache && deckLayer.props.nebulaLayer.deckCache.originals[index];
|
|
890
|
-
if (original) {
|
|
891
|
-
this.deckglMouseOverInfo = { originalLayer: deckLayer.props.nebulaLayer, index };
|
|
892
|
-
const nebulaMouseEvent = new LayerMouseEvent(event, {
|
|
893
|
-
data: original,
|
|
894
|
-
metadata: object.metadata,
|
|
895
|
-
groundPoint: lngLat,
|
|
896
|
-
nebula: this
|
|
897
|
-
});
|
|
898
|
-
deckLayer.props.nebulaLayer.emit(event.type, nebulaMouseEvent);
|
|
899
|
-
this.forceUpdate();
|
|
900
|
-
}
|
|
901
|
-
cursor = "pointer";
|
|
902
|
-
}
|
|
903
|
-
}
|
|
904
|
-
if (document.documentElement) {
|
|
905
|
-
document.documentElement.style.cursor = cursor;
|
|
906
|
-
}
|
|
907
|
-
if (sendMapEvent) {
|
|
908
|
-
this.deckglMouseOverInfo = null;
|
|
909
|
-
const lngLat = this.getMouseGroundPosition(event);
|
|
910
|
-
if (eventFilter && !eventFilter(lngLat, event))
|
|
911
|
-
return;
|
|
912
|
-
const nebulaMouseEvent = new LayerMouseEvent(event, {
|
|
913
|
-
groundPoint: lngLat,
|
|
914
|
-
nebula: this
|
|
915
|
-
});
|
|
916
|
-
this.getAllLayers().filter((layer) => layer && layer.usesMapEvents).forEach((layer) => layer.emit("mapMouseEvent", nebulaMouseEvent));
|
|
917
|
-
this.getAllLayers().filter((layer) => layer && layer.props && layer.props.nebulaLayer && layer.props.nebulaLayer.mapMouseEvent).forEach((layer) => layer.props.nebulaLayer.mapMouseEvent(nebulaMouseEvent, layer));
|
|
918
|
-
if (onMapMouseEvent) {
|
|
919
|
-
onMapMouseEvent(event, lngLat);
|
|
920
|
-
}
|
|
921
|
-
}
|
|
922
|
-
}
|
|
923
|
-
getExtraDeckLayers() {
|
|
924
|
-
const result = [];
|
|
925
|
-
if (this._deckDrawer)
|
|
926
|
-
result.push(...this._deckDrawer.render());
|
|
927
|
-
return result;
|
|
928
|
-
}
|
|
929
|
-
renderDeckLayers() {
|
|
930
|
-
return this.getAllLayers().map((layer) => layer instanceof NebulaLayer ? layer.render({ nebula: this }) : layer).filter(Boolean);
|
|
931
|
-
}
|
|
932
|
-
getAllLayers() {
|
|
933
|
-
const result = [];
|
|
934
|
-
this.props.layers.filter(Boolean).forEach((layer) => {
|
|
935
|
-
result.push(layer);
|
|
936
|
-
if (layer instanceof NebulaLayer) {
|
|
937
|
-
result.push(...layer.helperLayers);
|
|
938
|
-
}
|
|
939
|
-
});
|
|
940
|
-
return result.filter(Boolean);
|
|
941
|
-
}
|
|
942
|
-
getRenderedLayers() {
|
|
943
|
-
return [...this.renderDeckLayers(), ...this.getExtraDeckLayers()];
|
|
944
|
-
}
|
|
945
|
-
updateAndGetRenderedLayers(layers, viewport, container) {
|
|
946
|
-
if (this.inited) {
|
|
947
|
-
this.updateProps({ layers, viewport });
|
|
948
|
-
this.forceUpdate = () => container.forceUpdate();
|
|
949
|
-
} else {
|
|
950
|
-
this.inited = true;
|
|
951
|
-
this.init({ layers, viewport });
|
|
952
|
-
this.forceUpdate = () => container.forceUpdate();
|
|
953
|
-
this.updateAllDeckObjects();
|
|
954
|
-
}
|
|
955
|
-
return this.getRenderedLayers();
|
|
956
|
-
}
|
|
957
|
-
setDeck(deckgl) {
|
|
958
|
-
if (deckgl) {
|
|
959
|
-
this.deckgl = deckgl;
|
|
960
|
-
}
|
|
961
|
-
}
|
|
962
|
-
setMainContainer(mainContainer) {
|
|
963
|
-
if (mainContainer) {
|
|
964
|
-
this.mainContainer = mainContainer;
|
|
965
|
-
}
|
|
966
|
-
}
|
|
967
|
-
};
|
|
968
|
-
|
|
969
195
|
// dist/editable-layers/editable-geojson-layer.js
|
|
970
|
-
var
|
|
196
|
+
var import_layers2 = require("@deck.gl/layers");
|
|
971
197
|
|
|
972
198
|
// dist/edit-modes/geojson-edit-mode.js
|
|
199
|
+
var import_helpers3 = require("@turf/helpers");
|
|
973
200
|
var import_union = __toESM(require("@turf/union"), 1);
|
|
974
|
-
var
|
|
201
|
+
var import_difference = __toESM(require("@turf/difference"), 1);
|
|
975
202
|
var import_intersect = __toESM(require("@turf/intersect"), 1);
|
|
976
203
|
var import_rewind = __toESM(require("@turf/rewind"), 1);
|
|
977
204
|
|
|
@@ -980,7 +207,7 @@ var import_destination2 = __toESM(require("@turf/destination"), 1);
|
|
|
980
207
|
var import_bearing2 = __toESM(require("@turf/bearing"), 1);
|
|
981
208
|
var import_point_to_line_distance2 = __toESM(require("@turf/point-to-line-distance"), 1);
|
|
982
209
|
var import_meta = require("@turf/meta");
|
|
983
|
-
var
|
|
210
|
+
var import_helpers2 = require("@turf/helpers");
|
|
984
211
|
var import_invariant = require("@turf/invariant");
|
|
985
212
|
var import_viewport_mercator_project2 = require("viewport-mercator-project");
|
|
986
213
|
function recursivelyTraverseNestedArrays2(array, prefix, fn) {
|
|
@@ -1000,7 +227,7 @@ function generatePointsParallelToLinePoints2(p1, p2, coords) {
|
|
|
1000
227
|
type: "LineString",
|
|
1001
228
|
coordinates: [p1, p2]
|
|
1002
229
|
};
|
|
1003
|
-
const pt = (0,
|
|
230
|
+
const pt = (0, import_helpers2.point)(coords);
|
|
1004
231
|
const ddistance = (0, import_point_to_line_distance2.default)(pt, lineString3);
|
|
1005
232
|
const lineBearing = (0, import_bearing2.default)(p1, p2);
|
|
1006
233
|
const isPointToLeftOfLine = (coords[0] - p1[0]) * (p2[1] - p1[1]) - (coords[1] - p1[1]) * (p2[0] - p1[0]);
|
|
@@ -1069,7 +296,7 @@ function nearestPointOnLine(lines, inPoint, viewport) {
|
|
|
1069
296
|
if (viewport) {
|
|
1070
297
|
mercator = new import_viewport_mercator_project2.WebMercatorViewport(viewport);
|
|
1071
298
|
}
|
|
1072
|
-
let closestPoint = (0,
|
|
299
|
+
let closestPoint = (0, import_helpers2.point)([Infinity, Infinity], {
|
|
1073
300
|
dist: Infinity
|
|
1074
301
|
});
|
|
1075
302
|
if (!((_a = lines.geometry) == null ? void 0 : _a.coordinates.length) || ((_b = lines.geometry) == null ? void 0 : _b.coordinates.length) < 2) {
|
|
@@ -1143,7 +370,7 @@ function nearestPointOnLine(lines, inPoint, viewport) {
|
|
|
1143
370
|
from
|
|
1144
371
|
};
|
|
1145
372
|
}
|
|
1146
|
-
closestPoint = (0,
|
|
373
|
+
closestPoint = (0, import_helpers2.point)([snapPoint.x, snapPoint.y], {
|
|
1147
374
|
dist: Math.abs(snapPoint.from - snapPoint.to),
|
|
1148
375
|
index: snapPoint.idx
|
|
1149
376
|
});
|
|
@@ -1270,8 +497,8 @@ function shouldCancelPan(event) {
|
|
|
1270
497
|
// dist/edit-modes/immutable-feature-collection.js
|
|
1271
498
|
var ImmutableFeatureCollection = class {
|
|
1272
499
|
featureCollection;
|
|
1273
|
-
constructor(
|
|
1274
|
-
this.featureCollection =
|
|
500
|
+
constructor(featureCollection7) {
|
|
501
|
+
this.featureCollection = featureCollection7;
|
|
1275
502
|
}
|
|
1276
503
|
getObject() {
|
|
1277
504
|
return this.featureCollection;
|
|
@@ -1506,9 +733,9 @@ function pruneGeometryIfNecessary(geometry) {
|
|
|
1506
733
|
}
|
|
1507
734
|
}
|
|
1508
735
|
function prunePolygonIfNecessary(geometry) {
|
|
1509
|
-
const
|
|
1510
|
-
for (let holeIndex = 1; holeIndex <
|
|
1511
|
-
if (removeHoleIfNecessary(
|
|
736
|
+
const polygon2 = geometry.coordinates;
|
|
737
|
+
for (let holeIndex = 1; holeIndex < polygon2.length; holeIndex++) {
|
|
738
|
+
if (removeHoleIfNecessary(polygon2, holeIndex)) {
|
|
1512
739
|
holeIndex--;
|
|
1513
740
|
}
|
|
1514
741
|
}
|
|
@@ -1524,23 +751,23 @@ function pruneMultiLineStringIfNecessary(geometry) {
|
|
|
1524
751
|
}
|
|
1525
752
|
function pruneMultiPolygonIfNecessary(geometry) {
|
|
1526
753
|
for (let polygonIndex = 0; polygonIndex < geometry.coordinates.length; polygonIndex++) {
|
|
1527
|
-
const
|
|
1528
|
-
const outerRing =
|
|
754
|
+
const polygon2 = geometry.coordinates[polygonIndex];
|
|
755
|
+
const outerRing = polygon2[0];
|
|
1529
756
|
if (outerRing.length <= 3) {
|
|
1530
757
|
geometry.coordinates.splice(polygonIndex, 1);
|
|
1531
758
|
polygonIndex--;
|
|
1532
759
|
}
|
|
1533
|
-
for (let holeIndex = 1; holeIndex <
|
|
1534
|
-
if (removeHoleIfNecessary(
|
|
760
|
+
for (let holeIndex = 1; holeIndex < polygon2.length; holeIndex++) {
|
|
761
|
+
if (removeHoleIfNecessary(polygon2, holeIndex)) {
|
|
1535
762
|
holeIndex--;
|
|
1536
763
|
}
|
|
1537
764
|
}
|
|
1538
765
|
}
|
|
1539
766
|
}
|
|
1540
|
-
function removeHoleIfNecessary(
|
|
1541
|
-
const hole =
|
|
767
|
+
function removeHoleIfNecessary(polygon2, holeIndex) {
|
|
768
|
+
const hole = polygon2[holeIndex];
|
|
1542
769
|
if (hole.length <= 3) {
|
|
1543
|
-
|
|
770
|
+
polygon2.splice(holeIndex, 1);
|
|
1544
771
|
return true;
|
|
1545
772
|
}
|
|
1546
773
|
return false;
|
|
@@ -1667,11 +894,11 @@ var GeoJsonEditMode = class {
|
|
|
1667
894
|
};
|
|
1668
895
|
let updatedGeometry;
|
|
1669
896
|
if (modeConfig.booleanOperation === "union") {
|
|
1670
|
-
updatedGeometry = (0, import_union.default)(selectedFeature, feature);
|
|
897
|
+
updatedGeometry = (0, import_union.default)((0, import_helpers3.featureCollection)([selectedFeature, feature]));
|
|
1671
898
|
} else if (modeConfig.booleanOperation === "difference") {
|
|
1672
|
-
updatedGeometry = (0,
|
|
899
|
+
updatedGeometry = (0, import_difference.default)((0, import_helpers3.featureCollection)([selectedFeature, feature]));
|
|
1673
900
|
} else if (modeConfig.booleanOperation === "intersection") {
|
|
1674
|
-
updatedGeometry = (0, import_intersect.default)(selectedFeature, feature);
|
|
901
|
+
updatedGeometry = (0, import_intersect.default)((0, import_helpers3.featureCollection)([selectedFeature, feature]));
|
|
1675
902
|
} else {
|
|
1676
903
|
console.warn(`Invalid booleanOperation ${modeConfig.booleanOperation}`);
|
|
1677
904
|
return null;
|
|
@@ -1744,7 +971,7 @@ var ViewMode = class extends GeoJsonEditMode {
|
|
|
1744
971
|
|
|
1745
972
|
// dist/edit-modes/translate-mode.js
|
|
1746
973
|
var import_bearing3 = __toESM(require("@turf/bearing"), 1);
|
|
1747
|
-
var
|
|
974
|
+
var import_distance = __toESM(require("@turf/distance"), 1);
|
|
1748
975
|
var import_clone = __toESM(require("@turf/clone"), 1);
|
|
1749
976
|
var import_helpers4 = require("@turf/helpers");
|
|
1750
977
|
var import_viewport_mercator_project3 = require("viewport-mercator-project");
|
|
@@ -1847,7 +1074,7 @@ var TranslateMode = class extends GeoJsonEditMode {
|
|
|
1847
1074
|
} else {
|
|
1848
1075
|
const p1 = (0, import_helpers4.point)(startDragPoint);
|
|
1849
1076
|
const p2 = (0, import_helpers4.point)(currentPoint);
|
|
1850
|
-
const distanceMoved = (0,
|
|
1077
|
+
const distanceMoved = (0, import_distance.default)(p1, p2);
|
|
1851
1078
|
const direction = (0, import_bearing3.default)(p1, p2);
|
|
1852
1079
|
const movedFeatures = this._geometryBeforeTranslate.features.map((feature) => translateFromCenter((0, import_clone.default)(feature), distanceMoved, direction));
|
|
1853
1080
|
for (let i = 0; i < selectedIndexes.length; i++) {
|
|
@@ -1894,12 +1121,7 @@ var ModifyMode = class extends GeoJsonEditMode {
|
|
|
1894
1121
|
const referencePoint = (0, import_helpers5.point)(mapCoords2);
|
|
1895
1122
|
recursivelyTraverseNestedArrays2(featureAsPick.object.geometry.coordinates, [], (lineString3, prefix) => {
|
|
1896
1123
|
const lineStringFeature = (0, import_helpers5.lineString)(lineString3);
|
|
1897
|
-
const candidateIntermediatePoint = this.getNearestPoint(
|
|
1898
|
-
// @ts-expect-error turf types too wide
|
|
1899
|
-
lineStringFeature,
|
|
1900
|
-
referencePoint,
|
|
1901
|
-
props.modeConfig && props.modeConfig.viewport
|
|
1902
|
-
);
|
|
1124
|
+
const candidateIntermediatePoint = this.getNearestPoint(lineStringFeature, referencePoint, props.modeConfig && props.modeConfig.viewport);
|
|
1903
1125
|
if (!intermediatePoint || candidateIntermediatePoint.properties.dist < intermediatePoint.properties.dist) {
|
|
1904
1126
|
intermediatePoint = candidateIntermediatePoint;
|
|
1905
1127
|
positionIndexPrefix = prefix;
|
|
@@ -2035,7 +1257,7 @@ var ModifyMode = class extends GeoJsonEditMode {
|
|
|
2035
1257
|
}
|
|
2036
1258
|
handleStopDragging(event, props) {
|
|
2037
1259
|
const selectedFeatureIndexes = props.selectedIndexes;
|
|
2038
|
-
const editHandle = getPickedEditHandle(event.
|
|
1260
|
+
const editHandle = getPickedEditHandle(event.pointerDownPicks);
|
|
2039
1261
|
if (selectedFeatureIndexes.length && editHandle) {
|
|
2040
1262
|
this._dragEditHandle("finishMovePosition", props, editHandle, event);
|
|
2041
1263
|
}
|
|
@@ -2051,14 +1273,14 @@ var ModifyMode = class extends GeoJsonEditMode {
|
|
|
2051
1273
|
};
|
|
2052
1274
|
|
|
2053
1275
|
// dist/edit-modes/scale-mode.js
|
|
2054
|
-
var
|
|
1276
|
+
var import_bbox = __toESM(require("@turf/bbox"), 1);
|
|
2055
1277
|
var import_centroid = __toESM(require("@turf/centroid"), 1);
|
|
2056
1278
|
var import_bearing4 = __toESM(require("@turf/bearing"), 1);
|
|
2057
|
-
var
|
|
1279
|
+
var import_bbox_polygon = __toESM(require("@turf/bbox-polygon"), 1);
|
|
2058
1280
|
var import_helpers6 = require("@turf/helpers");
|
|
2059
1281
|
var import_polygon_to_line = require("@turf/polygon-to-line");
|
|
2060
1282
|
var import_meta2 = require("@turf/meta");
|
|
2061
|
-
var
|
|
1283
|
+
var import_distance2 = __toESM(require("@turf/distance"), 1);
|
|
2062
1284
|
var import_transform_scale = __toESM(require("@turf/transform-scale"), 1);
|
|
2063
1285
|
var import_invariant2 = require("@turf/invariant");
|
|
2064
1286
|
var ScaleMode = class extends GeoJsonEditMode {
|
|
@@ -2107,12 +1329,7 @@ var ScaleMode = class extends GeoJsonEditMode {
|
|
|
2107
1329
|
const oppositeHandle = this._getOppositeScaleHandle(this._selectedEditHandle);
|
|
2108
1330
|
const origin = (0, import_invariant2.getCoord)(oppositeHandle);
|
|
2109
1331
|
const scaleFactor = getScaleFactor(origin, startDragPoint, currentPoint);
|
|
2110
|
-
const scaledFeatures = (0, import_transform_scale.default)(
|
|
2111
|
-
// @ts-expect-error turf types diff
|
|
2112
|
-
this._geometryBeingScaled,
|
|
2113
|
-
scaleFactor,
|
|
2114
|
-
{ origin }
|
|
2115
|
-
);
|
|
1332
|
+
const scaledFeatures = (0, import_transform_scale.default)(this._geometryBeingScaled, scaleFactor, { origin });
|
|
2116
1333
|
return {
|
|
2117
1334
|
updatedData: this._getUpdatedData(props, scaledFeatures),
|
|
2118
1335
|
editType,
|
|
@@ -2186,7 +1403,7 @@ var ScaleMode = class extends GeoJsonEditMode {
|
|
|
2186
1403
|
if (this._isSinglePointGeometrySelected(selectedGeometry)) {
|
|
2187
1404
|
return { type: "FeatureCollection", features: [] };
|
|
2188
1405
|
}
|
|
2189
|
-
const boundingBox = (0,
|
|
1406
|
+
const boundingBox = (0, import_bbox_polygon.default)((0, import_bbox.default)(selectedGeometry));
|
|
2190
1407
|
boundingBox.properties.mode = "scale";
|
|
2191
1408
|
const cornerGuidePoints = [];
|
|
2192
1409
|
(0, import_meta2.coordEach)(boundingBox, (coord, coordIndex) => {
|
|
@@ -2204,17 +1421,17 @@ var ScaleMode = class extends GeoJsonEditMode {
|
|
|
2204
1421
|
}
|
|
2205
1422
|
};
|
|
2206
1423
|
function getScaleFactor(centroid, startDragPoint, currentPoint) {
|
|
2207
|
-
const startDistance = (0,
|
|
2208
|
-
const endDistance = (0,
|
|
1424
|
+
const startDistance = (0, import_distance2.default)(centroid, startDragPoint);
|
|
1425
|
+
const endDistance = (0, import_distance2.default)(centroid, currentPoint);
|
|
2209
1426
|
return endDistance / startDistance;
|
|
2210
1427
|
}
|
|
2211
1428
|
|
|
2212
1429
|
// dist/edit-modes/rotate-mode.js
|
|
2213
|
-
var
|
|
1430
|
+
var import_bbox2 = __toESM(require("@turf/bbox"), 1);
|
|
2214
1431
|
var import_centroid2 = __toESM(require("@turf/centroid"), 1);
|
|
2215
1432
|
var import_bearing5 = __toESM(require("@turf/bearing"), 1);
|
|
2216
|
-
var
|
|
2217
|
-
var
|
|
1433
|
+
var import_bbox_polygon2 = __toESM(require("@turf/bbox-polygon"), 1);
|
|
1434
|
+
var import_distance3 = __toESM(require("@turf/distance"), 1);
|
|
2218
1435
|
var import_meta3 = require("@turf/meta");
|
|
2219
1436
|
var import_invariant3 = require("@turf/invariant");
|
|
2220
1437
|
var import_helpers7 = require("@turf/helpers");
|
|
@@ -2241,7 +1458,7 @@ var RotateMode = class extends GeoJsonEditMode {
|
|
|
2241
1458
|
if (this._isRotating) {
|
|
2242
1459
|
return (0, import_helpers7.featureCollection)([(0, import_centroid2.default)(selectedGeometry)]);
|
|
2243
1460
|
}
|
|
2244
|
-
const boundingBox = (0,
|
|
1461
|
+
const boundingBox = (0, import_bbox_polygon2.default)((0, import_bbox2.default)(selectedGeometry));
|
|
2245
1462
|
let previousCoord = null;
|
|
2246
1463
|
let topEdgeMidpointCoords = null;
|
|
2247
1464
|
let longestEdgeLength = 0;
|
|
@@ -2251,7 +1468,7 @@ var RotateMode = class extends GeoJsonEditMode {
|
|
|
2251
1468
|
if (!topEdgeMidpointCoords || edgeMidpoint[1] > topEdgeMidpointCoords[1]) {
|
|
2252
1469
|
topEdgeMidpointCoords = edgeMidpoint;
|
|
2253
1470
|
}
|
|
2254
|
-
const edgeDistance = (0,
|
|
1471
|
+
const edgeDistance = (0, import_distance3.default)(coord, previousCoord);
|
|
2255
1472
|
longestEdgeLength = Math.max(longestEdgeLength, edgeDistance);
|
|
2256
1473
|
}
|
|
2257
1474
|
previousCoord = coord;
|
|
@@ -2315,15 +1532,10 @@ var RotateMode = class extends GeoJsonEditMode {
|
|
|
2315
1532
|
return null;
|
|
2316
1533
|
}
|
|
2317
1534
|
const centroid = (0, import_centroid2.default)(this._geometryBeingRotated);
|
|
2318
|
-
const angle = getRotationAngle(centroid, startDragPoint, currentPoint);
|
|
2319
|
-
const rotatedFeatures = (0, import_transform_rotate.default)(
|
|
2320
|
-
|
|
2321
|
-
|
|
2322
|
-
angle,
|
|
2323
|
-
{
|
|
2324
|
-
pivot: centroid
|
|
2325
|
-
}
|
|
2326
|
-
);
|
|
1535
|
+
const angle = getRotationAngle(centroid.geometry.coordinates, startDragPoint, currentPoint);
|
|
1536
|
+
const rotatedFeatures = (0, import_transform_rotate.default)(this._geometryBeingRotated, angle, {
|
|
1537
|
+
pivot: centroid
|
|
1538
|
+
});
|
|
2327
1539
|
let updatedData = new ImmutableFeatureCollection(props.data);
|
|
2328
1540
|
const selectedIndexes = props.selectedIndexes;
|
|
2329
1541
|
for (let i = 0; i < selectedIndexes.length; i++) {
|
|
@@ -2365,12 +1577,12 @@ var DuplicateMode = class extends TranslateMode {
|
|
|
2365
1577
|
|
|
2366
1578
|
// dist/edit-modes/split-polygon-mode.js
|
|
2367
1579
|
var import_boolean_point_in_polygon = __toESM(require("@turf/boolean-point-in-polygon"), 1);
|
|
2368
|
-
var
|
|
2369
|
-
var
|
|
1580
|
+
var import_difference2 = __toESM(require("@turf/difference"), 1);
|
|
1581
|
+
var import_buffer = __toESM(require("@turf/buffer"), 1);
|
|
2370
1582
|
var import_line_intersect = __toESM(require("@turf/line-intersect"), 1);
|
|
2371
1583
|
var import_helpers8 = require("@turf/helpers");
|
|
2372
1584
|
var import_bearing6 = __toESM(require("@turf/bearing"), 1);
|
|
2373
|
-
var
|
|
1585
|
+
var import_distance4 = __toESM(require("@turf/distance"), 1);
|
|
2374
1586
|
var import_destination3 = __toESM(require("@turf/destination"), 1);
|
|
2375
1587
|
var import_polygon_to_line3 = __toESM(require("@turf/polygon-to-line"), 1);
|
|
2376
1588
|
var import_nearest_point_on_line = __toESM(require("@turf/nearest-point-on-line"), 1);
|
|
@@ -2389,7 +1601,7 @@ var SplitPolygonMode = class extends GeoJsonEditMode {
|
|
|
2389
1601
|
let closestPoint = null;
|
|
2390
1602
|
lines.forEach((line) => {
|
|
2391
1603
|
const snapPoint = (0, import_nearest_point_on_line.default)(line, firstPoint);
|
|
2392
|
-
const distanceFromOrigin = (0,
|
|
1604
|
+
const distanceFromOrigin = (0, import_distance4.default)(snapPoint, firstPoint);
|
|
2393
1605
|
if (minDistance > distanceFromOrigin) {
|
|
2394
1606
|
minDistance = distanceFromOrigin;
|
|
2395
1607
|
closestPoint = snapPoint;
|
|
@@ -2397,7 +1609,7 @@ var SplitPolygonMode = class extends GeoJsonEditMode {
|
|
|
2397
1609
|
});
|
|
2398
1610
|
if (closestPoint) {
|
|
2399
1611
|
const lastBearing = (0, import_bearing6.default)(firstPoint, closestPoint);
|
|
2400
|
-
const currentDistance = (0,
|
|
1612
|
+
const currentDistance = (0, import_distance4.default)(firstPoint, mapCoords2, { units: "meters" });
|
|
2401
1613
|
return (0, import_destination3.default)(firstPoint, currentDistance, lastBearing, {
|
|
2402
1614
|
units: "meters"
|
|
2403
1615
|
}).geometry.coordinates;
|
|
@@ -2473,8 +1685,8 @@ var SplitPolygonMode = class extends GeoJsonEditMode {
|
|
|
2473
1685
|
gap = 0.1;
|
|
2474
1686
|
units = "centimeters";
|
|
2475
1687
|
}
|
|
2476
|
-
const buffer = (0,
|
|
2477
|
-
const updatedGeometry = (0,
|
|
1688
|
+
const buffer = (0, import_buffer.default)(tentativeFeature, gap, { units });
|
|
1689
|
+
const updatedGeometry = (0, import_difference2.default)((0, import_helpers8.featureCollection)([(0, import_helpers8.feature)(selectedGeometry), buffer]));
|
|
2478
1690
|
if (!updatedGeometry) {
|
|
2479
1691
|
console.warn("Canceling edit. Split Polygon erased");
|
|
2480
1692
|
return null;
|
|
@@ -2749,7 +1961,7 @@ var DrawPointMode = class extends GeoJsonEditMode {
|
|
|
2749
1961
|
};
|
|
2750
1962
|
|
|
2751
1963
|
// dist/edit-modes/draw-line-string-mode.js
|
|
2752
|
-
var
|
|
1964
|
+
var import_distance5 = __toESM(require("@turf/distance"), 1);
|
|
2753
1965
|
|
|
2754
1966
|
// dist/utils/memoize.js
|
|
2755
1967
|
function isEqual(a, b) {
|
|
@@ -2906,7 +2118,7 @@ var DrawLineStringMode = class extends GeoJsonEditMode {
|
|
|
2906
2118
|
calculateInfoDraw(clickSequence) {
|
|
2907
2119
|
if (clickSequence.length > 1) {
|
|
2908
2120
|
this.position = clickSequence[clickSequence.length - 1];
|
|
2909
|
-
this.dist += (0,
|
|
2121
|
+
this.dist += (0, import_distance5.default)(clickSequence[clickSequence.length - 2], clickSequence[clickSequence.length - 1]);
|
|
2910
2122
|
}
|
|
2911
2123
|
}
|
|
2912
2124
|
/**
|
|
@@ -3079,8 +2291,8 @@ var DrawPolygonMode = class extends GeoJsonEditMode {
|
|
|
3079
2291
|
// eslint-disable-next-line max-statements, complexity
|
|
3080
2292
|
finishDrawing(props) {
|
|
3081
2293
|
const clickSequence = this.getClickSequence();
|
|
3082
|
-
const
|
|
3083
|
-
const newPolygon = (0, import_helpers9.polygon)([
|
|
2294
|
+
const polygon2 = [...clickSequence, clickSequence[0]];
|
|
2295
|
+
const newPolygon = (0, import_helpers9.polygon)([polygon2]);
|
|
3084
2296
|
const canAddHole = canAddHoleToPolygon(props);
|
|
3085
2297
|
const canOverlap = canPolygonOverlap(props);
|
|
3086
2298
|
if (!canOverlap) {
|
|
@@ -3096,7 +2308,7 @@ var DrawPolygonMode = class extends GeoJsonEditMode {
|
|
|
3096
2308
|
}
|
|
3097
2309
|
}
|
|
3098
2310
|
if (canAddHole) {
|
|
3099
|
-
const holeResult = this.tryAddHoleToExistingPolygon(newPolygon,
|
|
2311
|
+
const holeResult = this.tryAddHoleToExistingPolygon(newPolygon, polygon2, props);
|
|
3100
2312
|
if (holeResult.handled) {
|
|
3101
2313
|
this.resetClickSequence();
|
|
3102
2314
|
return;
|
|
@@ -3111,10 +2323,10 @@ var DrawPolygonMode = class extends GeoJsonEditMode {
|
|
|
3111
2323
|
this.resetClickSequence();
|
|
3112
2324
|
return;
|
|
3113
2325
|
}
|
|
3114
|
-
tryAddHoleToExistingPolygon(newPolygon,
|
|
2326
|
+
tryAddHoleToExistingPolygon(newPolygon, polygon2, props) {
|
|
3115
2327
|
for (const [featureIndex, feature] of props.data.features.entries()) {
|
|
3116
2328
|
if (feature.geometry.type === "Polygon") {
|
|
3117
|
-
const result = this.validateAndCreateHole(feature, featureIndex, newPolygon,
|
|
2329
|
+
const result = this.validateAndCreateHole(feature, featureIndex, newPolygon, polygon2, props);
|
|
3118
2330
|
if (result.handled) {
|
|
3119
2331
|
return result;
|
|
3120
2332
|
}
|
|
@@ -3122,7 +2334,7 @@ var DrawPolygonMode = class extends GeoJsonEditMode {
|
|
|
3122
2334
|
}
|
|
3123
2335
|
return { handled: false };
|
|
3124
2336
|
}
|
|
3125
|
-
validateAndCreateHole(feature, featureIndex, newPolygon,
|
|
2337
|
+
validateAndCreateHole(feature, featureIndex, newPolygon, polygon2, props) {
|
|
3126
2338
|
const outer = (0, import_helpers9.polygon)(feature.geometry.coordinates);
|
|
3127
2339
|
for (let i = 1; i < feature.geometry.coordinates.length; i++) {
|
|
3128
2340
|
const hole = (0, import_helpers9.polygon)([feature.geometry.coordinates[i]]);
|
|
@@ -3164,7 +2376,7 @@ var DrawPolygonMode = class extends GeoJsonEditMode {
|
|
|
3164
2376
|
if ((0, import_boolean_within.default)(newPolygon, outer)) {
|
|
3165
2377
|
const updatedData = new ImmutableFeatureCollection(props.data).replaceGeometry(featureIndex, {
|
|
3166
2378
|
...feature.geometry,
|
|
3167
|
-
coordinates: [...feature.geometry.coordinates,
|
|
2379
|
+
coordinates: [...feature.geometry.coordinates, polygon2]
|
|
3168
2380
|
}).getObject();
|
|
3169
2381
|
props.onEdit({
|
|
3170
2382
|
updatedData,
|
|
@@ -3191,7 +2403,7 @@ function canPolygonOverlap(props) {
|
|
|
3191
2403
|
}
|
|
3192
2404
|
|
|
3193
2405
|
// dist/edit-modes/draw-rectangle-mode.js
|
|
3194
|
-
var
|
|
2406
|
+
var import_bbox_polygon3 = __toESM(require("@turf/bbox-polygon"), 1);
|
|
3195
2407
|
|
|
3196
2408
|
// dist/edit-modes/two-click-polygon-mode.js
|
|
3197
2409
|
var import_lodash = __toESM(require("lodash.omit"), 1);
|
|
@@ -3248,15 +2460,15 @@ var TwoClickPolygonMode = class extends GeoJsonEditMode {
|
|
|
3248
2460
|
}
|
|
3249
2461
|
const corner1 = clickSequence[0];
|
|
3250
2462
|
const corner2 = lastPointerMoveEvent.mapCoords;
|
|
3251
|
-
const
|
|
3252
|
-
if (
|
|
2463
|
+
const polygon2 = this.getTwoClickPolygon(corner1, corner2, modeConfig);
|
|
2464
|
+
if (polygon2) {
|
|
3253
2465
|
guides.features.push({
|
|
3254
2466
|
type: "Feature",
|
|
3255
2467
|
properties: {
|
|
3256
|
-
...
|
|
2468
|
+
...polygon2.properties,
|
|
3257
2469
|
guideType: "tentative"
|
|
3258
2470
|
},
|
|
3259
|
-
geometry:
|
|
2471
|
+
geometry: polygon2.geometry
|
|
3260
2472
|
});
|
|
3261
2473
|
}
|
|
3262
2474
|
return guides;
|
|
@@ -3283,7 +2495,7 @@ var TwoClickPolygonMode = class extends GeoJsonEditMode {
|
|
|
3283
2495
|
// dist/edit-modes/draw-rectangle-mode.js
|
|
3284
2496
|
var DrawRectangleMode = class extends TwoClickPolygonMode {
|
|
3285
2497
|
getTwoClickPolygon(coord1, coord2, modeConfig) {
|
|
3286
|
-
const rectangle = (0,
|
|
2498
|
+
const rectangle = (0, import_bbox_polygon3.default)([coord1[0], coord1[1], coord2[0], coord2[1]]);
|
|
3287
2499
|
rectangle.properties = rectangle.properties || {};
|
|
3288
2500
|
rectangle.properties.shape = "Rectangle";
|
|
3289
2501
|
return rectangle;
|
|
@@ -3291,22 +2503,22 @@ var DrawRectangleMode = class extends TwoClickPolygonMode {
|
|
|
3291
2503
|
};
|
|
3292
2504
|
|
|
3293
2505
|
// dist/edit-modes/draw-square-mode.js
|
|
3294
|
-
var
|
|
3295
|
-
var
|
|
2506
|
+
var import_bbox_polygon4 = __toESM(require("@turf/bbox-polygon"), 1);
|
|
2507
|
+
var import_distance6 = __toESM(require("@turf/distance"), 1);
|
|
3296
2508
|
var import_along = __toESM(require("@turf/along"), 1);
|
|
3297
2509
|
var import_helpers10 = require("@turf/helpers");
|
|
3298
2510
|
var DrawSquareMode = class extends TwoClickPolygonMode {
|
|
3299
2511
|
getTwoClickPolygon(coord1, coord2, modeConfig) {
|
|
3300
2512
|
const coord3 = [coord2[0], coord1[1]];
|
|
3301
2513
|
const coord4 = [coord1[0], coord2[1]];
|
|
3302
|
-
const distance1 = (0,
|
|
3303
|
-
const distance22 = (0,
|
|
2514
|
+
const distance1 = (0, import_distance6.default)((0, import_helpers10.point)(coord3), (0, import_helpers10.point)(coord1));
|
|
2515
|
+
const distance22 = (0, import_distance6.default)((0, import_helpers10.point)(coord4), (0, import_helpers10.point)(coord1));
|
|
3304
2516
|
const shortestDistance = distance1 <= distance22 ? distance1 : distance22;
|
|
3305
2517
|
const closestPoint = distance1 <= distance22 ? coord3 : coord4;
|
|
3306
2518
|
const line = (0, import_helpers10.lineString)([closestPoint, coord2]);
|
|
3307
2519
|
const newPoint = (0, import_along.default)(line, shortestDistance);
|
|
3308
2520
|
const corner = newPoint.geometry.coordinates;
|
|
3309
|
-
const square = (0,
|
|
2521
|
+
const square = (0, import_bbox_polygon4.default)([coord1[0], coord1[1], corner[0], corner[1]]);
|
|
3310
2522
|
square.properties = square.properties || {};
|
|
3311
2523
|
square.properties.shape = "Square";
|
|
3312
2524
|
return square;
|
|
@@ -3314,12 +2526,12 @@ var DrawSquareMode = class extends TwoClickPolygonMode {
|
|
|
3314
2526
|
};
|
|
3315
2527
|
|
|
3316
2528
|
// dist/edit-modes/draw-rectangle-from-center-mode.js
|
|
3317
|
-
var
|
|
2529
|
+
var import_bbox_polygon5 = __toESM(require("@turf/bbox-polygon"), 1);
|
|
3318
2530
|
var DrawRectangleFromCenterMode = class extends TwoClickPolygonMode {
|
|
3319
2531
|
getTwoClickPolygon(coord1, coord2, modeConfig) {
|
|
3320
2532
|
const longitude = coord1[0] > coord2[0] ? coord1[0] + Math.abs(coord1[0] - coord2[0]) : coord1[0] - Math.abs(coord1[0] - coord2[0]);
|
|
3321
2533
|
const latitude = coord1[1] > coord2[1] ? coord1[1] + Math.abs(coord1[1] - coord2[1]) : coord1[1] - Math.abs(coord1[1] - coord2[1]);
|
|
3322
|
-
const rectangle = (0,
|
|
2534
|
+
const rectangle = (0, import_bbox_polygon5.default)([longitude, latitude, coord2[0], coord2[1]]);
|
|
3323
2535
|
rectangle.properties = rectangle.properties || {};
|
|
3324
2536
|
rectangle.properties.shape = "Rectangle";
|
|
3325
2537
|
return rectangle;
|
|
@@ -3327,16 +2539,16 @@ var DrawRectangleFromCenterMode = class extends TwoClickPolygonMode {
|
|
|
3327
2539
|
};
|
|
3328
2540
|
|
|
3329
2541
|
// dist/edit-modes/draw-square-from-center-mode.js
|
|
3330
|
-
var
|
|
3331
|
-
var
|
|
2542
|
+
var import_bbox_polygon6 = __toESM(require("@turf/bbox-polygon"), 1);
|
|
2543
|
+
var import_distance7 = __toESM(require("@turf/distance"), 1);
|
|
3332
2544
|
var import_along2 = __toESM(require("@turf/along"), 1);
|
|
3333
2545
|
var import_helpers11 = require("@turf/helpers");
|
|
3334
2546
|
var DrawSquareFromCenterMode = class extends TwoClickPolygonMode {
|
|
3335
2547
|
getTwoClickPolygon(coord1, coord2, modeConfig) {
|
|
3336
2548
|
const coord3 = [coord2[0], coord1[1]];
|
|
3337
2549
|
const coord4 = [coord1[0], coord2[1]];
|
|
3338
|
-
const distance1 = (0,
|
|
3339
|
-
const distance22 = (0,
|
|
2550
|
+
const distance1 = (0, import_distance7.default)((0, import_helpers11.point)(coord3), (0, import_helpers11.point)(coord1));
|
|
2551
|
+
const distance22 = (0, import_distance7.default)((0, import_helpers11.point)(coord4), (0, import_helpers11.point)(coord1));
|
|
3340
2552
|
const shortestDistance = distance1 <= distance22 ? distance1 : distance22;
|
|
3341
2553
|
const closestPoint = distance1 <= distance22 ? coord3 : coord4;
|
|
3342
2554
|
const line = (0, import_helpers11.lineString)([closestPoint, coord2]);
|
|
@@ -3344,7 +2556,7 @@ var DrawSquareFromCenterMode = class extends TwoClickPolygonMode {
|
|
|
3344
2556
|
const corner = newPoint.geometry.coordinates;
|
|
3345
2557
|
const longitude = coord1[0] > corner[0] ? coord1[0] + Math.abs(coord1[0] - corner[0]) : coord1[0] - Math.abs(coord1[0] - corner[0]);
|
|
3346
2558
|
const latitude = coord1[1] > corner[1] ? coord1[1] + Math.abs(coord1[1] - corner[1]) : coord1[1] - Math.abs(coord1[1] - corner[1]);
|
|
3347
|
-
const square = (0,
|
|
2559
|
+
const square = (0, import_bbox_polygon6.default)([longitude, latitude, corner[0], corner[1]]);
|
|
3348
2560
|
square.properties = square.properties || {};
|
|
3349
2561
|
square.properties.shape = "Square";
|
|
3350
2562
|
return square;
|
|
@@ -3353,7 +2565,7 @@ var DrawSquareFromCenterMode = class extends TwoClickPolygonMode {
|
|
|
3353
2565
|
|
|
3354
2566
|
// dist/edit-modes/draw-circle-from-center-mode.js
|
|
3355
2567
|
var import_circle = __toESM(require("@turf/circle"), 1);
|
|
3356
|
-
var
|
|
2568
|
+
var import_distance8 = __toESM(require("@turf/distance"), 1);
|
|
3357
2569
|
var import_area = __toESM(require("@turf/area"), 1);
|
|
3358
2570
|
var DrawCircleFromCenterMode = class extends TwoClickPolygonMode {
|
|
3359
2571
|
radius = null;
|
|
@@ -3367,7 +2579,7 @@ var DrawCircleFromCenterMode = class extends TwoClickPolygonMode {
|
|
|
3367
2579
|
console.warn("Minimum steps to draw a circle is 4 ");
|
|
3368
2580
|
options.steps = 4;
|
|
3369
2581
|
}
|
|
3370
|
-
this.radius = Math.max((0,
|
|
2582
|
+
this.radius = Math.max((0, import_distance8.default)(coord1, coord2), 1e-3);
|
|
3371
2583
|
const geometry = (0, import_circle.default)(coord1, this.radius, options);
|
|
3372
2584
|
geometry.properties = geometry.properties || {};
|
|
3373
2585
|
geometry.properties.shape = "Circle";
|
|
@@ -3421,7 +2633,7 @@ var DrawCircleFromCenterMode = class extends TwoClickPolygonMode {
|
|
|
3421
2633
|
|
|
3422
2634
|
// dist/edit-modes/draw-circle-by-diameter-mode.js
|
|
3423
2635
|
var import_circle2 = __toESM(require("@turf/circle"), 1);
|
|
3424
|
-
var
|
|
2636
|
+
var import_distance9 = __toESM(require("@turf/distance"), 1);
|
|
3425
2637
|
var import_area2 = __toESM(require("@turf/area"), 1);
|
|
3426
2638
|
var DrawCircleByDiameterMode = class extends TwoClickPolygonMode {
|
|
3427
2639
|
radius = null;
|
|
@@ -3436,8 +2648,8 @@ var DrawCircleByDiameterMode = class extends TwoClickPolygonMode {
|
|
|
3436
2648
|
options.steps = 4;
|
|
3437
2649
|
}
|
|
3438
2650
|
const centerCoordinates = getIntermediatePosition(coord1, coord2);
|
|
3439
|
-
this.radius = Math.max((0,
|
|
3440
|
-
this.diameter = Math.max((0,
|
|
2651
|
+
this.radius = Math.max((0, import_distance9.default)(coord1, centerCoordinates), 1e-3);
|
|
2652
|
+
this.diameter = Math.max((0, import_distance9.default)(coord1, coord2), 1e-3);
|
|
3441
2653
|
this.position = centerCoordinates;
|
|
3442
2654
|
const geometry = (0, import_circle2.default)(centerCoordinates, this.radius, options);
|
|
3443
2655
|
geometry.properties = geometry.properties || {};
|
|
@@ -3495,8 +2707,8 @@ var DrawCircleByDiameterMode = class extends TwoClickPolygonMode {
|
|
|
3495
2707
|
};
|
|
3496
2708
|
|
|
3497
2709
|
// dist/edit-modes/draw-ellipse-by-bounding-box-mode.js
|
|
3498
|
-
var
|
|
3499
|
-
var
|
|
2710
|
+
var import_bbox_polygon7 = __toESM(require("@turf/bbox-polygon"), 1);
|
|
2711
|
+
var import_distance10 = __toESM(require("@turf/distance"), 1);
|
|
3500
2712
|
var import_ellipse = __toESM(require("@turf/ellipse"), 1);
|
|
3501
2713
|
var import_helpers12 = require("@turf/helpers");
|
|
3502
2714
|
var DrawEllipseByBoundingBoxMode = class extends TwoClickPolygonMode {
|
|
@@ -3505,11 +2717,11 @@ var DrawEllipseByBoundingBoxMode = class extends TwoClickPolygonMode {
|
|
|
3505
2717
|
const minY = Math.min(coord1[1], coord2[1]);
|
|
3506
2718
|
const maxX = Math.max(coord1[0], coord2[0]);
|
|
3507
2719
|
const maxY = Math.max(coord1[1], coord2[1]);
|
|
3508
|
-
const polygonPoints = (0,
|
|
2720
|
+
const polygonPoints = (0, import_bbox_polygon7.default)([minX, minY, maxX, maxY]).geometry.coordinates[0];
|
|
3509
2721
|
const centerCoordinates = getIntermediatePosition(coord1, coord2);
|
|
3510
|
-
const xSemiAxis = Math.max((0,
|
|
3511
|
-
const ySemiAxis = Math.max((0,
|
|
3512
|
-
const geometry = (0, import_ellipse.default)(centerCoordinates, xSemiAxis, ySemiAxis);
|
|
2722
|
+
const xSemiAxis = Math.max((0, import_distance10.default)((0, import_helpers12.point)(polygonPoints[0]), (0, import_helpers12.point)(polygonPoints[1])), 1e-3);
|
|
2723
|
+
const ySemiAxis = Math.max((0, import_distance10.default)((0, import_helpers12.point)(polygonPoints[0]), (0, import_helpers12.point)(polygonPoints[3])), 1e-3);
|
|
2724
|
+
const geometry = (0, import_ellipse.default)(centerCoordinates, xSemiAxis, ySemiAxis, {});
|
|
3513
2725
|
geometry.properties = geometry.properties || {};
|
|
3514
2726
|
geometry.properties.editProperties = geometry.properties.editProperties || {};
|
|
3515
2727
|
geometry.properties.editProperties.shape = "Ellipse";
|
|
@@ -3559,15 +2771,15 @@ var ThreeClickPolygonMode = class extends GeoJsonEditMode {
|
|
|
3559
2771
|
}
|
|
3560
2772
|
});
|
|
3561
2773
|
} else {
|
|
3562
|
-
const
|
|
3563
|
-
if (
|
|
2774
|
+
const polygon2 = this.getThreeClickPolygon(clickSequence[0], clickSequence[1], hoveredCoord, modeConfig);
|
|
2775
|
+
if (polygon2) {
|
|
3564
2776
|
guides.features.push({
|
|
3565
2777
|
type: "Feature",
|
|
3566
2778
|
properties: {
|
|
3567
|
-
...
|
|
2779
|
+
...polygon2.properties,
|
|
3568
2780
|
guideType: "tentative"
|
|
3569
2781
|
},
|
|
3570
|
-
geometry:
|
|
2782
|
+
geometry: polygon2.geometry
|
|
3571
2783
|
});
|
|
3572
2784
|
}
|
|
3573
2785
|
}
|
|
@@ -3621,15 +2833,15 @@ var DrawRectangleUsingThreePointsMode = class extends ThreeClickPolygonMode {
|
|
|
3621
2833
|
};
|
|
3622
2834
|
|
|
3623
2835
|
// dist/edit-modes/draw-ellipse-using-three-points-mode.js
|
|
3624
|
-
var
|
|
2836
|
+
var import_distance11 = __toESM(require("@turf/distance"), 1);
|
|
3625
2837
|
var import_ellipse2 = __toESM(require("@turf/ellipse"), 1);
|
|
3626
2838
|
var import_bearing8 = __toESM(require("@turf/bearing"), 1);
|
|
3627
2839
|
var import_helpers13 = require("@turf/helpers");
|
|
3628
2840
|
var DrawEllipseUsingThreePointsMode = class extends ThreeClickPolygonMode {
|
|
3629
2841
|
getThreeClickPolygon(coord1, coord2, coord3, modeConfig) {
|
|
3630
2842
|
const centerCoordinates = getIntermediatePosition(coord1, coord2);
|
|
3631
|
-
const xSemiAxis = Math.max((0,
|
|
3632
|
-
const ySemiAxis = Math.max((0,
|
|
2843
|
+
const xSemiAxis = Math.max((0, import_distance11.default)(centerCoordinates, (0, import_helpers13.point)(coord3)), 1e-3);
|
|
2844
|
+
const ySemiAxis = Math.max((0, import_distance11.default)(coord1, coord2), 1e-3) / 2;
|
|
3633
2845
|
const options = { angle: (0, import_bearing8.default)(coord1, coord2) };
|
|
3634
2846
|
const geometry = (0, import_ellipse2.default)(centerCoordinates, xSemiAxis, ySemiAxis, options);
|
|
3635
2847
|
geometry.properties = geometry.properties || {};
|
|
@@ -3647,7 +2859,7 @@ var DrawEllipseUsingThreePointsMode = class extends ThreeClickPolygonMode {
|
|
|
3647
2859
|
var import_destination4 = __toESM(require("@turf/destination"), 1);
|
|
3648
2860
|
var import_bearing9 = __toESM(require("@turf/bearing"), 1);
|
|
3649
2861
|
var import_line_intersect3 = __toESM(require("@turf/line-intersect"), 1);
|
|
3650
|
-
var
|
|
2862
|
+
var import_distance12 = __toESM(require("@turf/distance"), 1);
|
|
3651
2863
|
var import_helpers14 = require("@turf/helpers");
|
|
3652
2864
|
var Draw90DegreePolygonMode = class extends GeoJsonEditMode {
|
|
3653
2865
|
createTentativeFeature(props) {
|
|
@@ -3718,13 +2930,13 @@ var Draw90DegreePolygonMode = class extends GeoJsonEditMode {
|
|
|
3718
2930
|
const lineString3 = tentativeFeature.geometry;
|
|
3719
2931
|
clickSequence[clickSequence.length - 1] = lineString3.coordinates[lineString3.coordinates.length - 1];
|
|
3720
2932
|
} else if (clickSequence.length > 3 && tentativeFeature.geometry.type === "Polygon") {
|
|
3721
|
-
const
|
|
3722
|
-
clickSequence[clickSequence.length - 1] =
|
|
2933
|
+
const polygon2 = tentativeFeature.geometry;
|
|
2934
|
+
clickSequence[clickSequence.length - 1] = polygon2.coordinates[0][polygon2.coordinates[0].length - 2];
|
|
3723
2935
|
const clickedEditHandle = getPickedEditHandle(picks);
|
|
3724
|
-
if (clickedEditHandle && Array.isArray(clickedEditHandle.properties.positionIndexes) && (clickedEditHandle.properties.positionIndexes[1] === 0 || clickedEditHandle.properties.positionIndexes[1] ===
|
|
2936
|
+
if (clickedEditHandle && Array.isArray(clickedEditHandle.properties.positionIndexes) && (clickedEditHandle.properties.positionIndexes[1] === 0 || clickedEditHandle.properties.positionIndexes[1] === polygon2.coordinates[0].length - 3)) {
|
|
3725
2937
|
const polygonToAdd = {
|
|
3726
2938
|
type: "Polygon",
|
|
3727
|
-
coordinates: this.finalizedCoordinates([...
|
|
2939
|
+
coordinates: this.finalizedCoordinates([...polygon2.coordinates[0]])
|
|
3728
2940
|
};
|
|
3729
2941
|
this.resetClickSequence();
|
|
3730
2942
|
const editAction = this.getAddFeatureOrBooleanPolygonAction(polygonToAdd, props);
|
|
@@ -3777,7 +2989,7 @@ var Draw90DegreePolygonMode = class extends GeoJsonEditMode {
|
|
|
3777
2989
|
const newAngle2 = angle2 + factor * 90;
|
|
3778
2990
|
angles.second.push(newAngle2 > 180 ? newAngle2 - 360 : newAngle2);
|
|
3779
2991
|
});
|
|
3780
|
-
const distance7 = (0,
|
|
2992
|
+
const distance7 = (0, import_distance12.default)((0, import_helpers14.point)(p1), (0, import_helpers14.point)(p3));
|
|
3781
2993
|
[0, 1, 2].forEach((indexFirst) => {
|
|
3782
2994
|
const line1 = (0, import_helpers14.lineString)([
|
|
3783
2995
|
p1,
|
|
@@ -4107,12 +3319,12 @@ var DeleteMode = class extends GeoJsonEditMode {
|
|
|
4107
3319
|
};
|
|
4108
3320
|
|
|
4109
3321
|
// dist/constants.js
|
|
4110
|
-
var
|
|
3322
|
+
var PROJECTED_PIXEL_SIZE_MULTIPLIER = 2 / 3;
|
|
4111
3323
|
|
|
4112
3324
|
// dist/editable-layers/editable-layer.js
|
|
4113
|
-
var
|
|
3325
|
+
var import_core = require("@deck.gl/core");
|
|
4114
3326
|
var EVENT_TYPES = ["click", "pointermove", "panstart", "panmove", "panend", "keyup", "dblclick"];
|
|
4115
|
-
var EditableLayer = class extends
|
|
3327
|
+
var EditableLayer = class extends import_core.CompositeLayer {
|
|
4116
3328
|
state = void 0;
|
|
4117
3329
|
// Overridable interaction event handlers
|
|
4118
3330
|
onLayerClick(event) {
|
|
@@ -4305,7 +3517,7 @@ var EditableLayer = class extends import_core3.CompositeLayer {
|
|
|
4305
3517
|
__publicField(EditableLayer, "layerName", "EditableLayer");
|
|
4306
3518
|
|
|
4307
3519
|
// dist/editable-layers/editable-path-layer.js
|
|
4308
|
-
var
|
|
3520
|
+
var import_layers = require("@deck.gl/layers");
|
|
4309
3521
|
var uniformBlock = `uniform pickingLineWidthUniforms {
|
|
4310
3522
|
float extraPixels;
|
|
4311
3523
|
} pickingLineWidth;
|
|
@@ -4319,10 +3531,10 @@ var pickingUniforms = {
|
|
|
4319
3531
|
}
|
|
4320
3532
|
};
|
|
4321
3533
|
var defaultProps = {
|
|
4322
|
-
...
|
|
3534
|
+
...import_layers.PathLayer.defaultProps,
|
|
4323
3535
|
pickingLineWidthExtraPixels: { type: "number", min: 0, value: Number.MAX_SAFE_INTEGER }
|
|
4324
3536
|
};
|
|
4325
|
-
var EditablePathLayer = class extends
|
|
3537
|
+
var EditablePathLayer = class extends import_layers.PathLayer {
|
|
4326
3538
|
getShaders() {
|
|
4327
3539
|
const shaders = super.getShaders();
|
|
4328
3540
|
shaders.vs = insertBefore(shaders.vs, "vec3 width;", `
|
|
@@ -4360,7 +3572,7 @@ var DEFAULT_EDITING_POINT_OUTLINE_COLOR = [255, 255, 255, 255];
|
|
|
4360
3572
|
var DEFAULT_EDITING_EXISTING_POINT_RADIUS = 5;
|
|
4361
3573
|
var DEFAULT_EDITING_INTERMEDIATE_POINT_RADIUS = 3;
|
|
4362
3574
|
var DEFAULT_EDITING_SNAP_POINT_RADIUS = 7;
|
|
4363
|
-
var DEFAULT_TOOLTIP_FONT_SIZE = 32 *
|
|
3575
|
+
var DEFAULT_TOOLTIP_FONT_SIZE = 32 * PROJECTED_PIXEL_SIZE_MULTIPLIER;
|
|
4364
3576
|
var DEFAULT_EDIT_MODE = DrawPolygonMode;
|
|
4365
3577
|
function guideAccessor(accessor) {
|
|
4366
3578
|
if (!accessor || typeof accessor !== "function") {
|
|
@@ -4412,7 +3624,7 @@ var defaultProps2 = {
|
|
|
4412
3624
|
fp64: false,
|
|
4413
3625
|
filled: true,
|
|
4414
3626
|
stroked: true,
|
|
4415
|
-
lineWidthScale:
|
|
3627
|
+
lineWidthScale: PROJECTED_PIXEL_SIZE_MULTIPLIER,
|
|
4416
3628
|
lineWidthMinPixels: 1,
|
|
4417
3629
|
lineWidthMaxPixels: Number.MAX_SAFE_INTEGER,
|
|
4418
3630
|
pickingLineWidthExtraPixels: 0,
|
|
@@ -4527,13 +3739,13 @@ var EditableGeoJsonLayer = class extends EditableLayer {
|
|
|
4527
3739
|
}
|
|
4528
3740
|
},
|
|
4529
3741
|
updateTriggers: {
|
|
4530
|
-
getLineColor: [this.props.selectedFeatureIndexes, this.props.mode],
|
|
4531
|
-
getFillColor: [this.props.selectedFeatureIndexes, this.props.mode],
|
|
4532
|
-
getPointRadius: [this.props.selectedFeatureIndexes, this.props.mode],
|
|
4533
|
-
getLineWidth: [this.props.selectedFeatureIndexes, this.props.mode]
|
|
3742
|
+
getLineColor: [this.props.updateTriggers.getLineColor, this.props.selectedFeatureIndexes, this.props.mode],
|
|
3743
|
+
getFillColor: [this.props.updateTriggers.getFillColor, this.props.selectedFeatureIndexes, this.props.mode],
|
|
3744
|
+
getPointRadius: [this.props.updateTriggers.getPointRadius, this.props.selectedFeatureIndexes, this.props.mode],
|
|
3745
|
+
getLineWidth: [this.props.updateTriggers.getLineWidth, this.props.selectedFeatureIndexes, this.props.mode]
|
|
4534
3746
|
}
|
|
4535
3747
|
});
|
|
4536
|
-
let layers = [new
|
|
3748
|
+
let layers = [new import_layers2.GeoJsonLayer(subLayerProps)];
|
|
4537
3749
|
layers = layers.concat(this.createGuidesLayers(), this.createTooltipsLayers());
|
|
4538
3750
|
return layers;
|
|
4539
3751
|
}
|
|
@@ -4647,7 +3859,7 @@ var EditableGeoJsonLayer = class extends EditableLayer {
|
|
|
4647
3859
|
};
|
|
4648
3860
|
if (this.props.editHandleType === "icon") {
|
|
4649
3861
|
subLayerProps["points-icon"] = {
|
|
4650
|
-
type:
|
|
3862
|
+
type: import_layers2.IconLayer,
|
|
4651
3863
|
iconAtlas: this.props.editHandleIconAtlas,
|
|
4652
3864
|
iconMapping: this.props.editHandleIconMapping,
|
|
4653
3865
|
sizeUnits: this.props.editHandleIconSizeUnits,
|
|
@@ -4660,7 +3872,7 @@ var EditableGeoJsonLayer = class extends EditableLayer {
|
|
|
4660
3872
|
};
|
|
4661
3873
|
} else {
|
|
4662
3874
|
subLayerProps["points-circle"] = {
|
|
4663
|
-
type:
|
|
3875
|
+
type: import_layers2.ScatterplotLayer,
|
|
4664
3876
|
radiusScale: this.props.editHandlePointRadiusScale,
|
|
4665
3877
|
stroked: this.props.editHandlePointOutline,
|
|
4666
3878
|
getLineWidth: this.props.editHandlePointStrokeWidth,
|
|
@@ -4673,7 +3885,7 @@ var EditableGeoJsonLayer = class extends EditableLayer {
|
|
|
4673
3885
|
billboard: this.props.billboard
|
|
4674
3886
|
};
|
|
4675
3887
|
}
|
|
4676
|
-
const layer = new
|
|
3888
|
+
const layer = new import_layers2.GeoJsonLayer(this.getSubLayerProps({
|
|
4677
3889
|
id: "guides",
|
|
4678
3890
|
data: guides,
|
|
4679
3891
|
fp64: this.props.fp64,
|
|
@@ -4696,7 +3908,7 @@ var EditableGeoJsonLayer = class extends EditableLayer {
|
|
|
4696
3908
|
createTooltipsLayers() {
|
|
4697
3909
|
const mode = this.getActiveMode();
|
|
4698
3910
|
const tooltips = mode.getTooltips(this.getModeProps(this.props));
|
|
4699
|
-
const layer = new
|
|
3911
|
+
const layer = new import_layers2.TextLayer({
|
|
4700
3912
|
getSize: DEFAULT_TOOLTIP_FONT_SIZE,
|
|
4701
3913
|
...this.getSubLayerProps({
|
|
4702
3914
|
id: "tooltips",
|
|
@@ -4762,7 +3974,7 @@ var defaultProps3 = {
|
|
|
4762
3974
|
selectedIndexes: [],
|
|
4763
3975
|
filled: false,
|
|
4764
3976
|
stroked: true,
|
|
4765
|
-
lineWidthScale:
|
|
3977
|
+
lineWidthScale: PROJECTED_PIXEL_SIZE_MULTIPLIER,
|
|
4766
3978
|
lineWidthMinPixels: 1,
|
|
4767
3979
|
lineWidthMaxPixels: Number.MAX_SAFE_INTEGER,
|
|
4768
3980
|
lineWidthUnits: "pixels",
|
|
@@ -4896,25 +4108,25 @@ __publicField(EditableH3ClusterLayer, "layerName", "EditableH3ClusterLayer");
|
|
|
4896
4108
|
__publicField(EditableH3ClusterLayer, "defaultProps", defaultProps3);
|
|
4897
4109
|
|
|
4898
4110
|
// dist/editable-layers/selection-layer.js
|
|
4899
|
-
var
|
|
4900
|
-
var
|
|
4111
|
+
var import_core2 = require("@deck.gl/core");
|
|
4112
|
+
var import_layers3 = require("@deck.gl/layers");
|
|
4901
4113
|
var import_helpers16 = require("@turf/helpers");
|
|
4902
|
-
var
|
|
4903
|
-
var
|
|
4904
|
-
var
|
|
4114
|
+
var import_buffer2 = __toESM(require("@turf/buffer"), 1);
|
|
4115
|
+
var import_difference3 = __toESM(require("@turf/difference"), 1);
|
|
4116
|
+
var SELECTION_TYPE = {
|
|
4905
4117
|
NONE: null,
|
|
4906
4118
|
RECTANGLE: "rectangle",
|
|
4907
4119
|
POLYGON: "polygon"
|
|
4908
4120
|
};
|
|
4909
4121
|
var MODE_MAP = {
|
|
4910
|
-
[
|
|
4911
|
-
[
|
|
4122
|
+
[SELECTION_TYPE.RECTANGLE]: DrawRectangleMode,
|
|
4123
|
+
[SELECTION_TYPE.POLYGON]: DrawPolygonMode
|
|
4912
4124
|
};
|
|
4913
4125
|
var MODE_CONFIG_MAP = {
|
|
4914
|
-
[
|
|
4126
|
+
[SELECTION_TYPE.RECTANGLE]: { dragToDraw: true }
|
|
4915
4127
|
};
|
|
4916
4128
|
var defaultProps4 = {
|
|
4917
|
-
selectionType:
|
|
4129
|
+
selectionType: SELECTION_TYPE.RECTANGLE,
|
|
4918
4130
|
layerIds: [],
|
|
4919
4131
|
onSelect: () => {
|
|
4920
4132
|
}
|
|
@@ -4923,7 +4135,7 @@ var EMPTY_DATA = {
|
|
|
4923
4135
|
type: "FeatureCollection",
|
|
4924
4136
|
features: []
|
|
4925
4137
|
};
|
|
4926
|
-
var
|
|
4138
|
+
var EXPANSION_KM = 50;
|
|
4927
4139
|
var LAYER_ID_GEOJSON = "selection-geojson";
|
|
4928
4140
|
var LAYER_ID_BLOCKER = "selection-blocker";
|
|
4929
4141
|
var PASS_THROUGH_PROPS = [
|
|
@@ -4948,7 +4160,7 @@ var PASS_THROUGH_PROPS = [
|
|
|
4948
4160
|
"getTentativeFillColor",
|
|
4949
4161
|
"getTentativeLineWidth"
|
|
4950
4162
|
];
|
|
4951
|
-
var SelectionLayer = class extends
|
|
4163
|
+
var SelectionLayer = class extends import_core2.CompositeLayer {
|
|
4952
4164
|
state = void 0;
|
|
4953
4165
|
_selectRectangleObjects(coordinates) {
|
|
4954
4166
|
const { layerIds, onSelect } = this.props;
|
|
@@ -4973,10 +4185,10 @@ var SelectionLayer = class extends import_core4.CompositeLayer {
|
|
|
4973
4185
|
const maxX = Math.max(...allX);
|
|
4974
4186
|
const maxY = Math.max(...allY);
|
|
4975
4187
|
const landPointsPoly = (0, import_helpers16.polygon)(coordinates);
|
|
4976
|
-
const bigBuffer = (0,
|
|
4188
|
+
const bigBuffer = (0, import_buffer2.default)(landPointsPoly, EXPANSION_KM);
|
|
4977
4189
|
let bigPolygon;
|
|
4978
4190
|
try {
|
|
4979
|
-
bigPolygon = (0,
|
|
4191
|
+
bigPolygon = (0, import_difference3.default)((0, import_helpers16.featureCollection)([bigBuffer, landPointsPoly]));
|
|
4980
4192
|
} catch (e) {
|
|
4981
4193
|
console.log("turfDifference() error", e);
|
|
4982
4194
|
return;
|
|
@@ -5020,9 +4232,9 @@ var SelectionLayer = class extends import_core4.CompositeLayer {
|
|
|
5020
4232
|
onEdit: ({ updatedData, editType }) => {
|
|
5021
4233
|
if (editType === "addFeature") {
|
|
5022
4234
|
const { coordinates } = updatedData.features[0].geometry;
|
|
5023
|
-
if (this.props.selectionType ===
|
|
4235
|
+
if (this.props.selectionType === SELECTION_TYPE.RECTANGLE) {
|
|
5024
4236
|
this._selectRectangleObjects(coordinates);
|
|
5025
|
-
} else if (this.props.selectionType ===
|
|
4237
|
+
} else if (this.props.selectionType === SELECTION_TYPE.POLYGON) {
|
|
5026
4238
|
this._selectPolygonObjects(coordinates);
|
|
5027
4239
|
}
|
|
5028
4240
|
}
|
|
@@ -5032,7 +4244,7 @@ var SelectionLayer = class extends import_core4.CompositeLayer {
|
|
|
5032
4244
|
];
|
|
5033
4245
|
if (pendingPolygonSelection) {
|
|
5034
4246
|
const { bigPolygon } = pendingPolygonSelection;
|
|
5035
|
-
layers.push(new
|
|
4247
|
+
layers.push(new import_layers3.PolygonLayer(this.getSubLayerProps({
|
|
5036
4248
|
id: LAYER_ID_BLOCKER,
|
|
5037
4249
|
pickable: true,
|
|
5038
4250
|
stroked: false,
|
|
@@ -5053,16 +4265,16 @@ __publicField(SelectionLayer, "layerName", "SelectionLayer");
|
|
|
5053
4265
|
__publicField(SelectionLayer, "defaultProps", defaultProps4);
|
|
5054
4266
|
|
|
5055
4267
|
// dist/editable-layers/elevated-edit-handle-layer.js
|
|
5056
|
-
var
|
|
5057
|
-
var
|
|
4268
|
+
var import_core3 = require("@deck.gl/core");
|
|
4269
|
+
var import_layers4 = require("@deck.gl/layers");
|
|
5058
4270
|
var defaultProps5 = {};
|
|
5059
|
-
var ElevatedEditHandleLayer = class extends
|
|
4271
|
+
var ElevatedEditHandleLayer = class extends import_core3.CompositeLayer {
|
|
5060
4272
|
renderLayers() {
|
|
5061
|
-
const handles = new
|
|
4273
|
+
const handles = new import_layers4.ScatterplotLayer(Object.assign({}, this.props, {
|
|
5062
4274
|
id: `${this.props.id}-ScatterplotLayer`,
|
|
5063
4275
|
data: this.props.data
|
|
5064
4276
|
}));
|
|
5065
|
-
const lines = new
|
|
4277
|
+
const lines = new import_layers4.LineLayer(Object.assign({}, this.props, {
|
|
5066
4278
|
id: `${this.props.id}-LineLayer`,
|
|
5067
4279
|
data: this.props.data,
|
|
5068
4280
|
pickable: false,
|
|
@@ -5080,7 +4292,7 @@ __publicField(ElevatedEditHandleLayer, "defaultProps", defaultProps5);
|
|
|
5080
4292
|
// dist/widgets/edit-mode-tray-widget.js
|
|
5081
4293
|
var import_jsx_runtime = require("preact/jsx-runtime");
|
|
5082
4294
|
var import_preact = require("preact");
|
|
5083
|
-
var
|
|
4295
|
+
var import_core4 = require("@deck.gl/core");
|
|
5084
4296
|
var ROOT_STYLE = {
|
|
5085
4297
|
position: "absolute",
|
|
5086
4298
|
display: "flex",
|
|
@@ -5124,7 +4336,7 @@ var BUTTON_LABEL_STYLE = {
|
|
|
5124
4336
|
marginTop: "2px",
|
|
5125
4337
|
lineHeight: "12px"
|
|
5126
4338
|
};
|
|
5127
|
-
var _EditModeTrayWidget = class extends
|
|
4339
|
+
var _EditModeTrayWidget = class extends import_core4.Widget {
|
|
5128
4340
|
placement = "top-left";
|
|
5129
4341
|
className = "deck-widget-edit-mode-tray";
|
|
5130
4342
|
layout = "vertical";
|
|
@@ -5295,11 +4507,54 @@ __publicField(EditModeTrayWidget, "defaultProps", {
|
|
|
5295
4507
|
className: ""
|
|
5296
4508
|
});
|
|
5297
4509
|
|
|
4510
|
+
// dist/editable-layers/junction-scatterplot-layer.js
|
|
4511
|
+
var import_core5 = require("@deck.gl/core");
|
|
4512
|
+
var import_layers5 = require("@deck.gl/layers");
|
|
4513
|
+
var JunctionScatterplotLayer = class extends import_core5.CompositeLayer {
|
|
4514
|
+
renderLayers() {
|
|
4515
|
+
const { id, getFillColor, getStrokeColor, getInnerRadius, updateTriggers } = this.props;
|
|
4516
|
+
return [
|
|
4517
|
+
// the full circles
|
|
4518
|
+
new import_layers5.ScatterplotLayer({
|
|
4519
|
+
...this.props,
|
|
4520
|
+
id: `${id}-full`,
|
|
4521
|
+
data: this.props.data,
|
|
4522
|
+
getLineColor: getStrokeColor,
|
|
4523
|
+
updateTriggers: {
|
|
4524
|
+
...updateTriggers,
|
|
4525
|
+
getStrokeColor: updateTriggers.getStrokeColor
|
|
4526
|
+
}
|
|
4527
|
+
}),
|
|
4528
|
+
// the inner part
|
|
4529
|
+
new import_layers5.ScatterplotLayer({
|
|
4530
|
+
...this.props,
|
|
4531
|
+
id: `${id}-inner`,
|
|
4532
|
+
data: this.props.data,
|
|
4533
|
+
getFillColor,
|
|
4534
|
+
getRadius: getInnerRadius,
|
|
4535
|
+
pickable: false,
|
|
4536
|
+
updateTriggers: {
|
|
4537
|
+
...updateTriggers,
|
|
4538
|
+
getFillColor: updateTriggers.getFillColor,
|
|
4539
|
+
getRadius: updateTriggers.getInnerRadius
|
|
4540
|
+
}
|
|
4541
|
+
})
|
|
4542
|
+
];
|
|
4543
|
+
}
|
|
4544
|
+
};
|
|
4545
|
+
__publicField(JunctionScatterplotLayer, "layerName", "JunctionScatterplotLayer");
|
|
4546
|
+
__publicField(JunctionScatterplotLayer, "defaultProps", {
|
|
4547
|
+
...import_layers5.ScatterplotLayer.defaultProps,
|
|
4548
|
+
getFillColor: (d) => [0, 0, 0, 255],
|
|
4549
|
+
getStrokeColor: (d) => [255, 255, 255, 255],
|
|
4550
|
+
getInnerRadius: (d) => 1
|
|
4551
|
+
});
|
|
4552
|
+
|
|
5298
4553
|
// dist/edit-modes/resize-circle-mode.js
|
|
5299
4554
|
var import_nearest_point_on_line2 = __toESM(require("@turf/nearest-point-on-line"), 1);
|
|
5300
4555
|
var import_helpers17 = require("@turf/helpers");
|
|
5301
4556
|
var import_circle3 = __toESM(require("@turf/circle"), 1);
|
|
5302
|
-
var
|
|
4557
|
+
var import_distance13 = __toESM(require("@turf/distance"), 1);
|
|
5303
4558
|
var import_center2 = __toESM(require("@turf/center"), 1);
|
|
5304
4559
|
var ResizeCircleMode = class extends GeoJsonEditMode {
|
|
5305
4560
|
_selectedEditHandle;
|
|
@@ -5319,12 +4574,7 @@ var ResizeCircleMode = class extends GeoJsonEditMode {
|
|
|
5319
4574
|
const referencePoint = (0, import_helpers17.point)(mapCoords2);
|
|
5320
4575
|
recursivelyTraverseNestedArrays2(featureAsPick.object.geometry.coordinates, [], (lineString3, prefix) => {
|
|
5321
4576
|
const lineStringFeature = (0, import_helpers17.lineString)(lineString3);
|
|
5322
|
-
const candidateIntermediatePoint = this.getNearestPoint(
|
|
5323
|
-
// @ts-expect-error turf types too wide
|
|
5324
|
-
lineStringFeature,
|
|
5325
|
-
referencePoint,
|
|
5326
|
-
props.modeConfig && props.modeConfig.viewport
|
|
5327
|
-
);
|
|
4577
|
+
const candidateIntermediatePoint = this.getNearestPoint(lineStringFeature, referencePoint, props.modeConfig && props.modeConfig.viewport);
|
|
5328
4578
|
if (!intermediatePoint || candidateIntermediatePoint.properties.dist < intermediatePoint.properties.dist) {
|
|
5329
4579
|
intermediatePoint = candidateIntermediatePoint;
|
|
5330
4580
|
positionIndexPrefix = prefix;
|
|
@@ -5372,7 +4622,7 @@ var ResizeCircleMode = class extends GeoJsonEditMode {
|
|
|
5372
4622
|
const feature = this.getSelectedFeature(props);
|
|
5373
4623
|
const center = (0, import_center2.default)(feature).geometry.coordinates;
|
|
5374
4624
|
const numberOfSteps = Object.entries(feature.geometry.coordinates[0]).length - 1;
|
|
5375
|
-
const radius = Math.max((0,
|
|
4625
|
+
const radius = Math.max((0, import_distance13.default)(center, event.mapCoords), 1e-3);
|
|
5376
4626
|
const { steps = numberOfSteps } = {};
|
|
5377
4627
|
const options = { steps };
|
|
5378
4628
|
const updatedFeature = (0, import_circle3.default)(center, radius, options);
|
|
@@ -5488,7 +4738,7 @@ var ExtendLineStringMode = class extends GeoJsonEditMode {
|
|
|
5488
4738
|
};
|
|
5489
4739
|
|
|
5490
4740
|
// dist/edit-modes/measure-distance-mode.js
|
|
5491
|
-
var
|
|
4741
|
+
var import_distance14 = __toESM(require("@turf/distance"), 1);
|
|
5492
4742
|
var import_midpoint = __toESM(require("@turf/midpoint"), 1);
|
|
5493
4743
|
var MeasureDistanceMode = class extends GeoJsonEditMode {
|
|
5494
4744
|
_isMeasuringSessionFinished = false;
|
|
@@ -5496,7 +4746,7 @@ var MeasureDistanceMode = class extends GeoJsonEditMode {
|
|
|
5496
4746
|
_currentDistance = 0;
|
|
5497
4747
|
_calculateDistanceForTooltip = ({ positionA, positionB, modeConfig }) => {
|
|
5498
4748
|
const { turfOptions, measurementCallback } = modeConfig || {};
|
|
5499
|
-
const distance7 = (0,
|
|
4749
|
+
const distance7 = (0, import_distance14.default)(positionA, positionB, turfOptions);
|
|
5500
4750
|
if (measurementCallback) {
|
|
5501
4751
|
measurementCallback(distance7);
|
|
5502
4752
|
}
|