@vaadin/bundles 25.0.0-alpha3 → 25.0.0-alpha5
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/node_modules_ol_ImageCanvas_js.js +76 -83
- package/node_modules_ol_ImageCanvas_js.js.map +1 -1
- package/node_modules_ol_TileRange_js.js +128 -110
- package/node_modules_ol_TileRange_js.js.map +1 -1
- package/node_modules_ol_Tile_js.js +279 -0
- package/node_modules_ol_Tile_js.js.map +1 -0
- package/node_modules_ol_VectorRenderTile_js.js +428 -143
- package/node_modules_ol_VectorRenderTile_js.js.map +1 -1
- package/node_modules_ol_VectorTile_js.js +405 -119
- package/node_modules_ol_VectorTile_js.js.map +1 -1
- package/node_modules_ol_control_MousePosition_js.js +327 -0
- package/node_modules_ol_control_MousePosition_js.js.map +1 -0
- package/node_modules_ol_control_ZoomToExtent_js.js +118 -0
- package/node_modules_ol_control_ZoomToExtent_js.js.map +1 -0
- package/node_modules_ol_events_SnapEvent_js.js +79 -0
- package/node_modules_ol_events_SnapEvent_js.js.map +1 -0
- package/node_modules_ol_featureloader_js.js +205 -0
- package/node_modules_ol_featureloader_js.js.map +1 -0
- package/node_modules_ol_geom_Circle_js.js +300 -0
- package/node_modules_ol_geom_Circle_js.js.map +1 -0
- package/node_modules_ol_geom_GeometryCollection_js.js +369 -0
- package/node_modules_ol_geom_GeometryCollection_js.js.map +1 -0
- package/node_modules_ol_geom_MultiPoint_js.js +228 -0
- package/node_modules_ol_geom_MultiPoint_js.js.map +1 -0
- package/node_modules_ol_geom_flat_center_js.js +47 -0
- package/node_modules_ol_geom_flat_center_js.js.map +1 -0
- package/node_modules_ol_geom_flat_geodesic_js.js +123 -88
- package/node_modules_ol_geom_flat_geodesic_js.js.map +1 -1
- package/node_modules_ol_geom_flat_interpolate_js.js +230 -0
- package/node_modules_ol_geom_flat_interpolate_js.js.map +1 -0
- package/node_modules_ol_geom_flat_length_js-_375a0.js +58 -0
- package/node_modules_ol_geom_flat_length_js-_375a0.js.map +1 -0
- package/node_modules_ol_geom_flat_length_js-_375a1.js +58 -0
- package/node_modules_ol_geom_flat_length_js-_375a1.js.map +1 -0
- package/node_modules_ol_geom_flat_length_js-_375a2.js +58 -0
- package/node_modules_ol_geom_flat_length_js-_375a2.js.map +1 -0
- package/node_modules_ol_geom_flat_length_js-_375a3.js +58 -0
- package/node_modules_ol_geom_flat_length_js-_375a3.js.map +1 -0
- package/node_modules_ol_geom_flat_length_js-_375a4.js +58 -0
- package/node_modules_ol_geom_flat_length_js-_375a4.js.map +1 -0
- package/node_modules_ol_geom_flat_linechunk_js.js +76 -0
- package/node_modules_ol_geom_flat_linechunk_js.js.map +1 -0
- package/node_modules_ol_geom_flat_straightchunk_js.js +68 -0
- package/node_modules_ol_geom_flat_straightchunk_js.js.map +1 -0
- package/node_modules_ol_geom_flat_textpath_js.js +178 -0
- package/node_modules_ol_geom_flat_textpath_js.js.map +1 -0
- package/node_modules_ol_interaction_DblClickDragZoom_js.js +285 -0
- package/node_modules_ol_interaction_DblClickDragZoom_js.js.map +1 -0
- package/node_modules_ol_interaction_DragAndDrop_js.js +351 -0
- package/node_modules_ol_interaction_DragAndDrop_js.js.map +1 -0
- package/node_modules_ol_interaction_DragRotateAndZoom_js.js +159 -0
- package/node_modules_ol_interaction_DragRotateAndZoom_js.js.map +1 -0
- package/node_modules_ol_layer_Vector_js-_49290.js +110 -0
- package/node_modules_ol_layer_Vector_js-_49290.js.map +1 -0
- package/node_modules_ol_layer_Vector_js-_49291.js +110 -0
- package/node_modules_ol_layer_Vector_js-_49291.js.map +1 -0
- package/node_modules_ol_layer_Vector_js-_49292.js +110 -0
- package/node_modules_ol_layer_Vector_js-_49292.js.map +1 -0
- package/node_modules_ol_layer_Vector_js-_49293.js +110 -0
- package/node_modules_ol_layer_Vector_js-_49293.js.map +1 -0
- package/node_modules_ol_loadingstrategy_js.js +95 -0
- package/node_modules_ol_loadingstrategy_js.js.map +1 -0
- package/node_modules_ol_render_VectorContext_js-_3ad60.js +144 -0
- package/node_modules_ol_render_VectorContext_js-_3ad60.js.map +1 -0
- package/node_modules_ol_render_VectorContext_js-_3ad61.js +144 -0
- package/node_modules_ol_render_VectorContext_js-_3ad61.js.map +1 -0
- package/node_modules_ol_render_VectorContext_js-node_modules_ol_render_canvas_hitdetect_js.js +372 -0
- package/node_modules_ol_render_VectorContext_js-node_modules_ol_render_canvas_hitdetect_js.js.map +1 -0
- package/node_modules_ol_render_canvas_ImageBuilder_js.js +318 -0
- package/node_modules_ol_render_canvas_ImageBuilder_js.js.map +1 -0
- package/node_modules_ol_render_canvas_Instruction_js.js +66 -0
- package/node_modules_ol_render_canvas_Instruction_js.js.map +1 -0
- package/node_modules_ol_render_canvas_LineStringBuilder_js.js +187 -0
- package/node_modules_ol_render_canvas_LineStringBuilder_js.js.map +1 -0
- package/node_modules_ol_render_canvas_PolygonBuilder_js.js +276 -0
- package/node_modules_ol_render_canvas_PolygonBuilder_js.js.map +1 -0
- package/node_modules_ol_render_canvas_ZIndexContext_js-_fab20.js +156 -0
- package/node_modules_ol_render_canvas_ZIndexContext_js-_fab20.js.map +1 -0
- package/node_modules_ol_render_canvas_ZIndexContext_js-_fab21.js +156 -0
- package/node_modules_ol_render_canvas_ZIndexContext_js-_fab21.js.map +1 -0
- package/node_modules_ol_render_js-node_modules_ol_render_VectorContext_js.js +301 -0
- package/node_modules_ol_render_js-node_modules_ol_render_VectorContext_js.js.map +1 -0
- package/node_modules_ol_renderer_Layer_js.js +219 -0
- package/node_modules_ol_renderer_Layer_js.js.map +1 -0
- package/node_modules_ol_source_Source_js.js +256 -0
- package/node_modules_ol_source_Source_js.js.map +1 -0
- package/node_modules_ol_source_VectorEventType_js-node_modules_ol_structs_RBush_js.js +318 -0
- package/node_modules_ol_source_VectorEventType_js-node_modules_ol_structs_RBush_js.js.map +1 -0
- package/node_modules_ol_source_VectorEventType_js.js +80 -0
- package/node_modules_ol_source_VectorEventType_js.js.map +1 -0
- package/node_modules_ol_structs_RBush_js.js +242 -0
- package/node_modules_ol_structs_RBush_js.js.map +1 -0
- package/node_modules_ol_style_js.js +2 -1
- package/node_modules_ol_style_js.js.map +1 -1
- package/node_modules_rbush_rbush_min_js.js +16 -0
- package/node_modules_rbush_rbush_min_js.js.map +1 -0
- package/package.json +142 -146
- package/vaadin-bundle.json +2447 -2352
- package/vaadin.js +52246 -63791
- package/vaadin.js.map +1 -1
- package/vendors-node_modules_dompurify_dist_purify_es_mjs.js +1364 -0
- package/vendors-node_modules_dompurify_dist_purify_es_mjs.js.map +1 -0
- package/vendors-node_modules_dompurify_dist_purify_js.js +26 -21
- package/vendors-node_modules_dompurify_dist_purify_js.js.map +1 -1
- package/vendors-node_modules_marked_lib_marked_esm_js.js +2205 -0
- package/vendors-node_modules_marked_lib_marked_esm_js.js.map +1 -0
- package/vendors-node_modules_marked_lib_marked_umd_js.js +2164 -2556
- package/vendors-node_modules_marked_lib_marked_umd_js.js.map +1 -1
- package/vendors-node_modules_ol_Feature_js.js +360 -0
- package/vendors-node_modules_ol_Feature_js.js.map +1 -0
- package/vendors-node_modules_ol_Geolocation_js.js +352 -293
- package/vendors-node_modules_ol_Geolocation_js.js.map +1 -1
- package/vendors-node_modules_ol_ImageTile_js.js +494 -0
- package/vendors-node_modules_ol_ImageTile_js.js.map +1 -0
- package/vendors-node_modules_ol_Overlay_js.js +606 -0
- package/vendors-node_modules_ol_Overlay_js.js.map +1 -0
- package/vendors-node_modules_ol_control_FullScreen_js.js +417 -0
- package/vendors-node_modules_ol_control_FullScreen_js.js.map +1 -0
- package/vendors-node_modules_ol_control_OverviewMap_js.js +711 -0
- package/vendors-node_modules_ol_control_OverviewMap_js.js.map +1 -0
- package/vendors-node_modules_ol_control_ScaleLine_js.js +509 -0
- package/vendors-node_modules_ol_control_ScaleLine_js.js.map +1 -0
- package/vendors-node_modules_ol_control_ZoomSlider_js.js +418 -0
- package/vendors-node_modules_ol_control_ZoomSlider_js.js.map +1 -0
- package/vendors-node_modules_ol_control_js.js +490 -0
- package/vendors-node_modules_ol_control_js.js.map +1 -0
- package/vendors-node_modules_ol_geom_LineString_js.js +574 -0
- package/vendors-node_modules_ol_geom_LineString_js.js.map +1 -0
- package/vendors-node_modules_ol_geom_MultiLineString_js.js +405 -0
- package/vendors-node_modules_ol_geom_MultiLineString_js.js.map +1 -0
- package/vendors-node_modules_ol_geom_MultiPolygon_js.js +773 -0
- package/vendors-node_modules_ol_geom_MultiPolygon_js.js.map +1 -0
- package/vendors-node_modules_ol_geom_js-node_modules_ol_geom_flat_length_js.js +769 -0
- package/vendors-node_modules_ol_geom_js-node_modules_ol_geom_flat_length_js.js.map +1 -0
- package/vendors-node_modules_ol_index_js.js +526 -675
- package/vendors-node_modules_ol_index_js.js.map +1 -1
- package/vendors-node_modules_ol_interaction_Draw_js.js +2777 -0
- package/vendors-node_modules_ol_interaction_Draw_js.js.map +1 -0
- package/vendors-node_modules_ol_interaction_Extent_js.js +586 -0
- package/vendors-node_modules_ol_interaction_Extent_js.js.map +1 -0
- package/vendors-node_modules_ol_interaction_Link_js.js +489 -0
- package/vendors-node_modules_ol_interaction_Link_js.js.map +1 -0
- package/vendors-node_modules_ol_interaction_Modify_js.js +1841 -0
- package/vendors-node_modules_ol_interaction_Modify_js.js.map +1 -0
- package/vendors-node_modules_ol_interaction_Select_js.js +623 -0
- package/vendors-node_modules_ol_interaction_Select_js.js.map +1 -0
- package/vendors-node_modules_ol_interaction_Snap_js.js +982 -0
- package/vendors-node_modules_ol_interaction_Snap_js.js.map +1 -0
- package/vendors-node_modules_ol_interaction_Translate_js.js +466 -0
- package/vendors-node_modules_ol_interaction_Translate_js.js.map +1 -0
- package/vendors-node_modules_ol_interaction_js.js +872 -0
- package/vendors-node_modules_ol_interaction_js.js.map +1 -0
- package/vendors-node_modules_ol_layer_Graticule_js.js +1374 -989
- package/vendors-node_modules_ol_layer_Graticule_js.js.map +1 -1
- package/vendors-node_modules_ol_render_Feature_js.js +546 -0
- package/vendors-node_modules_ol_render_Feature_js.js.map +1 -0
- package/vendors-node_modules_ol_render_canvas_BuilderGroup_js.js +897 -0
- package/vendors-node_modules_ol_render_canvas_BuilderGroup_js.js.map +1 -0
- package/vendors-node_modules_ol_render_canvas_Builder_js.js +907 -0
- package/vendors-node_modules_ol_render_canvas_Builder_js.js.map +1 -0
- package/vendors-node_modules_ol_render_canvas_ExecutorGroup_js.js +539 -0
- package/vendors-node_modules_ol_render_canvas_ExecutorGroup_js.js.map +1 -0
- package/vendors-node_modules_ol_render_canvas_Executor_js.js +1715 -0
- package/vendors-node_modules_ol_render_canvas_Executor_js.js.map +1 -0
- package/vendors-node_modules_ol_render_canvas_Immediate_js.js +1208 -0
- package/vendors-node_modules_ol_render_canvas_Immediate_js.js.map +1 -0
- package/vendors-node_modules_ol_render_canvas_TextBuilder_js.js +825 -0
- package/vendors-node_modules_ol_render_canvas_TextBuilder_js.js.map +1 -0
- package/vendors-node_modules_ol_renderer_canvas_Layer_js.js +654 -0
- package/vendors-node_modules_ol_renderer_canvas_Layer_js.js.map +1 -0
- package/vendors-node_modules_ol_renderer_canvas_VectorLayer_js.js +1044 -0
- package/vendors-node_modules_ol_renderer_canvas_VectorLayer_js.js.map +1 -0
- package/vendors-node_modules_ol_renderer_vector_js.js +460 -0
- package/vendors-node_modules_ol_renderer_vector_js.js.map +1 -0
- package/vendors-node_modules_ol_source_Vector_js.js +2091 -0
- package/vendors-node_modules_ol_source_Vector_js.js.map +1 -0
- package/node_modules_ol_ImageTile_js.js +0 -177
- package/node_modules_ol_ImageTile_js.js.map +0 -1
- package/node_modules_ol_render_js.js +0 -131
- package/node_modules_ol_render_js.js.map +0 -1
- package/node_modules_ol_structs_LRUCache_js.js +0 -275
- package/node_modules_ol_structs_LRUCache_js.js.map +0 -1
- package/node_modules_ol_tilecoord_js.js +0 -115
- package/node_modules_ol_tilecoord_js.js.map +0 -1
- package/vendors-node_modules_ol_TileCache_js.js +0 -461
- package/vendors-node_modules_ol_TileCache_js.js.map +0 -1
- package/vendors-node_modules_ol_Tile_js.js +0 -330
- package/vendors-node_modules_ol_Tile_js.js.map +0 -1
- package/vendors-node_modules_ol_style_Text_js.js +0 -509
- package/vendors-node_modules_ol_style_Text_js.js.map +0 -1
- package/vendors-node_modules_rbush_index_js.js +0 -531
- package/vendors-node_modules_rbush_index_js.js.map +0 -1
|
@@ -0,0 +1,574 @@
|
|
|
1
|
+
(self["webpackChunk_vaadin_bundles"] = self["webpackChunk_vaadin_bundles"] || []).push([["vendors-node_modules_ol_geom_LineString_js"],{
|
|
2
|
+
|
|
3
|
+
/***/ "./node_modules/ol/geom/LineString.js":
|
|
4
|
+
/*!********************************************!*\
|
|
5
|
+
!*** ./node_modules/ol/geom/LineString.js ***!
|
|
6
|
+
\********************************************/
|
|
7
|
+
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
8
|
+
|
|
9
|
+
__webpack_require__.r(__webpack_exports__);
|
|
10
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
11
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
12
|
+
/* harmony export */ });
|
|
13
|
+
/* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../array.js */ "./node_modules/ol/array.js");
|
|
14
|
+
/* harmony import */ var _extent_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../extent.js */ "./node_modules/ol/extent.js");
|
|
15
|
+
/* harmony import */ var _SimpleGeometry_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SimpleGeometry.js */ "./node_modules/ol/geom/SimpleGeometry.js");
|
|
16
|
+
/* harmony import */ var _flat_closest_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./flat/closest.js */ "./node_modules/ol/geom/flat/closest.js");
|
|
17
|
+
/* harmony import */ var _flat_deflate_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./flat/deflate.js */ "./node_modules/ol/geom/flat/deflate.js");
|
|
18
|
+
/* harmony import */ var _flat_inflate_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./flat/inflate.js */ "./node_modules/ol/geom/flat/inflate.js");
|
|
19
|
+
/* harmony import */ var _flat_interpolate_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./flat/interpolate.js */ "./node_modules/ol/geom/flat/interpolate.js");
|
|
20
|
+
/* harmony import */ var _flat_intersectsextent_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./flat/intersectsextent.js */ "./node_modules/ol/geom/flat/intersectsextent.js");
|
|
21
|
+
/* harmony import */ var _flat_length_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./flat/length.js */ "./node_modules/ol/geom/flat/length.js");
|
|
22
|
+
/* harmony import */ var _flat_segments_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./flat/segments.js */ "./node_modules/ol/geom/flat/segments.js");
|
|
23
|
+
/* harmony import */ var _flat_simplify_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./flat/simplify.js */ "./node_modules/ol/geom/flat/simplify.js");
|
|
24
|
+
/**
|
|
25
|
+
* @module ol/geom/LineString
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* @classdesc
|
|
41
|
+
* Linestring geometry.
|
|
42
|
+
*
|
|
43
|
+
* @api
|
|
44
|
+
*/
|
|
45
|
+
class LineString extends _SimpleGeometry_js__WEBPACK_IMPORTED_MODULE_0__["default"] {
|
|
46
|
+
/**
|
|
47
|
+
* @param {Array<import("../coordinate.js").Coordinate>|Array<number>} coordinates Coordinates.
|
|
48
|
+
* For internal use, flat coordinates in combination with `layout` are also accepted.
|
|
49
|
+
* @param {import("./Geometry.js").GeometryLayout} [layout] Layout.
|
|
50
|
+
*/
|
|
51
|
+
constructor(coordinates, layout) {
|
|
52
|
+
super();
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* @private
|
|
56
|
+
* @type {import("../coordinate.js").Coordinate|null}
|
|
57
|
+
*/
|
|
58
|
+
this.flatMidpoint_ = null;
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* @private
|
|
62
|
+
* @type {number}
|
|
63
|
+
*/
|
|
64
|
+
this.flatMidpointRevision_ = -1;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* @private
|
|
68
|
+
* @type {number}
|
|
69
|
+
*/
|
|
70
|
+
this.maxDelta_ = -1;
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* @private
|
|
74
|
+
* @type {number}
|
|
75
|
+
*/
|
|
76
|
+
this.maxDeltaRevision_ = -1;
|
|
77
|
+
|
|
78
|
+
if (layout !== undefined && !Array.isArray(coordinates[0])) {
|
|
79
|
+
this.setFlatCoordinates(
|
|
80
|
+
layout,
|
|
81
|
+
/** @type {Array<number>} */ (coordinates),
|
|
82
|
+
);
|
|
83
|
+
} else {
|
|
84
|
+
this.setCoordinates(
|
|
85
|
+
/** @type {Array<import("../coordinate.js").Coordinate>} */ (
|
|
86
|
+
coordinates
|
|
87
|
+
),
|
|
88
|
+
layout,
|
|
89
|
+
);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Append the passed coordinate to the coordinates of the linestring.
|
|
95
|
+
* @param {import("../coordinate.js").Coordinate} coordinate Coordinate.
|
|
96
|
+
* @api
|
|
97
|
+
*/
|
|
98
|
+
appendCoordinate(coordinate) {
|
|
99
|
+
(0,_array_js__WEBPACK_IMPORTED_MODULE_1__.extend)(this.flatCoordinates, coordinate);
|
|
100
|
+
this.changed();
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Make a complete copy of the geometry.
|
|
105
|
+
* @return {!LineString} Clone.
|
|
106
|
+
* @api
|
|
107
|
+
* @override
|
|
108
|
+
*/
|
|
109
|
+
clone() {
|
|
110
|
+
const lineString = new LineString(
|
|
111
|
+
this.flatCoordinates.slice(),
|
|
112
|
+
this.layout,
|
|
113
|
+
);
|
|
114
|
+
lineString.applyProperties(this);
|
|
115
|
+
return lineString;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* @param {number} x X.
|
|
120
|
+
* @param {number} y Y.
|
|
121
|
+
* @param {import("../coordinate.js").Coordinate} closestPoint Closest point.
|
|
122
|
+
* @param {number} minSquaredDistance Minimum squared distance.
|
|
123
|
+
* @return {number} Minimum squared distance.
|
|
124
|
+
* @override
|
|
125
|
+
*/
|
|
126
|
+
closestPointXY(x, y, closestPoint, minSquaredDistance) {
|
|
127
|
+
if (minSquaredDistance < (0,_extent_js__WEBPACK_IMPORTED_MODULE_2__.closestSquaredDistanceXY)(this.getExtent(), x, y)) {
|
|
128
|
+
return minSquaredDistance;
|
|
129
|
+
}
|
|
130
|
+
if (this.maxDeltaRevision_ != this.getRevision()) {
|
|
131
|
+
this.maxDelta_ = Math.sqrt(
|
|
132
|
+
(0,_flat_closest_js__WEBPACK_IMPORTED_MODULE_3__.maxSquaredDelta)(
|
|
133
|
+
this.flatCoordinates,
|
|
134
|
+
0,
|
|
135
|
+
this.flatCoordinates.length,
|
|
136
|
+
this.stride,
|
|
137
|
+
0,
|
|
138
|
+
),
|
|
139
|
+
);
|
|
140
|
+
this.maxDeltaRevision_ = this.getRevision();
|
|
141
|
+
}
|
|
142
|
+
return (0,_flat_closest_js__WEBPACK_IMPORTED_MODULE_3__.assignClosestPoint)(
|
|
143
|
+
this.flatCoordinates,
|
|
144
|
+
0,
|
|
145
|
+
this.flatCoordinates.length,
|
|
146
|
+
this.stride,
|
|
147
|
+
this.maxDelta_,
|
|
148
|
+
false,
|
|
149
|
+
x,
|
|
150
|
+
y,
|
|
151
|
+
closestPoint,
|
|
152
|
+
minSquaredDistance,
|
|
153
|
+
);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Iterate over each segment, calling the provided callback.
|
|
158
|
+
* If the callback returns a truthy value the function returns that
|
|
159
|
+
* value immediately. Otherwise the function returns `false`.
|
|
160
|
+
*
|
|
161
|
+
* @param {function(this: S, import("../coordinate.js").Coordinate, import("../coordinate.js").Coordinate): T} callback Function
|
|
162
|
+
* called for each segment. The function will receive two arguments, the start and end coordinates of the segment.
|
|
163
|
+
* @return {T|boolean} Value.
|
|
164
|
+
* @template T,S
|
|
165
|
+
* @api
|
|
166
|
+
*/
|
|
167
|
+
forEachSegment(callback) {
|
|
168
|
+
return (0,_flat_segments_js__WEBPACK_IMPORTED_MODULE_4__.forEach)(
|
|
169
|
+
this.flatCoordinates,
|
|
170
|
+
0,
|
|
171
|
+
this.flatCoordinates.length,
|
|
172
|
+
this.stride,
|
|
173
|
+
callback,
|
|
174
|
+
);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* Returns the coordinate at `m` using linear interpolation, or `null` if no
|
|
179
|
+
* such coordinate exists.
|
|
180
|
+
*
|
|
181
|
+
* `extrapolate` controls extrapolation beyond the range of Ms in the
|
|
182
|
+
* MultiLineString. If `extrapolate` is `true` then Ms less than the first
|
|
183
|
+
* M will return the first coordinate and Ms greater than the last M will
|
|
184
|
+
* return the last coordinate.
|
|
185
|
+
*
|
|
186
|
+
* @param {number} m M.
|
|
187
|
+
* @param {boolean} [extrapolate] Extrapolate. Default is `false`.
|
|
188
|
+
* @return {import("../coordinate.js").Coordinate|null} Coordinate.
|
|
189
|
+
* @api
|
|
190
|
+
*/
|
|
191
|
+
getCoordinateAtM(m, extrapolate) {
|
|
192
|
+
if (this.layout != 'XYM' && this.layout != 'XYZM') {
|
|
193
|
+
return null;
|
|
194
|
+
}
|
|
195
|
+
extrapolate = extrapolate !== undefined ? extrapolate : false;
|
|
196
|
+
return (0,_flat_interpolate_js__WEBPACK_IMPORTED_MODULE_5__.lineStringCoordinateAtM)(
|
|
197
|
+
this.flatCoordinates,
|
|
198
|
+
0,
|
|
199
|
+
this.flatCoordinates.length,
|
|
200
|
+
this.stride,
|
|
201
|
+
m,
|
|
202
|
+
extrapolate,
|
|
203
|
+
);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* Return the coordinates of the linestring.
|
|
208
|
+
* @return {Array<import("../coordinate.js").Coordinate>} Coordinates.
|
|
209
|
+
* @api
|
|
210
|
+
* @override
|
|
211
|
+
*/
|
|
212
|
+
getCoordinates() {
|
|
213
|
+
return (0,_flat_inflate_js__WEBPACK_IMPORTED_MODULE_6__.inflateCoordinates)(
|
|
214
|
+
this.flatCoordinates,
|
|
215
|
+
0,
|
|
216
|
+
this.flatCoordinates.length,
|
|
217
|
+
this.stride,
|
|
218
|
+
);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* Return the coordinate at the provided fraction along the linestring.
|
|
223
|
+
* The `fraction` is a number between 0 and 1, where 0 is the start of the
|
|
224
|
+
* linestring and 1 is the end.
|
|
225
|
+
* @param {number} fraction Fraction.
|
|
226
|
+
* @param {import("../coordinate.js").Coordinate} [dest] Optional coordinate whose values will
|
|
227
|
+
* be modified. If not provided, a new coordinate will be returned.
|
|
228
|
+
* @return {import("../coordinate.js").Coordinate} Coordinate of the interpolated point.
|
|
229
|
+
* @api
|
|
230
|
+
*/
|
|
231
|
+
getCoordinateAt(fraction, dest) {
|
|
232
|
+
return (0,_flat_interpolate_js__WEBPACK_IMPORTED_MODULE_5__.interpolatePoint)(
|
|
233
|
+
this.flatCoordinates,
|
|
234
|
+
0,
|
|
235
|
+
this.flatCoordinates.length,
|
|
236
|
+
this.stride,
|
|
237
|
+
fraction,
|
|
238
|
+
dest,
|
|
239
|
+
this.stride,
|
|
240
|
+
);
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
/**
|
|
244
|
+
* Return the length of the linestring on projected plane.
|
|
245
|
+
* @return {number} Length (on projected plane).
|
|
246
|
+
* @api
|
|
247
|
+
*/
|
|
248
|
+
getLength() {
|
|
249
|
+
return (0,_flat_length_js__WEBPACK_IMPORTED_MODULE_7__.lineStringLength)(
|
|
250
|
+
this.flatCoordinates,
|
|
251
|
+
0,
|
|
252
|
+
this.flatCoordinates.length,
|
|
253
|
+
this.stride,
|
|
254
|
+
);
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* @return {Array<number>} Flat midpoint.
|
|
259
|
+
*/
|
|
260
|
+
getFlatMidpoint() {
|
|
261
|
+
if (this.flatMidpointRevision_ != this.getRevision()) {
|
|
262
|
+
this.flatMidpoint_ = this.getCoordinateAt(
|
|
263
|
+
0.5,
|
|
264
|
+
this.flatMidpoint_ ?? undefined,
|
|
265
|
+
);
|
|
266
|
+
this.flatMidpointRevision_ = this.getRevision();
|
|
267
|
+
}
|
|
268
|
+
return /** @type {Array<number>} */ (this.flatMidpoint_);
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
/**
|
|
272
|
+
* @param {number} squaredTolerance Squared tolerance.
|
|
273
|
+
* @return {LineString} Simplified LineString.
|
|
274
|
+
* @protected
|
|
275
|
+
* @override
|
|
276
|
+
*/
|
|
277
|
+
getSimplifiedGeometryInternal(squaredTolerance) {
|
|
278
|
+
/** @type {Array<number>} */
|
|
279
|
+
const simplifiedFlatCoordinates = [];
|
|
280
|
+
simplifiedFlatCoordinates.length = (0,_flat_simplify_js__WEBPACK_IMPORTED_MODULE_8__.douglasPeucker)(
|
|
281
|
+
this.flatCoordinates,
|
|
282
|
+
0,
|
|
283
|
+
this.flatCoordinates.length,
|
|
284
|
+
this.stride,
|
|
285
|
+
squaredTolerance,
|
|
286
|
+
simplifiedFlatCoordinates,
|
|
287
|
+
0,
|
|
288
|
+
);
|
|
289
|
+
return new LineString(simplifiedFlatCoordinates, 'XY');
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
/**
|
|
293
|
+
* Get the type of this geometry.
|
|
294
|
+
* @return {import("./Geometry.js").Type} Geometry type.
|
|
295
|
+
* @api
|
|
296
|
+
* @override
|
|
297
|
+
*/
|
|
298
|
+
getType() {
|
|
299
|
+
return 'LineString';
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
/**
|
|
303
|
+
* Test if the geometry and the passed extent intersect.
|
|
304
|
+
* @param {import("../extent.js").Extent} extent Extent.
|
|
305
|
+
* @return {boolean} `true` if the geometry and the extent intersect.
|
|
306
|
+
* @api
|
|
307
|
+
* @override
|
|
308
|
+
*/
|
|
309
|
+
intersectsExtent(extent) {
|
|
310
|
+
return (0,_flat_intersectsextent_js__WEBPACK_IMPORTED_MODULE_9__.intersectsLineString)(
|
|
311
|
+
this.flatCoordinates,
|
|
312
|
+
0,
|
|
313
|
+
this.flatCoordinates.length,
|
|
314
|
+
this.stride,
|
|
315
|
+
extent,
|
|
316
|
+
this.getExtent(),
|
|
317
|
+
);
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
/**
|
|
321
|
+
* Set the coordinates of the linestring.
|
|
322
|
+
* @param {!Array<import("../coordinate.js").Coordinate>} coordinates Coordinates.
|
|
323
|
+
* @param {import("./Geometry.js").GeometryLayout} [layout] Layout.
|
|
324
|
+
* @api
|
|
325
|
+
* @override
|
|
326
|
+
*/
|
|
327
|
+
setCoordinates(coordinates, layout) {
|
|
328
|
+
this.setLayout(layout, coordinates, 1);
|
|
329
|
+
if (!this.flatCoordinates) {
|
|
330
|
+
this.flatCoordinates = [];
|
|
331
|
+
}
|
|
332
|
+
this.flatCoordinates.length = (0,_flat_deflate_js__WEBPACK_IMPORTED_MODULE_10__.deflateCoordinates)(
|
|
333
|
+
this.flatCoordinates,
|
|
334
|
+
0,
|
|
335
|
+
coordinates,
|
|
336
|
+
this.stride,
|
|
337
|
+
);
|
|
338
|
+
this.changed();
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (LineString);
|
|
343
|
+
|
|
344
|
+
|
|
345
|
+
/***/ }),
|
|
346
|
+
|
|
347
|
+
/***/ "./node_modules/ol/geom/flat/interpolate.js":
|
|
348
|
+
/*!**************************************************!*\
|
|
349
|
+
!*** ./node_modules/ol/geom/flat/interpolate.js ***!
|
|
350
|
+
\**************************************************/
|
|
351
|
+
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
352
|
+
|
|
353
|
+
__webpack_require__.r(__webpack_exports__);
|
|
354
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
355
|
+
/* harmony export */ "interpolatePoint": () => (/* binding */ interpolatePoint),
|
|
356
|
+
/* harmony export */ "lineStringCoordinateAtM": () => (/* binding */ lineStringCoordinateAtM),
|
|
357
|
+
/* harmony export */ "lineStringsCoordinateAtM": () => (/* binding */ lineStringsCoordinateAtM)
|
|
358
|
+
/* harmony export */ });
|
|
359
|
+
/* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../array.js */ "./node_modules/ol/array.js");
|
|
360
|
+
/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../math.js */ "./node_modules/ol/math.js");
|
|
361
|
+
/**
|
|
362
|
+
* @module ol/geom/flat/interpolate
|
|
363
|
+
*/
|
|
364
|
+
|
|
365
|
+
|
|
366
|
+
|
|
367
|
+
/**
|
|
368
|
+
* @param {Array<number>} flatCoordinates Flat coordinates.
|
|
369
|
+
* @param {number} offset Offset.
|
|
370
|
+
* @param {number} end End.
|
|
371
|
+
* @param {number} stride Stride.
|
|
372
|
+
* @param {number} fraction Fraction.
|
|
373
|
+
* @param {Array<number>} [dest] Destination.
|
|
374
|
+
* @param {number} [dimension] Destination dimension (default is `2`)
|
|
375
|
+
* @return {Array<number>} Destination.
|
|
376
|
+
*/
|
|
377
|
+
function interpolatePoint(
|
|
378
|
+
flatCoordinates,
|
|
379
|
+
offset,
|
|
380
|
+
end,
|
|
381
|
+
stride,
|
|
382
|
+
fraction,
|
|
383
|
+
dest,
|
|
384
|
+
dimension,
|
|
385
|
+
) {
|
|
386
|
+
let o, t;
|
|
387
|
+
const n = (end - offset) / stride;
|
|
388
|
+
if (n === 1) {
|
|
389
|
+
o = offset;
|
|
390
|
+
} else if (n === 2) {
|
|
391
|
+
o = offset;
|
|
392
|
+
t = fraction;
|
|
393
|
+
} else if (n !== 0) {
|
|
394
|
+
let x1 = flatCoordinates[offset];
|
|
395
|
+
let y1 = flatCoordinates[offset + 1];
|
|
396
|
+
let length = 0;
|
|
397
|
+
const cumulativeLengths = [0];
|
|
398
|
+
for (let i = offset + stride; i < end; i += stride) {
|
|
399
|
+
const x2 = flatCoordinates[i];
|
|
400
|
+
const y2 = flatCoordinates[i + 1];
|
|
401
|
+
length += Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
|
|
402
|
+
cumulativeLengths.push(length);
|
|
403
|
+
x1 = x2;
|
|
404
|
+
y1 = y2;
|
|
405
|
+
}
|
|
406
|
+
const target = fraction * length;
|
|
407
|
+
const index = (0,_array_js__WEBPACK_IMPORTED_MODULE_0__.binarySearch)(cumulativeLengths, target);
|
|
408
|
+
if (index < 0) {
|
|
409
|
+
t =
|
|
410
|
+
(target - cumulativeLengths[-index - 2]) /
|
|
411
|
+
(cumulativeLengths[-index - 1] - cumulativeLengths[-index - 2]);
|
|
412
|
+
o = offset + (-index - 2) * stride;
|
|
413
|
+
} else {
|
|
414
|
+
o = offset + index * stride;
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
dimension = dimension > 1 ? dimension : 2;
|
|
418
|
+
dest = dest ? dest : new Array(dimension);
|
|
419
|
+
for (let i = 0; i < dimension; ++i) {
|
|
420
|
+
dest[i] =
|
|
421
|
+
o === undefined
|
|
422
|
+
? NaN
|
|
423
|
+
: t === undefined
|
|
424
|
+
? flatCoordinates[o + i]
|
|
425
|
+
: (0,_math_js__WEBPACK_IMPORTED_MODULE_1__.lerp)(flatCoordinates[o + i], flatCoordinates[o + stride + i], t);
|
|
426
|
+
}
|
|
427
|
+
return dest;
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
/**
|
|
431
|
+
* @param {Array<number>} flatCoordinates Flat coordinates.
|
|
432
|
+
* @param {number} offset Offset.
|
|
433
|
+
* @param {number} end End.
|
|
434
|
+
* @param {number} stride Stride.
|
|
435
|
+
* @param {number} m M.
|
|
436
|
+
* @param {boolean} extrapolate Extrapolate.
|
|
437
|
+
* @return {import("../../coordinate.js").Coordinate|null} Coordinate.
|
|
438
|
+
*/
|
|
439
|
+
function lineStringCoordinateAtM(
|
|
440
|
+
flatCoordinates,
|
|
441
|
+
offset,
|
|
442
|
+
end,
|
|
443
|
+
stride,
|
|
444
|
+
m,
|
|
445
|
+
extrapolate,
|
|
446
|
+
) {
|
|
447
|
+
if (end == offset) {
|
|
448
|
+
return null;
|
|
449
|
+
}
|
|
450
|
+
let coordinate;
|
|
451
|
+
if (m < flatCoordinates[offset + stride - 1]) {
|
|
452
|
+
if (extrapolate) {
|
|
453
|
+
coordinate = flatCoordinates.slice(offset, offset + stride);
|
|
454
|
+
coordinate[stride - 1] = m;
|
|
455
|
+
return coordinate;
|
|
456
|
+
}
|
|
457
|
+
return null;
|
|
458
|
+
}
|
|
459
|
+
if (flatCoordinates[end - 1] < m) {
|
|
460
|
+
if (extrapolate) {
|
|
461
|
+
coordinate = flatCoordinates.slice(end - stride, end);
|
|
462
|
+
coordinate[stride - 1] = m;
|
|
463
|
+
return coordinate;
|
|
464
|
+
}
|
|
465
|
+
return null;
|
|
466
|
+
}
|
|
467
|
+
// FIXME use O(1) search
|
|
468
|
+
if (m == flatCoordinates[offset + stride - 1]) {
|
|
469
|
+
return flatCoordinates.slice(offset, offset + stride);
|
|
470
|
+
}
|
|
471
|
+
let lo = offset / stride;
|
|
472
|
+
let hi = end / stride;
|
|
473
|
+
while (lo < hi) {
|
|
474
|
+
const mid = (lo + hi) >> 1;
|
|
475
|
+
if (m < flatCoordinates[(mid + 1) * stride - 1]) {
|
|
476
|
+
hi = mid;
|
|
477
|
+
} else {
|
|
478
|
+
lo = mid + 1;
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
const m0 = flatCoordinates[lo * stride - 1];
|
|
482
|
+
if (m == m0) {
|
|
483
|
+
return flatCoordinates.slice((lo - 1) * stride, (lo - 1) * stride + stride);
|
|
484
|
+
}
|
|
485
|
+
const m1 = flatCoordinates[(lo + 1) * stride - 1];
|
|
486
|
+
const t = (m - m0) / (m1 - m0);
|
|
487
|
+
coordinate = [];
|
|
488
|
+
for (let i = 0; i < stride - 1; ++i) {
|
|
489
|
+
coordinate.push(
|
|
490
|
+
(0,_math_js__WEBPACK_IMPORTED_MODULE_1__.lerp)(
|
|
491
|
+
flatCoordinates[(lo - 1) * stride + i],
|
|
492
|
+
flatCoordinates[lo * stride + i],
|
|
493
|
+
t,
|
|
494
|
+
),
|
|
495
|
+
);
|
|
496
|
+
}
|
|
497
|
+
coordinate.push(m);
|
|
498
|
+
return coordinate;
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
/**
|
|
502
|
+
* @param {Array<number>} flatCoordinates Flat coordinates.
|
|
503
|
+
* @param {number} offset Offset.
|
|
504
|
+
* @param {Array<number>} ends Ends.
|
|
505
|
+
* @param {number} stride Stride.
|
|
506
|
+
* @param {number} m M.
|
|
507
|
+
* @param {boolean} extrapolate Extrapolate.
|
|
508
|
+
* @param {boolean} interpolate Interpolate.
|
|
509
|
+
* @return {import("../../coordinate.js").Coordinate|null} Coordinate.
|
|
510
|
+
*/
|
|
511
|
+
function lineStringsCoordinateAtM(
|
|
512
|
+
flatCoordinates,
|
|
513
|
+
offset,
|
|
514
|
+
ends,
|
|
515
|
+
stride,
|
|
516
|
+
m,
|
|
517
|
+
extrapolate,
|
|
518
|
+
interpolate,
|
|
519
|
+
) {
|
|
520
|
+
if (interpolate) {
|
|
521
|
+
return lineStringCoordinateAtM(
|
|
522
|
+
flatCoordinates,
|
|
523
|
+
offset,
|
|
524
|
+
ends[ends.length - 1],
|
|
525
|
+
stride,
|
|
526
|
+
m,
|
|
527
|
+
extrapolate,
|
|
528
|
+
);
|
|
529
|
+
}
|
|
530
|
+
let coordinate;
|
|
531
|
+
if (m < flatCoordinates[stride - 1]) {
|
|
532
|
+
if (extrapolate) {
|
|
533
|
+
coordinate = flatCoordinates.slice(0, stride);
|
|
534
|
+
coordinate[stride - 1] = m;
|
|
535
|
+
return coordinate;
|
|
536
|
+
}
|
|
537
|
+
return null;
|
|
538
|
+
}
|
|
539
|
+
if (flatCoordinates[flatCoordinates.length - 1] < m) {
|
|
540
|
+
if (extrapolate) {
|
|
541
|
+
coordinate = flatCoordinates.slice(flatCoordinates.length - stride);
|
|
542
|
+
coordinate[stride - 1] = m;
|
|
543
|
+
return coordinate;
|
|
544
|
+
}
|
|
545
|
+
return null;
|
|
546
|
+
}
|
|
547
|
+
for (let i = 0, ii = ends.length; i < ii; ++i) {
|
|
548
|
+
const end = ends[i];
|
|
549
|
+
if (offset == end) {
|
|
550
|
+
continue;
|
|
551
|
+
}
|
|
552
|
+
if (m < flatCoordinates[offset + stride - 1]) {
|
|
553
|
+
return null;
|
|
554
|
+
}
|
|
555
|
+
if (m <= flatCoordinates[end - 1]) {
|
|
556
|
+
return lineStringCoordinateAtM(
|
|
557
|
+
flatCoordinates,
|
|
558
|
+
offset,
|
|
559
|
+
end,
|
|
560
|
+
stride,
|
|
561
|
+
m,
|
|
562
|
+
false,
|
|
563
|
+
);
|
|
564
|
+
}
|
|
565
|
+
offset = end;
|
|
566
|
+
}
|
|
567
|
+
return null;
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
|
|
571
|
+
/***/ })
|
|
572
|
+
|
|
573
|
+
}])
|
|
574
|
+
//# sourceMappingURL=vendors-node_modules_ol_geom_LineString_js.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vendors-node_modules_ol_geom_LineString_js.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACmC;AACmB;AACL;AACqB;AACjB;AACA;AAC2B;AAChB;AACd;AACW;AACX;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,0DAAc;AACvC;AACA,aAAa,4DAA4D;AACzE;AACA,aAAa,wCAAwC;AACrD;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,eAAe;AAClC;AACA,MAAM;AACN;AACA,mBAAmB,8CAA8C;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,uCAAuC;AACpD;AACA;AACA;AACA,IAAI,iDAAM;AACV;AACA;;AAEA;AACA;AACA,cAAc,aAAa;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,uCAAuC;AACpD,aAAa,QAAQ;AACrB,cAAc,QAAQ;AACtB;AACA;AACA;AACA,6BAA6B,oEAAwB;AACrD;AACA;AACA;AACA;AACA,QAAQ,iEAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oEAAkB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,oGAAoG;AACjH;AACA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA,WAAW,0DAAc;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB,cAAc,4CAA4C;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,6EAAuB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,8CAA8C;AAC5D;AACA;AACA;AACA;AACA,WAAW,oEAAkB;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,uCAAuC;AACpD;AACA,cAAc,uCAAuC;AACrD;AACA;AACA;AACA,WAAW,sEAAgB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA,WAAW,iEAAgB;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,eAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,eAAe;AACrC;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B;AACA,uCAAuC,iEAAc;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,8BAA8B;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,+BAA+B;AAC5C,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA,WAAW,+EAAoB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,+CAA+C;AAC5D,aAAa,wCAAwC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,qEAAkB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,UAAU,EAAC;;;;;;;;;;;;;;;;;;;AC9T1B;AACA;AACA;AAC4C;AACT;;AAEnC;AACA,WAAW,eAAe;AAC1B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,eAAe;AAC1B,WAAW,QAAQ;AACnB,YAAY,eAAe;AAC3B;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,kCAAkC,SAAS;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,uDAAY;AAC9B;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,kBAAkB,eAAe;AACjC;AACA;AACA;AACA;AACA;AACA,YAAY,8CAAI;AAChB;AACA;AACA;;AAEA;AACA,WAAW,eAAe;AAC1B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,YAAY,+CAA+C;AAC3D;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA,MAAM,8CAAI;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,eAAe;AAC1B,WAAW,QAAQ;AACnB,WAAW,eAAe;AAC1B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,YAAY,+CAA+C;AAC3D;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,QAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["webpack://@vaadin/bundles/./node_modules/ol/geom/LineString.js","webpack://@vaadin/bundles/./node_modules/ol/geom/flat/interpolate.js"],"sourcesContent":["/**\n * @module ol/geom/LineString\n */\nimport {extend} from '../array.js';\nimport {closestSquaredDistanceXY} from '../extent.js';\nimport SimpleGeometry from './SimpleGeometry.js';\nimport {assignClosestPoint, maxSquaredDelta} from './flat/closest.js';\nimport {deflateCoordinates} from './flat/deflate.js';\nimport {inflateCoordinates} from './flat/inflate.js';\nimport {interpolatePoint, lineStringCoordinateAtM} from './flat/interpolate.js';\nimport {intersectsLineString} from './flat/intersectsextent.js';\nimport {lineStringLength} from './flat/length.js';\nimport {forEach as forEachSegment} from './flat/segments.js';\nimport {douglasPeucker} from './flat/simplify.js';\n\n/**\n * @classdesc\n * Linestring geometry.\n *\n * @api\n */\nclass LineString extends SimpleGeometry {\n /**\n * @param {Array<import(\"../coordinate.js\").Coordinate>|Array<number>} coordinates Coordinates.\n * For internal use, flat coordinates in combination with `layout` are also accepted.\n * @param {import(\"./Geometry.js\").GeometryLayout} [layout] Layout.\n */\n constructor(coordinates, layout) {\n super();\n\n /**\n * @private\n * @type {import(\"../coordinate.js\").Coordinate|null}\n */\n this.flatMidpoint_ = null;\n\n /**\n * @private\n * @type {number}\n */\n this.flatMidpointRevision_ = -1;\n\n /**\n * @private\n * @type {number}\n */\n this.maxDelta_ = -1;\n\n /**\n * @private\n * @type {number}\n */\n this.maxDeltaRevision_ = -1;\n\n if (layout !== undefined && !Array.isArray(coordinates[0])) {\n this.setFlatCoordinates(\n layout,\n /** @type {Array<number>} */ (coordinates),\n );\n } else {\n this.setCoordinates(\n /** @type {Array<import(\"../coordinate.js\").Coordinate>} */ (\n coordinates\n ),\n layout,\n );\n }\n }\n\n /**\n * Append the passed coordinate to the coordinates of the linestring.\n * @param {import(\"../coordinate.js\").Coordinate} coordinate Coordinate.\n * @api\n */\n appendCoordinate(coordinate) {\n extend(this.flatCoordinates, coordinate);\n this.changed();\n }\n\n /**\n * Make a complete copy of the geometry.\n * @return {!LineString} Clone.\n * @api\n * @override\n */\n clone() {\n const lineString = new LineString(\n this.flatCoordinates.slice(),\n this.layout,\n );\n lineString.applyProperties(this);\n return lineString;\n }\n\n /**\n * @param {number} x X.\n * @param {number} y Y.\n * @param {import(\"../coordinate.js\").Coordinate} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @return {number} Minimum squared distance.\n * @override\n */\n closestPointXY(x, y, closestPoint, minSquaredDistance) {\n if (minSquaredDistance < closestSquaredDistanceXY(this.getExtent(), x, y)) {\n return minSquaredDistance;\n }\n if (this.maxDeltaRevision_ != this.getRevision()) {\n this.maxDelta_ = Math.sqrt(\n maxSquaredDelta(\n this.flatCoordinates,\n 0,\n this.flatCoordinates.length,\n this.stride,\n 0,\n ),\n );\n this.maxDeltaRevision_ = this.getRevision();\n }\n return assignClosestPoint(\n this.flatCoordinates,\n 0,\n this.flatCoordinates.length,\n this.stride,\n this.maxDelta_,\n false,\n x,\n y,\n closestPoint,\n minSquaredDistance,\n );\n }\n\n /**\n * Iterate over each segment, calling the provided callback.\n * If the callback returns a truthy value the function returns that\n * value immediately. Otherwise the function returns `false`.\n *\n * @param {function(this: S, import(\"../coordinate.js\").Coordinate, import(\"../coordinate.js\").Coordinate): T} callback Function\n * called for each segment. The function will receive two arguments, the start and end coordinates of the segment.\n * @return {T|boolean} Value.\n * @template T,S\n * @api\n */\n forEachSegment(callback) {\n return forEachSegment(\n this.flatCoordinates,\n 0,\n this.flatCoordinates.length,\n this.stride,\n callback,\n );\n }\n\n /**\n * Returns the coordinate at `m` using linear interpolation, or `null` if no\n * such coordinate exists.\n *\n * `extrapolate` controls extrapolation beyond the range of Ms in the\n * MultiLineString. If `extrapolate` is `true` then Ms less than the first\n * M will return the first coordinate and Ms greater than the last M will\n * return the last coordinate.\n *\n * @param {number} m M.\n * @param {boolean} [extrapolate] Extrapolate. Default is `false`.\n * @return {import(\"../coordinate.js\").Coordinate|null} Coordinate.\n * @api\n */\n getCoordinateAtM(m, extrapolate) {\n if (this.layout != 'XYM' && this.layout != 'XYZM') {\n return null;\n }\n extrapolate = extrapolate !== undefined ? extrapolate : false;\n return lineStringCoordinateAtM(\n this.flatCoordinates,\n 0,\n this.flatCoordinates.length,\n this.stride,\n m,\n extrapolate,\n );\n }\n\n /**\n * Return the coordinates of the linestring.\n * @return {Array<import(\"../coordinate.js\").Coordinate>} Coordinates.\n * @api\n * @override\n */\n getCoordinates() {\n return inflateCoordinates(\n this.flatCoordinates,\n 0,\n this.flatCoordinates.length,\n this.stride,\n );\n }\n\n /**\n * Return the coordinate at the provided fraction along the linestring.\n * The `fraction` is a number between 0 and 1, where 0 is the start of the\n * linestring and 1 is the end.\n * @param {number} fraction Fraction.\n * @param {import(\"../coordinate.js\").Coordinate} [dest] Optional coordinate whose values will\n * be modified. If not provided, a new coordinate will be returned.\n * @return {import(\"../coordinate.js\").Coordinate} Coordinate of the interpolated point.\n * @api\n */\n getCoordinateAt(fraction, dest) {\n return interpolatePoint(\n this.flatCoordinates,\n 0,\n this.flatCoordinates.length,\n this.stride,\n fraction,\n dest,\n this.stride,\n );\n }\n\n /**\n * Return the length of the linestring on projected plane.\n * @return {number} Length (on projected plane).\n * @api\n */\n getLength() {\n return lineStringLength(\n this.flatCoordinates,\n 0,\n this.flatCoordinates.length,\n this.stride,\n );\n }\n\n /**\n * @return {Array<number>} Flat midpoint.\n */\n getFlatMidpoint() {\n if (this.flatMidpointRevision_ != this.getRevision()) {\n this.flatMidpoint_ = this.getCoordinateAt(\n 0.5,\n this.flatMidpoint_ ?? undefined,\n );\n this.flatMidpointRevision_ = this.getRevision();\n }\n return /** @type {Array<number>} */ (this.flatMidpoint_);\n }\n\n /**\n * @param {number} squaredTolerance Squared tolerance.\n * @return {LineString} Simplified LineString.\n * @protected\n * @override\n */\n getSimplifiedGeometryInternal(squaredTolerance) {\n /** @type {Array<number>} */\n const simplifiedFlatCoordinates = [];\n simplifiedFlatCoordinates.length = douglasPeucker(\n this.flatCoordinates,\n 0,\n this.flatCoordinates.length,\n this.stride,\n squaredTolerance,\n simplifiedFlatCoordinates,\n 0,\n );\n return new LineString(simplifiedFlatCoordinates, 'XY');\n }\n\n /**\n * Get the type of this geometry.\n * @return {import(\"./Geometry.js\").Type} Geometry type.\n * @api\n * @override\n */\n getType() {\n return 'LineString';\n }\n\n /**\n * Test if the geometry and the passed extent intersect.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @return {boolean} `true` if the geometry and the extent intersect.\n * @api\n * @override\n */\n intersectsExtent(extent) {\n return intersectsLineString(\n this.flatCoordinates,\n 0,\n this.flatCoordinates.length,\n this.stride,\n extent,\n this.getExtent(),\n );\n }\n\n /**\n * Set the coordinates of the linestring.\n * @param {!Array<import(\"../coordinate.js\").Coordinate>} coordinates Coordinates.\n * @param {import(\"./Geometry.js\").GeometryLayout} [layout] Layout.\n * @api\n * @override\n */\n setCoordinates(coordinates, layout) {\n this.setLayout(layout, coordinates, 1);\n if (!this.flatCoordinates) {\n this.flatCoordinates = [];\n }\n this.flatCoordinates.length = deflateCoordinates(\n this.flatCoordinates,\n 0,\n coordinates,\n this.stride,\n );\n this.changed();\n }\n}\n\nexport default LineString;\n","/**\n * @module ol/geom/flat/interpolate\n */\nimport {binarySearch} from '../../array.js';\nimport {lerp} from '../../math.js';\n\n/**\n * @param {Array<number>} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} fraction Fraction.\n * @param {Array<number>} [dest] Destination.\n * @param {number} [dimension] Destination dimension (default is `2`)\n * @return {Array<number>} Destination.\n */\nexport function interpolatePoint(\n flatCoordinates,\n offset,\n end,\n stride,\n fraction,\n dest,\n dimension,\n) {\n let o, t;\n const n = (end - offset) / stride;\n if (n === 1) {\n o = offset;\n } else if (n === 2) {\n o = offset;\n t = fraction;\n } else if (n !== 0) {\n let x1 = flatCoordinates[offset];\n let y1 = flatCoordinates[offset + 1];\n let length = 0;\n const cumulativeLengths = [0];\n for (let i = offset + stride; i < end; i += stride) {\n const x2 = flatCoordinates[i];\n const y2 = flatCoordinates[i + 1];\n length += Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));\n cumulativeLengths.push(length);\n x1 = x2;\n y1 = y2;\n }\n const target = fraction * length;\n const index = binarySearch(cumulativeLengths, target);\n if (index < 0) {\n t =\n (target - cumulativeLengths[-index - 2]) /\n (cumulativeLengths[-index - 1] - cumulativeLengths[-index - 2]);\n o = offset + (-index - 2) * stride;\n } else {\n o = offset + index * stride;\n }\n }\n dimension = dimension > 1 ? dimension : 2;\n dest = dest ? dest : new Array(dimension);\n for (let i = 0; i < dimension; ++i) {\n dest[i] =\n o === undefined\n ? NaN\n : t === undefined\n ? flatCoordinates[o + i]\n : lerp(flatCoordinates[o + i], flatCoordinates[o + stride + i], t);\n }\n return dest;\n}\n\n/**\n * @param {Array<number>} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} m M.\n * @param {boolean} extrapolate Extrapolate.\n * @return {import(\"../../coordinate.js\").Coordinate|null} Coordinate.\n */\nexport function lineStringCoordinateAtM(\n flatCoordinates,\n offset,\n end,\n stride,\n m,\n extrapolate,\n) {\n if (end == offset) {\n return null;\n }\n let coordinate;\n if (m < flatCoordinates[offset + stride - 1]) {\n if (extrapolate) {\n coordinate = flatCoordinates.slice(offset, offset + stride);\n coordinate[stride - 1] = m;\n return coordinate;\n }\n return null;\n }\n if (flatCoordinates[end - 1] < m) {\n if (extrapolate) {\n coordinate = flatCoordinates.slice(end - stride, end);\n coordinate[stride - 1] = m;\n return coordinate;\n }\n return null;\n }\n // FIXME use O(1) search\n if (m == flatCoordinates[offset + stride - 1]) {\n return flatCoordinates.slice(offset, offset + stride);\n }\n let lo = offset / stride;\n let hi = end / stride;\n while (lo < hi) {\n const mid = (lo + hi) >> 1;\n if (m < flatCoordinates[(mid + 1) * stride - 1]) {\n hi = mid;\n } else {\n lo = mid + 1;\n }\n }\n const m0 = flatCoordinates[lo * stride - 1];\n if (m == m0) {\n return flatCoordinates.slice((lo - 1) * stride, (lo - 1) * stride + stride);\n }\n const m1 = flatCoordinates[(lo + 1) * stride - 1];\n const t = (m - m0) / (m1 - m0);\n coordinate = [];\n for (let i = 0; i < stride - 1; ++i) {\n coordinate.push(\n lerp(\n flatCoordinates[(lo - 1) * stride + i],\n flatCoordinates[lo * stride + i],\n t,\n ),\n );\n }\n coordinate.push(m);\n return coordinate;\n}\n\n/**\n * @param {Array<number>} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array<number>} ends Ends.\n * @param {number} stride Stride.\n * @param {number} m M.\n * @param {boolean} extrapolate Extrapolate.\n * @param {boolean} interpolate Interpolate.\n * @return {import(\"../../coordinate.js\").Coordinate|null} Coordinate.\n */\nexport function lineStringsCoordinateAtM(\n flatCoordinates,\n offset,\n ends,\n stride,\n m,\n extrapolate,\n interpolate,\n) {\n if (interpolate) {\n return lineStringCoordinateAtM(\n flatCoordinates,\n offset,\n ends[ends.length - 1],\n stride,\n m,\n extrapolate,\n );\n }\n let coordinate;\n if (m < flatCoordinates[stride - 1]) {\n if (extrapolate) {\n coordinate = flatCoordinates.slice(0, stride);\n coordinate[stride - 1] = m;\n return coordinate;\n }\n return null;\n }\n if (flatCoordinates[flatCoordinates.length - 1] < m) {\n if (extrapolate) {\n coordinate = flatCoordinates.slice(flatCoordinates.length - stride);\n coordinate[stride - 1] = m;\n return coordinate;\n }\n return null;\n }\n for (let i = 0, ii = ends.length; i < ii; ++i) {\n const end = ends[i];\n if (offset == end) {\n continue;\n }\n if (m < flatCoordinates[offset + stride - 1]) {\n return null;\n }\n if (m <= flatCoordinates[end - 1]) {\n return lineStringCoordinateAtM(\n flatCoordinates,\n offset,\n end,\n stride,\n m,\n false,\n );\n }\n offset = end;\n }\n return null;\n}\n"],"names":[],"sourceRoot":""}
|