@turf/turf 7.3.0 → 7.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +117 -117
- package/turf.min.js +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@turf/turf",
|
|
3
|
-
"version": "7.3.
|
|
3
|
+
"version": "7.3.1",
|
|
4
4
|
"description": "a JavaScript library for performing geospatial operations with GeoJSON",
|
|
5
5
|
"author": "Turf Authors",
|
|
6
6
|
"license": "MIT",
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
],
|
|
69
69
|
"scripts": {
|
|
70
70
|
"build": "tsup --config ../../tsup.config.ts && rollup -c rollup.config.js",
|
|
71
|
-
"last-checks": "
|
|
71
|
+
"last-checks": "pnpm run last-checks:testjs && pnpm run last-checks:example",
|
|
72
72
|
"last-checks:example": "tsx test.example.js",
|
|
73
73
|
"last-checks:testjs": "tsx test.ts",
|
|
74
74
|
"test": "echo '@turf/turf tests run in the last-checks step'"
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
"@types/tape": "^5.8.1",
|
|
84
84
|
"camelcase": "^8.0.0",
|
|
85
85
|
"documentation": "^14.0.3",
|
|
86
|
-
"glob": "^11.0
|
|
86
|
+
"glob": "^11.1.0",
|
|
87
87
|
"rollup": "^4.40.1",
|
|
88
88
|
"rollup-plugin-polyfill-node": "^0.13.0",
|
|
89
89
|
"tape": "^5.9.0",
|
|
@@ -92,121 +92,121 @@
|
|
|
92
92
|
"typescript": "^5.8.3"
|
|
93
93
|
},
|
|
94
94
|
"dependencies": {
|
|
95
|
-
"@turf/along": "7.3.
|
|
96
|
-
"@turf/angle": "7.3.
|
|
97
|
-
"@turf/area": "7.3.
|
|
98
|
-
"@turf/bbox": "7.3.
|
|
99
|
-
"@turf/bbox-clip": "7.3.
|
|
100
|
-
"@turf/bbox-polygon": "7.3.
|
|
101
|
-
"@turf/bearing": "7.3.
|
|
102
|
-
"@turf/bezier-spline": "7.3.
|
|
103
|
-
"@turf/boolean-clockwise": "7.3.
|
|
104
|
-
"@turf/boolean-concave": "7.3.
|
|
105
|
-
"@turf/boolean-contains": "7.3.
|
|
106
|
-
"@turf/boolean-crosses": "7.3.
|
|
107
|
-
"@turf/boolean-disjoint": "7.3.
|
|
108
|
-
"@turf/boolean-equal": "7.3.
|
|
109
|
-
"@turf/boolean-intersects": "7.3.
|
|
110
|
-
"@turf/boolean-overlap": "7.3.
|
|
111
|
-
"@turf/boolean-parallel": "7.3.
|
|
112
|
-
"@turf/boolean-point-in-polygon": "7.3.
|
|
113
|
-
"@turf/boolean-point-on-line": "7.3.
|
|
114
|
-
"@turf/boolean-touches": "7.3.
|
|
115
|
-
"@turf/boolean-valid": "7.3.
|
|
116
|
-
"@turf/boolean-within": "7.3.
|
|
117
|
-
"@turf/buffer": "7.3.
|
|
118
|
-
"@turf/center": "7.3.
|
|
119
|
-
"@turf/center-mean": "7.3.
|
|
120
|
-
"@turf/center-median": "7.3.
|
|
121
|
-
"@turf/center-of-mass": "7.3.
|
|
122
|
-
"@turf/centroid": "7.3.
|
|
123
|
-
"@turf/circle": "7.3.
|
|
124
|
-
"@turf/clean-coords": "7.3.
|
|
125
|
-
"@turf/clone": "7.3.
|
|
126
|
-
"@turf/clusters": "7.3.
|
|
127
|
-
"@turf/clusters-dbscan": "7.3.
|
|
128
|
-
"@turf/clusters-kmeans": "7.3.
|
|
129
|
-
"@turf/collect": "7.3.
|
|
130
|
-
"@turf/combine": "7.3.
|
|
131
|
-
"@turf/concave": "7.3.
|
|
132
|
-
"@turf/convex": "7.3.
|
|
133
|
-
"@turf/destination": "7.3.
|
|
134
|
-
"@turf/difference": "7.3.
|
|
135
|
-
"@turf/dissolve": "7.3.
|
|
136
|
-
"@turf/distance": "7.3.
|
|
137
|
-
"@turf/distance-weight": "7.3.
|
|
138
|
-
"@turf/ellipse": "7.3.
|
|
139
|
-
"@turf/envelope": "7.3.
|
|
140
|
-
"@turf/explode": "7.3.
|
|
141
|
-
"@turf/flatten": "7.3.
|
|
142
|
-
"@turf/flip": "7.3.
|
|
143
|
-
"@turf/geojson-rbush": "7.3.
|
|
144
|
-
"@turf/great-circle": "7.3.
|
|
145
|
-
"@turf/helpers": "7.3.
|
|
146
|
-
"@turf/hex-grid": "7.3.
|
|
147
|
-
"@turf/interpolate": "7.3.
|
|
148
|
-
"@turf/intersect": "7.3.
|
|
149
|
-
"@turf/invariant": "7.3.
|
|
150
|
-
"@turf/isobands": "7.3.
|
|
151
|
-
"@turf/isolines": "7.3.
|
|
152
|
-
"@turf/kinks": "7.3.
|
|
153
|
-
"@turf/length": "7.3.
|
|
154
|
-
"@turf/line-arc": "7.3.
|
|
155
|
-
"@turf/line-chunk": "7.3.
|
|
156
|
-
"@turf/line-intersect": "7.3.
|
|
157
|
-
"@turf/line-offset": "7.3.
|
|
158
|
-
"@turf/line-overlap": "7.3.
|
|
159
|
-
"@turf/line-segment": "7.3.
|
|
160
|
-
"@turf/line-slice": "7.3.
|
|
161
|
-
"@turf/line-slice-along": "7.3.
|
|
162
|
-
"@turf/line-split": "7.3.
|
|
163
|
-
"@turf/line-to-polygon": "7.3.
|
|
164
|
-
"@turf/mask": "7.3.
|
|
165
|
-
"@turf/meta": "7.3.
|
|
166
|
-
"@turf/midpoint": "7.3.
|
|
167
|
-
"@turf/moran-index": "7.3.
|
|
168
|
-
"@turf/nearest-neighbor-analysis": "7.3.
|
|
169
|
-
"@turf/nearest-point": "7.3.
|
|
170
|
-
"@turf/nearest-point-on-line": "7.3.
|
|
171
|
-
"@turf/nearest-point-to-line": "7.3.
|
|
172
|
-
"@turf/planepoint": "7.3.
|
|
173
|
-
"@turf/point-grid": "7.3.
|
|
174
|
-
"@turf/point-on-feature": "7.3.
|
|
175
|
-
"@turf/point-to-line-distance": "7.3.
|
|
176
|
-
"@turf/point-to-polygon-distance": "7.3.
|
|
177
|
-
"@turf/points-within-polygon": "7.3.
|
|
178
|
-
"@turf/polygon-smooth": "7.3.
|
|
179
|
-
"@turf/polygon-tangents": "7.3.
|
|
180
|
-
"@turf/polygon-to-line": "7.3.
|
|
181
|
-
"@turf/polygonize": "7.3.
|
|
182
|
-
"@turf/projection": "7.3.
|
|
183
|
-
"@turf/quadrat-analysis": "7.3.
|
|
184
|
-
"@turf/random": "7.3.
|
|
185
|
-
"@turf/rectangle-grid": "7.3.
|
|
186
|
-
"@turf/rewind": "7.3.
|
|
187
|
-
"@turf/rhumb-bearing": "7.3.
|
|
188
|
-
"@turf/rhumb-destination": "7.3.
|
|
189
|
-
"@turf/rhumb-distance": "7.3.
|
|
190
|
-
"@turf/sample": "7.3.
|
|
191
|
-
"@turf/sector": "7.3.
|
|
192
|
-
"@turf/shortest-path": "7.3.
|
|
193
|
-
"@turf/simplify": "7.3.
|
|
194
|
-
"@turf/square": "7.3.
|
|
195
|
-
"@turf/square-grid": "7.3.
|
|
196
|
-
"@turf/standard-deviational-ellipse": "7.3.
|
|
197
|
-
"@turf/tag": "7.3.
|
|
198
|
-
"@turf/tesselate": "7.3.
|
|
199
|
-
"@turf/tin": "7.3.
|
|
200
|
-
"@turf/transform-rotate": "7.3.
|
|
201
|
-
"@turf/transform-scale": "7.3.
|
|
202
|
-
"@turf/transform-translate": "7.3.
|
|
203
|
-
"@turf/triangle-grid": "7.3.
|
|
204
|
-
"@turf/truncate": "7.3.
|
|
205
|
-
"@turf/union": "7.3.
|
|
206
|
-
"@turf/unkink-polygon": "7.3.
|
|
207
|
-
"@turf/voronoi": "7.3.
|
|
95
|
+
"@turf/along": "7.3.1",
|
|
96
|
+
"@turf/angle": "7.3.1",
|
|
97
|
+
"@turf/area": "7.3.1",
|
|
98
|
+
"@turf/bbox": "7.3.1",
|
|
99
|
+
"@turf/bbox-clip": "7.3.1",
|
|
100
|
+
"@turf/bbox-polygon": "7.3.1",
|
|
101
|
+
"@turf/bearing": "7.3.1",
|
|
102
|
+
"@turf/bezier-spline": "7.3.1",
|
|
103
|
+
"@turf/boolean-clockwise": "7.3.1",
|
|
104
|
+
"@turf/boolean-concave": "7.3.1",
|
|
105
|
+
"@turf/boolean-contains": "7.3.1",
|
|
106
|
+
"@turf/boolean-crosses": "7.3.1",
|
|
107
|
+
"@turf/boolean-disjoint": "7.3.1",
|
|
108
|
+
"@turf/boolean-equal": "7.3.1",
|
|
109
|
+
"@turf/boolean-intersects": "7.3.1",
|
|
110
|
+
"@turf/boolean-overlap": "7.3.1",
|
|
111
|
+
"@turf/boolean-parallel": "7.3.1",
|
|
112
|
+
"@turf/boolean-point-in-polygon": "7.3.1",
|
|
113
|
+
"@turf/boolean-point-on-line": "7.3.1",
|
|
114
|
+
"@turf/boolean-touches": "7.3.1",
|
|
115
|
+
"@turf/boolean-valid": "7.3.1",
|
|
116
|
+
"@turf/boolean-within": "7.3.1",
|
|
117
|
+
"@turf/buffer": "7.3.1",
|
|
118
|
+
"@turf/center": "7.3.1",
|
|
119
|
+
"@turf/center-mean": "7.3.1",
|
|
120
|
+
"@turf/center-median": "7.3.1",
|
|
121
|
+
"@turf/center-of-mass": "7.3.1",
|
|
122
|
+
"@turf/centroid": "7.3.1",
|
|
123
|
+
"@turf/circle": "7.3.1",
|
|
124
|
+
"@turf/clean-coords": "7.3.1",
|
|
125
|
+
"@turf/clone": "7.3.1",
|
|
126
|
+
"@turf/clusters": "7.3.1",
|
|
127
|
+
"@turf/clusters-dbscan": "7.3.1",
|
|
128
|
+
"@turf/clusters-kmeans": "7.3.1",
|
|
129
|
+
"@turf/collect": "7.3.1",
|
|
130
|
+
"@turf/combine": "7.3.1",
|
|
131
|
+
"@turf/concave": "7.3.1",
|
|
132
|
+
"@turf/convex": "7.3.1",
|
|
133
|
+
"@turf/destination": "7.3.1",
|
|
134
|
+
"@turf/difference": "7.3.1",
|
|
135
|
+
"@turf/dissolve": "7.3.1",
|
|
136
|
+
"@turf/distance": "7.3.1",
|
|
137
|
+
"@turf/distance-weight": "7.3.1",
|
|
138
|
+
"@turf/ellipse": "7.3.1",
|
|
139
|
+
"@turf/envelope": "7.3.1",
|
|
140
|
+
"@turf/explode": "7.3.1",
|
|
141
|
+
"@turf/flatten": "7.3.1",
|
|
142
|
+
"@turf/flip": "7.3.1",
|
|
143
|
+
"@turf/geojson-rbush": "7.3.1",
|
|
144
|
+
"@turf/great-circle": "7.3.1",
|
|
145
|
+
"@turf/helpers": "7.3.1",
|
|
146
|
+
"@turf/hex-grid": "7.3.1",
|
|
147
|
+
"@turf/interpolate": "7.3.1",
|
|
148
|
+
"@turf/intersect": "7.3.1",
|
|
149
|
+
"@turf/invariant": "7.3.1",
|
|
150
|
+
"@turf/isobands": "7.3.1",
|
|
151
|
+
"@turf/isolines": "7.3.1",
|
|
152
|
+
"@turf/kinks": "7.3.1",
|
|
153
|
+
"@turf/length": "7.3.1",
|
|
154
|
+
"@turf/line-arc": "7.3.1",
|
|
155
|
+
"@turf/line-chunk": "7.3.1",
|
|
156
|
+
"@turf/line-intersect": "7.3.1",
|
|
157
|
+
"@turf/line-offset": "7.3.1",
|
|
158
|
+
"@turf/line-overlap": "7.3.1",
|
|
159
|
+
"@turf/line-segment": "7.3.1",
|
|
160
|
+
"@turf/line-slice": "7.3.1",
|
|
161
|
+
"@turf/line-slice-along": "7.3.1",
|
|
162
|
+
"@turf/line-split": "7.3.1",
|
|
163
|
+
"@turf/line-to-polygon": "7.3.1",
|
|
164
|
+
"@turf/mask": "7.3.1",
|
|
165
|
+
"@turf/meta": "7.3.1",
|
|
166
|
+
"@turf/midpoint": "7.3.1",
|
|
167
|
+
"@turf/moran-index": "7.3.1",
|
|
168
|
+
"@turf/nearest-neighbor-analysis": "7.3.1",
|
|
169
|
+
"@turf/nearest-point": "7.3.1",
|
|
170
|
+
"@turf/nearest-point-on-line": "7.3.1",
|
|
171
|
+
"@turf/nearest-point-to-line": "7.3.1",
|
|
172
|
+
"@turf/planepoint": "7.3.1",
|
|
173
|
+
"@turf/point-grid": "7.3.1",
|
|
174
|
+
"@turf/point-on-feature": "7.3.1",
|
|
175
|
+
"@turf/point-to-line-distance": "7.3.1",
|
|
176
|
+
"@turf/point-to-polygon-distance": "7.3.1",
|
|
177
|
+
"@turf/points-within-polygon": "7.3.1",
|
|
178
|
+
"@turf/polygon-smooth": "7.3.1",
|
|
179
|
+
"@turf/polygon-tangents": "7.3.1",
|
|
180
|
+
"@turf/polygon-to-line": "7.3.1",
|
|
181
|
+
"@turf/polygonize": "7.3.1",
|
|
182
|
+
"@turf/projection": "7.3.1",
|
|
183
|
+
"@turf/quadrat-analysis": "7.3.1",
|
|
184
|
+
"@turf/random": "7.3.1",
|
|
185
|
+
"@turf/rectangle-grid": "7.3.1",
|
|
186
|
+
"@turf/rewind": "7.3.1",
|
|
187
|
+
"@turf/rhumb-bearing": "7.3.1",
|
|
188
|
+
"@turf/rhumb-destination": "7.3.1",
|
|
189
|
+
"@turf/rhumb-distance": "7.3.1",
|
|
190
|
+
"@turf/sample": "7.3.1",
|
|
191
|
+
"@turf/sector": "7.3.1",
|
|
192
|
+
"@turf/shortest-path": "7.3.1",
|
|
193
|
+
"@turf/simplify": "7.3.1",
|
|
194
|
+
"@turf/square": "7.3.1",
|
|
195
|
+
"@turf/square-grid": "7.3.1",
|
|
196
|
+
"@turf/standard-deviational-ellipse": "7.3.1",
|
|
197
|
+
"@turf/tag": "7.3.1",
|
|
198
|
+
"@turf/tesselate": "7.3.1",
|
|
199
|
+
"@turf/tin": "7.3.1",
|
|
200
|
+
"@turf/transform-rotate": "7.3.1",
|
|
201
|
+
"@turf/transform-scale": "7.3.1",
|
|
202
|
+
"@turf/transform-translate": "7.3.1",
|
|
203
|
+
"@turf/triangle-grid": "7.3.1",
|
|
204
|
+
"@turf/truncate": "7.3.1",
|
|
205
|
+
"@turf/union": "7.3.1",
|
|
206
|
+
"@turf/unkink-polygon": "7.3.1",
|
|
207
|
+
"@turf/voronoi": "7.3.1",
|
|
208
208
|
"@types/geojson": "^7946.0.10",
|
|
209
209
|
"tslib": "^2.8.1"
|
|
210
210
|
},
|
|
211
|
-
"gitHead": "
|
|
211
|
+
"gitHead": "b7f1b4eafb760431e03955499d8eac9489438219"
|
|
212
212
|
}
|
package/turf.min.js
CHANGED
|
@@ -25,4 +25,4 @@
|
|
|
25
25
|
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
26
26
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
27
27
|
*/
|
|
28
|
-
function Ks(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=[];if(mt(t,(function(t){n.push(t.coordinates)})),n.length<2)throw new Error("Must specify at least 2 geometries");var r=Ts.apply(As,[n[0]].concat(p(n.slice(1))));return 0===r.length?null:1===r.length?S(r[0],e.properties):R(r,e.properties)}function Qs(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=JSON.stringify(n.properties||{}),i=d(t,4),o=i[0],s=i[1],a=i[2],u=i[3],l=(s+u)/2,h=(o+a)/2,c=2*e/ut([o,l],[a,l],n)*(a-o),f=2*e/ut([h,s],[h,u],n)*(u-s),g=c/2,v=2*g,p=Math.sqrt(3)/2*f,y=a-o,m=u-s,_=3/4*v,x=p,E=(y-v)/(v-g/2),k=Math.floor(E),w=(k*_-g/2-y)/2-g/2+_/2,b=Math.floor((m-p)/p),I=(m-b*p)/2,N=b*p-m>p/2;N&&(I-=p/4);for(var S=[],M=[],L=0;L<6;L++){var P=2*Math.PI/6*L;S.push(Math.cos(P)),M.push(Math.sin(P))}for(var T=[],O=0;O<=k;O++)for(var R=0;R<=b;R++){var A=O%2==1;if((0!==R||!A)&&(0!==R||!N)){var D=O*_+o-w,F=R*x+s+I;if(A&&(F-=p/2),!0===n.triangles)ta([D,F],c/2,f/2,JSON.parse(r),S,M).forEach((function(t){n.mask?Ks(C([n.mask,t]))&&T.push(t):T.push(t)}));else{var q=$s([D,F],c/2,f/2,JSON.parse(r),S,M);n.mask?Ks(C([n.mask,q]))&&T.push(q):T.push(q)}}}return C(T)}function $s(t,e,n,r,i,o){for(var s=[],a=0;a<6;a++){var u=t[0]+e*i[a],l=t[1]+n*o[a];s.push([u,l])}return s.push(s[0].slice()),S([s],r)}function ta(t,e,n,r,i,o){for(var s=[],a=0;a<6;a++){var u=[];u.push(t),u.push([t[0]+e*i[a],t[1]+n*o[a]]),u.push([t[0]+e*i[(a+1)%6],t[1]+n*o[(a+1)%6]]),u.push(t),s.push(S([u],r))}return s}function ea(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};n.mask&&!n.units&&(n.units="kilometers");for(var r=[],i=t[0],o=t[1],s=t[2],a=t[3],u=e/ut([i,o],[s,o],n)*(s-i),l=e/ut([i,o],[i,a],n)*(a-o),h=s-i,c=a-o,f=Math.floor(h/u),g=(c-Math.floor(c/l)*l)/2,v=i+(h-f*u)/2;v<=s;){for(var d=o+g;d<=a;){var p=I([v,d],n.properties);n.mask?Cn(p,n.mask)&&r.push(p):r.push(p),d+=l}v+=u}return C(r)}function na(t,e,n){for(var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=[],o=t[0],s=t[1],a=t[2],u=t[3],l=a-o,h=X(e,r.units,"degrees"),c=u-s,f=X(n,r.units,"degrees"),g=Math.floor(Math.abs(l)/h),v=Math.floor(Math.abs(c)/f),d=(c-v*f)/2,p=o+(l-g*h)/2,y=0;y<g;y++){for(var m=s+d,_=0;_<v;_++){var x=S([[[p,m],[p,m+f],[p+h,m+f],[p+h,m],[p,m]]],r.properties);r.mask?Te(r.mask,x)&&i.push(x):i.push(x),m+=f}p+=h}return C(i)}function ra(t,e){return na(t,e,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:{})}function ia(t,e){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=[],i=e/ut([t[0],t[1]],[t[2],t[1]],n)*(t[2]-t[0]),o=e/ut([t[0],t[1]],[t[0],t[3]],n)*(t[3]-t[1]),s=0,a=t[0];a<=t[2];){for(var u=0,l=t[1];l<=t[3];){var h=null,c=null;s%2==0&&u%2==0?(h=S([[[a,l],[a,l+o],[a+i,l],[a,l]]],n.properties),c=S([[[a,l+o],[a+i,l+o],[a+i,l],[a,l+o]]],n.properties)):s%2==0&&u%2==1?(h=S([[[a,l],[a+i,l+o],[a+i,l],[a,l]]],n.properties),c=S([[[a,l],[a,l+o],[a+i,l+o],[a,l]]],n.properties)):u%2==0&&s%2==1?(h=S([[[a,l],[a,l+o],[a+i,l+o],[a,l]]],n.properties),c=S([[[a,l],[a+i,l+o],[a+i,l],[a,l]]],n.properties)):u%2==1&&s%2==1&&(h=S([[[a,l],[a,l+o],[a+i,l],[a,l]]],n.properties),c=S([[[a,l+o],[a+i,l+o],[a+i,l],[a,l+o]]],n.properties)),n.mask?(Ks(C([n.mask,h]))&&r.push(h),Ks(C([n.mask,c]))&&r.push(c)):(r.push(h),r.push(c)),l+=o,u++}s++,a+=i}return C(r)}Js.prototype.interpolate=function(t){var e=Math.sin((1-t)*this.g)/Math.sin(this.g),n=Math.sin(t*this.g)/Math.sin(this.g),r=e*Math.cos(this.start.y)*Math.cos(this.start.x)+n*Math.cos(this.end.y)*Math.cos(this.end.x),i=e*Math.cos(this.start.y)*Math.sin(this.start.x)+n*Math.cos(this.end.y)*Math.sin(this.end.x),o=e*Math.sin(this.start.y)+n*Math.sin(this.end.y),s=Vs*Math.atan2(o,Math.sqrt(Math.pow(r,2)+Math.pow(i,2)));return[Vs*Math.atan2(i,r),s]},Js.prototype.Arc=function(t,e){var n=[];if(!t||t<=2)n.push([this.start.lon,this.start.lat]),n.push([this.end.lon,this.end.lat]);else for(var r=1/(t-1),i=0;i<t;++i){var o=r*i,s=this.interpolate(o);n.push(s)}for(var a=!1,u=0,l=e&&e.offset?e.offset:10,h=180-l,c=-180+l,f=360-l,g=1;g<n.length;++g){var v=n[g-1][0],d=n[g][0],p=Math.abs(d-v);p>f&&(d>h&&v<c||v>h&&d<c)?a=!0:p>u&&(u=p)}var y=[];if(a&&u<l){var m=[];y.push(m);for(var _=0;_<n.length;++_){var x=parseFloat(n[_][0]);if(_>0&&Math.abs(x-n[_-1][0])>f){var E=parseFloat(n[_-1][0]),k=parseFloat(n[_-1][1]),w=parseFloat(n[_][0]),b=parseFloat(n[_][1]);if(E>-180&&E<c&&180===w&&_+1<n.length&&n[_-1][0]>-180&&n[_-1][0]<c){m.push([-180,n[_][1]]),_++,m.push([n[_][0],n[_][1]]);continue}if(E>h&&E<180&&-180===w&&_+1<n.length&&n[_-1][0]>h&&n[_-1][0]<180){m.push([180,n[_][1]]),_++,m.push([n[_][0],n[_][1]]);continue}if(E<c&&w>h){var I=E;E=w,w=I;var N=k;k=b,b=N}if(E>h&&w<c&&(w+=360),E<=180&&w>=180&&E<w){var S=(180-E)/(w-E),M=S*b+(1-S)*k;m.push([n[_-1][0]>h?180:-180,M]),(m=[]).push([n[_-1][0]>h?-180:180,M]),y.push(m)}else m=[],y.push(m);m.push([x,n[_][1]])}else m.push([n[_][0],n[_][1]])}}else{var L=[];y.push(L);for(var P=0;P<n.length;++P)L.push([n[P][0],n[P][1]])}for(var C=new Ws(this.properties),T=0;T<y.length;++T){var O=new Hs;C.geometries.push(O);for(var R=y[T],A=0;A<R.length;++A)O.move_to(R[A])}return C};var oa=Object.defineProperty,sa=Object.getOwnPropertySymbols,aa=Object.prototype.hasOwnProperty,ua=Object.prototype.propertyIsEnumerable,la=function(t,e,n){return e in t?oa(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n},ha=function(t,e){for(var n in e||(e={}))aa.call(e,n)&&la(t,n,e[n]);if(sa){var r,i=a(sa(e));try{for(i.s();!(r=i.n()).done;){n=r.value;ua.call(e,n)&&la(t,n,e[n])}}catch(t){i.e(t)}finally{i.f()}}return t};function ca(t,e){if(!Z(e=e||{}))throw new Error("options is invalid");var n=e.zProperty||"elevation",r=e.flip,i=e.flags;nt(t,"Point","input must contain Points");for(var o=function(t,e){var n={};dt(t,(function(t){var e=Q(t)[1];n[e]||(n[e]=[]),n[e].push(t)}));var r=Object.keys(n).map((function(t){return n[t].sort((function(t,e){return Q(t)[0]-Q(e)[0]}))})),i=r.sort((function(t,n){return e?Q(t[0])[1]-Q(n[0])[1]:Q(n[0])[1]-Q(t[0])[1]}));return i}(t,r),s=[],a=0;a<o.length;a++){for(var u=o[a],l=[],h=0;h<u.length;h++){var c=u[h];c.properties[n]?l.push(c.properties[n]):l.push(0),!0===i&&(c.properties.matrixPosition=[a,h])}s.push(l)}return s}function fa(t,e){for(var n=[],r=t[0].length,i=t.length,o=0;o<i-1;o++)for(var s=0;s<r-1;s++){var a=t[o+1][s+1],u=t[o][s+1],l=t[o][s],h=t[o+1][s];switch((h>=e?8:0)|(a>=e?4:0)|(u>=e?2:0)|(l>=e?1:0)){case 0:case 15:continue;case 1:n.push([[s+c(l,u),o],[s,o+c(l,h)]]);break;case 2:n.push([[s+1,o+c(u,a)],[s+c(l,u),o]]);break;case 3:n.push([[s+1,o+c(u,a)],[s,o+c(l,h)]]);break;case 4:n.push([[s+c(h,a),o+1],[s+1,o+c(u,a)]]);break;case 5:(h+a+u+l)/4>=e?n.push([[s+c(h,a),o+1],[s,o+c(l,h)]],[[s+c(l,u),o],[s+1,o+c(u,a)]]):n.push([[s+c(h,a),o+1],[s+1,o+c(u,a)]],[[s+c(l,u),o],[s,o+c(l,h)]]);break;case 6:n.push([[s+c(h,a),o+1],[s+c(l,u),o]]);break;case 7:n.push([[s+c(h,a),o+1],[s,o+c(l,h)]]);break;case 8:n.push([[s,o+c(l,h)],[s+c(h,a),o+1]]);break;case 9:n.push([[s+c(l,u),o],[s+c(h,a),o+1]]);break;case 10:(h+a+u+l)/4>=e?n.push([[s,o+c(l,h)],[s+c(l,u),o]],[[s+1,o+c(u,a)],[s+c(h,a),o+1]]):n.push([[s,o+c(l,h)],[s+c(h,a),o+1]],[[s+1,o+c(u,a)],[s+c(l,u),o]]);break;case 11:n.push([[s+1,o+c(u,a)],[s+c(h,a),o+1]]);break;case 12:n.push([[s,o+c(l,h)],[s+1,o+c(u,a)]]);break;case 13:n.push([[s+c(l,u),o],[s+1,o+c(u,a)]]);break;case 14:n.push([[s,o+c(l,h)],[s+c(l,u),o]])}}return n;function c(t,n){if(t===n)return.5;var r=(e-t)/(n-t);return r>1?1:r<0?0:r}}function ga(t,e){for(var n=e.length,r=e[0].length,i=[],o=[];t.length>0;){var s=p(t.shift());i.push(s);var u=void 0;do{u=!1;for(var l=0;l<t.length;l++){var h=t[l];if(h[0][0]===s[s.length-1][0]&&h[0][1]===s[s.length-1][1]){u=!0,s.push(h[1]),t.splice(l,1);break}if(h[1][0]===s[0][0]&&h[1][1]===s[0][1]){u=!0,s.unshift(h[0]),t.splice(l,1);break}}}while(u)}for(var c=function(){var t=i[0];if(t[0][0]===t[t.length-1][0]&&t[0][1]===t[t.length-1][1])return o.push(t),i.shift(),1;var e,s,u=t[t.length-1];if(0===u[0]&&0!==u[1])e=ma(i,(function(t){return 0===t[0][0]&&t[0][1]<u[1]}),(function(t,e){return e[0][1]-t[0][1]})),s=[0,0];else if(0===u[1]&&u[0]!==r-1)e=ma(i,(function(t){return 0===t[0][1]&&t[0][0]>u[0]}),(function(t,e){return t[0][0]-e[0][0]})),s=[r-1,0];else if(u[0]===r-1&&u[1]!==n-1)e=ma(i,(function(t){return t[0][0]===r-1&&t[0][1]>u[1]}),(function(t,e){return t[0][1]-e[0][1]})),s=[r-1,n-1];else{if(u[1]!==n-1||0===u[0])throw new Error("Contour not closed but is not along an edge");e=ma(i,(function(t){return t[0][1]===n-1&&t[0][0]<u[0]}),(function(t,e){return e[0][0]-t[0][0]})),s=[0,n-1]}if(-1===e)t.push(s);else if(0===e)t.push([t[0][0],t[0][1]]),o.push(t),i.shift();else{var l=i[e];i.splice(e,1);var h,c=a(l);try{for(c.s();!(h=c.n()).done;){var f=h.value;t.push(f)}}catch(t){c.e(t)}finally{c.f()}}};i.length>0;)c();for(var f=0;f<o.length;f++)o[f].length<4&&(o.splice(f,1),f--);return o}function va(t){var e=t.map((function(t){return{ring:t,area:Lt(S([t]))}}));return e.sort((function(t,e){return e.area-t.area})),e.map((function(t){return t.ring}))}function da(t){for(var e=t.map((function(t){return{lrCoordinates:t,grouped:!1}})),n=[];!ya(e);)for(var r=0;r<e.length;r++)if(!e[r].grouped){var i=[];i.push(e[r].lrCoordinates),e[r].grouped=!0;var o=S([e[r].lrCoordinates]);t:for(var s=r+1;s<e.length;s++)if(!e[s].grouped){var a=S([e[s].lrCoordinates]);if(pa(a,o)){for(var u=1;u<i.length;u++)if(pa(a,S([i[u]])))continue t;i.push(e[s].lrCoordinates),e[s].grouped=!0}}n.push(i)}return n}function pa(t,e){for(var n=Xs(t),r=0;r<n.features.length;r++)if(!jt(n.features[r],e))return!1;return!0}function ya(t){for(var e=0;e<t.length;e++)if(!1===t[e].grouped)return!1;return!0}function ma(t,e,n){for(var r=-1,i=0;i<t.length;i++)e(t[i])&&(-1===r||n(t[r],t[i])>0)&&(r=i);return r}var _a=Object.defineProperty,xa=Object.getOwnPropertySymbols,Ea=Object.prototype.hasOwnProperty,ka=Object.prototype.propertyIsEnumerable,wa=function(t,e,n){return e in t?_a(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n},ba=function(t,e){for(var n in e||(e={}))Ea.call(e,n)&&wa(t,n,e[n]);if(xa){var r,i=a(xa(e));try{for(i.s();!(r=i.n()).done;){n=r.value;ka.call(e,n)&&wa(t,n,e[n])}}catch(t){i.e(t)}finally{i.f()}}return t};function Ia(t,e){if(!Z(e=e||{}))throw new Error("options is invalid");var n=e.zProperty||"elevation",r=e.flip,i=e.flags;nt(t,"Point","input must contain Points");for(var o=function(t,e){var n={};dt(t,(function(t){var e=Q(t)[1];n[e]||(n[e]=[]),n[e].push(t)}));var r=Object.keys(n).map((function(t){return n[t].sort((function(t,e){return Q(t)[0]-Q(e)[0]}))})),i=r.sort((function(t,n){return e?Q(t[0])[1]-Q(n[0])[1]:Q(n[0])[1]-Q(t[0])[1]}));return i}(t,r),s=[],a=0;a<o.length;a++){for(var u=o[a],l=[],h=0;h<u.length;h++){var c=u[h];c.properties[n]?l.push(c.properties[n]):l.push(0),!0===i&&(c.properties.matrixPosition=[a,h])}s.push(l)}return s}function Na(t,e){for(var n=[],r=t.length,i=t[0].length,o=0;o<r-1;o++)for(var s=0;s<i-1;s++){var a=t[o+1][s+1],u=t[o][s+1],l=t[o][s],h=t[o+1][s];switch((h>=e?8:0)|(a>=e?4:0)|(u>=e?2:0)|(l>=e?1:0)){case 0:case 15:continue;case 1:n.push([[s+y(l,u),o],[s,o+y(l,h)]]);break;case 2:n.push([[s+1,o+y(u,a)],[s+y(l,u),o]]);break;case 3:n.push([[s+1,o+y(u,a)],[s,o+y(l,h)]]);break;case 4:n.push([[s+y(h,a),o+1],[s+1,o+y(u,a)]]);break;case 5:(h+a+u+l)/4>=e?n.push([[s+y(h,a),o+1],[s,o+y(l,h)]],[[s+y(l,u),o],[s+1,o+y(u,a)]]):n.push([[s+y(h,a),o+1],[s+1,o+y(u,a)]],[[s+y(l,u),o],[s,o+y(l,h)]]);break;case 6:n.push([[s+y(h,a),o+1],[s+y(l,u),o]]);break;case 7:n.push([[s+y(h,a),o+1],[s,o+y(l,h)]]);break;case 8:n.push([[s,o+y(l,h)],[s+y(h,a),o+1]]);break;case 9:n.push([[s+y(l,u),o],[s+y(h,a),o+1]]);break;case 10:(h+a+u+l)/4>=e?n.push([[s,o+y(l,h)],[s+y(l,u),o]],[[s+1,o+y(u,a)],[s+y(h,a),o+1]]):n.push([[s,o+y(l,h)],[s+y(h,a),o+1]],[[s+1,o+y(u,a)],[s+y(l,u),o]]);break;case 11:n.push([[s+1,o+y(u,a)],[s+y(h,a),o+1]]);break;case 12:n.push([[s,o+y(l,h)],[s+1,o+y(u,a)]]);break;case 13:n.push([[s+y(l,u),o],[s+1,o+y(u,a)]]);break;case 14:n.push([[s,o+y(l,h)],[s+y(l,u),o]])}}for(var c=[];n.length>0;){var f=p(n.shift());c.push(f);var g=void 0;do{g=!1;for(var v=0;v<n.length;v++){var d=n[v];if(d[0][0]===f[f.length-1][0]&&d[0][1]===f[f.length-1][1]){g=!0,f.push(d[1]),n.splice(v,1);break}if(d[1][0]===f[0][0]&&d[1][1]===f[0][1]){g=!0,f.unshift(d[0]),n.splice(v,1);break}}}while(g)}return c;function y(t,n){if(t===n)return.5;var r=(e-t)/(n-t);return r>1?1:r<0?0:r}}function Sa(t,e,n,r,i,o,s,a){var u,l,h,c,f={x:null,y:null,onLine1:!1,onLine2:!1};return 0===(u=(a-o)*(n-t)-(s-i)*(r-e))?null!==f.x&&null!==f.y&&f:(c=(n-t)*(l=e-o)-(r-e)*(h=t-i),l=((s-i)*l-(a-o)*h)/u,h=c/u,f.x=t+l*(n-t),f.y=e+l*(r-e),l>=0&&l<=1&&(f.onLine1=!0),h>=0&&h<=1&&(f.onLine2=!0),!(!f.onLine1||!f.onLine2)&&[f.x,f.y])}function Ma(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return wt(t,(function(t,n){var r=n.geometry.coordinates;return t+ut(r[0],r[1],e)}),0)}function La(t,e,n,r){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},o=i.steps||64,s=Pa(n),a=Pa(r),u=Array.isArray(t)||"Feature"!==t.type?{}:t.properties;if(s===a)return L(Ri(t,e,i).geometry.coordinates[0],u);for(var l=s,h=s<a?a:a+360,c=l,f=[],g=0,v=(h-l)/o;c<=h;)f.push(at(t,e,c,i).geometry.coordinates),c=l+ ++g*v;return L(f,u)}function Pa(t){var e=t%360;return e<0&&(e+=360),e}function Ca(t,e,n,r){if(!Z(r=r||{}))throw new Error("options is invalid");var i,o=[];if("Feature"===t.type)i=t.geometry.coordinates;else{if("LineString"!==t.type)throw new Error("input must be a LineString Feature or Geometry");i=t.coordinates}for(var s,a,u,l=i.length,h=0,c=0;c<i.length&&!(e>=h&&c===i.length-1);c++){if(h>e&&0===o.length){if(!(s=e-h))return o.push(i[c]),L(o);a=st(i[c],i[c-1])-180,u=at(i[c],s,a,r),o.push(u.geometry.coordinates)}if(h>=n)return(s=n-h)?(a=st(i[c],i[c-1])-180,u=at(i[c],s,a,r),o.push(u.geometry.coordinates),L(o)):(o.push(i[c]),L(o));if(h>=e&&o.push(i[c]),c===i.length-1)return L(o);h+=ut(i[c],i[c+1],r)}if(h<e&&i.length===l)throw new Error("Start position is beyond line");var f=i[i.length-1];return L([f,f])}function Ta(t){var e=t[0],n=t[1];return[n[0]-e[0],n[1]-e[1]]}function Oa(t,e){return t[0]*e[1]-e[0]*t[1]}function Ra(t,e){return!function(t,e){return 0===Oa(Ta(t),Ta(e))}(t,e)&&function(t,e){var n,r,i=t[0],o=Ta(t),s=e[0],a=Ta(e),u=Oa(o,a),l=function(t,e){return[t[0]+e[0],t[1]+e[1]]}(i,function(t,e){return[t*e[0],t*e[1]]}(Oa((r=i,[(n=s)[0]-r[0],n[1]-r[1]]),a)/u,o));return l}(t,e)}function Aa(t,e,n){var r=[],i=G(e,n),o=Q(t),s=[];return o.forEach((function(t,e){if(e!==o.length-1){var n=(l=t,h=o[e+1],c=i,f=Math.sqrt((l[0]-h[0])*(l[0]-h[0])+(l[1]-h[1])*(l[1]-h[1])),g=l[0]+c*(h[1]-l[1])/f,v=h[0]+c*(h[1]-l[1])/f,d=l[1]+c*(l[0]-h[0])/f,p=h[1]+c*(l[0]-h[0])/f,[[g,d],[v,p]]);if(r.push(n),e>0){var a=r[e-1],u=Ra(n,a);!1!==u&&(a[1]=u,n[0]=u),s.push(a[0]),e===o.length-2&&(s.push(n[0]),s.push(n[1]))}2===o.length&&(s.push(n[0]),s.push(n[1]))}var l,h,c,f,g,v,d,p})),L(s,t.properties)}function Da(t,e){if(!Z(e=null!=e?e:{}))throw new Error("options is invalid");var n=e.precision,r=e.coordinates,i=e.mutate;if(n=null==n||isNaN(n)?6:n,r=null==r||isNaN(r)?3:r,!t)throw new Error("<geojson> is required");if("number"!=typeof n)throw new Error("<precision> must be a number");if("number"!=typeof r)throw new Error("<coordinates> must be a number");!1!==i&&void 0!==i||(t=JSON.parse(JSON.stringify(t)));var o=Math.pow(10,n);return ct(t,(function(t){!function(t,e,n){t.length>n&&t.splice(n,t.length);for(var r=0;r<t.length;r++)t[r]=Math.round(t[r]*e)/e}(t,o,r)})),t}function Fa(t,e){var n=[],r=Ke();return xt(e,(function(e){if(n.forEach((function(t,e){t.id=e})),n.length){var i=r.search(e);if(i.features.length){var o=Ga(e,i);n=n.filter((function(t){return t.id!==o.id})),r.remove(o),dt(qa(o,e),(function(t){n.push(t),r.insert(t)}))}}else n=qa(t,e).features,r.load(C(n))})),C(n)}function qa(t,e){var n=[],r=Q(t)[0],i=Q(t)[t.geometry.coordinates.length-1];if(Ba(r,K(e))||Ba(i,K(e)))return C([t]);var o=Ke(),s=Qe(t);o.load(s);var a=o.search(e);if(!a.features.length)return C([t]);var u=Ga(e,a),l=pt(s,(function(t,r,i){var o=Q(r)[1],s=K(e);return i===u.id?(t.push(s),n.push(L(t)),Ba(s,o)?[s]:[s,o]):(t.push(o),t)}),[r]);return l.length>1&&n.push(L(l)),C(n)}function Ga(t,e){if(!e.features.length)throw new Error("lines must contain features");if(1===e.features.length)return e.features[0];var n,r=1/0;return dt(e,(function(e){var i=cn(e,t).properties.dist;i<r&&(n=e,r=i)})),n}function Ba(t,e){return t[0]===e[0]&&t[1]===e[1]}function Ya(t,e,n,r){e=e||("Feature"===t.type?t.properties:{});var i=rt(t),o=i.coordinates,s=i.type;if(!o.length)throw new Error("line must contain coordinates");switch(s){case"LineString":return n&&(o=za(o)),S([o],e);case"MultiLineString":var a=[],u=0;return o.forEach((function(t){if(n&&(t=za(t)),r){var e=function(t){var e=t[0],n=t[1],r=t[2],i=t[3];return Math.abs(e-r)*Math.abs(n-i)}(Rt(L(t)));e>u?(a.unshift(t),u=e):a.push(t)}else a.push(t)})),S(a,e);default:throw new Error("geometry type "+s+" is not supported")}}function za(t){var e=t[0],n=e[0],r=e[1],i=t[t.length-1],o=i[0],s=i[1];return n===o&&r===s||t.push(e),t}function ja(t){return R(t)}function Xa(t){var e=[[[180,90],[-180,90],[-180,-90],[180,-90],[180,90]]];return t&&(e="Feature"===t.type?t.geometry.coordinates:t.coordinates),S(e)}function Ua(t){var e,n=0,r=a(t);try{for(r.s();!(e=r.n()).done;){n+=e.value}}catch(t){r.e(t)}finally{r.f()}return n/t.length}var Va=Object.defineProperty,Za=Object.defineProperties,Ha=Object.getOwnPropertyDescriptors,Wa=Object.getOwnPropertySymbols,Ja=Object.prototype.hasOwnProperty,Ka=Object.prototype.propertyIsEnumerable,Qa=function(t,e,n){return e in t?Va(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n},$a=function(t,e){for(var n in e||(e={}))Ja.call(e,n)&&Qa(t,n,e[n]);if(Wa){var r,i=a(Wa(e));try{for(i.s();!(r=i.n()).done;){n=r.value;Ka.call(e,n)&&Qa(t,n,e[n])}}catch(t){i.e(t)}finally{i.f()}}return t},tu=function(t,e){return Za(t,Ha(e))};function eu(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!t)throw new Error("targetPoint is required");if(!e)throw new Error("points is required");var r=1/0,i=0;dt(e,(function(e,o){var s=ut(t,e,n);s<r&&(i=o,r=s)}));var o=Ai(e.features[i]);return tu($a({},o),{properties:tu($a({},o.properties),{featureIndex:i,distanceToPoint:r})})}function nu(t,e){var n,r,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=null!=(n=i.method)?n:"geodesic",s=null!=(r=i.units)?r:"kilometers";if(!t)throw new Error("pt is required");if(Array.isArray(t)?t=I(t):"Point"===t.type?t=w(t):et(t,"Point","point"),!e)throw new Error("line is required");Array.isArray(e)?e=L(e):"LineString"===e.type?e=w(e):et(e,"LineString","line");var a=1/0,u=t.geometry.coordinates;return kt(e,(function(t){if(t){var e=t.geometry.coordinates[0],n=t.geometry.coordinates[1],r=function(t,e,n,r){if("geodesic"===r.method){return cn(L([e,n]).geometry,t,{units:"degrees"}).properties.dist}var i=[n[0]-e[0],n[1]-e[1]],o=[t[0]-e[0],t[1]-e[1]],s=ru(o,i);if(s<=0)return Gs(t,e,{units:"degrees"});var a=ru(i,i);if(a<=s)return Gs(t,n,{units:"degrees"});var u=s/a,l=[e[0]+u*i[0],e[1]+u*i[1]];return Gs(t,l,{units:"degrees"})}(u,e,n,{method:o});r<a&&(a=r)}})),X(a,"degrees",s)}function ru(t,e){return t[0]*e[0]+t[1]*e[1]}var iu=Object.defineProperty,ou=Object.getOwnPropertySymbols,su=Object.prototype.hasOwnProperty,au=Object.prototype.propertyIsEnumerable,uu=function(t,e,n){return e in t?iu(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n},lu=function(t,e){for(var n in e||(e={}))su.call(e,n)&&uu(t,n,e[n]);if(ou){var r,i=a(ou(e));try{for(i.s();!(r=i.n()).done;){n=r.value;au.call(e,n)&&uu(t,n,e[n])}}catch(t){i.e(t)}finally{i.f()}}return t};function hu(t,e,n,r,i,o){return Math.sqrt((i-n)*(i-n)+(o-r)*(o-r))===Math.sqrt((t-n)*(t-n)+(e-r)*(e-r))+Math.sqrt((i-t)*(i-t)+(o-e)*(o-e))}function cu(t,e){var n=[];return dt(t,(function(t){var r=!1;if("Point"===t.geometry.type)mt(e,(function(e){jt(t,e)&&(r=!0)})),r&&n.push(t);else{if("MultiPoint"!==t.geometry.type)throw new Error("Input geometry must be a Point or MultiPoint");var i=[];mt(e,(function(e){ct(t,(function(t){jt(t,e)&&(r=!0,i.push(t))}))})),r&&n.push(O(i,t.properties))}})),C(n)}function fu(t,e,n){var r=e[0]-t[0],i=e[1]-t[1],o=n[0]-e[0];return function(t){return(t>0)-(t<0)||+t}(r*(n[1]-e[1])-o*i)}function gu(t,e){return e.geometry.coordinates[0].every((function(e){return jt(I(e),t)}))}var vu=function(){return s((function t(e){i(this,t),this.id=t.buildId(e),this.coordinates=e,this.innerEdges=[],this.outerEdges=[],this.outerEdgesSorted=!1}),[{key:"removeInnerEdge",value:function(t){this.innerEdges=this.innerEdges.filter((function(e){return e.from.id!==t.from.id}))}},{key:"removeOuterEdge",value:function(t){this.outerEdges=this.outerEdges.filter((function(e){return e.to.id!==t.to.id}))}},{key:"addOuterEdge",value:function(t){this.outerEdges.push(t),this.outerEdgesSorted=!1}},{key:"sortOuterEdges",value:function(){var t=this;this.outerEdgesSorted||(this.outerEdges.sort((function(e,n){var r=e.to,i=n.to;if(r.coordinates[0]-t.coordinates[0]>=0&&i.coordinates[0]-t.coordinates[0]<0)return 1;if(r.coordinates[0]-t.coordinates[0]<0&&i.coordinates[0]-t.coordinates[0]>=0)return-1;if(r.coordinates[0]-t.coordinates[0]==0&&i.coordinates[0]-t.coordinates[0]==0)return r.coordinates[1]-t.coordinates[1]>=0||i.coordinates[1]-t.coordinates[1]>=0?r.coordinates[1]-i.coordinates[1]:i.coordinates[1]-r.coordinates[1];var o=fu(t.coordinates,r.coordinates,i.coordinates);return o<0?1:o>0?-1:Math.pow(r.coordinates[0]-t.coordinates[0],2)+Math.pow(r.coordinates[1]-t.coordinates[1],2)-(Math.pow(i.coordinates[0]-t.coordinates[0],2)+Math.pow(i.coordinates[1]-t.coordinates[1],2))})),this.outerEdgesSorted=!0)}},{key:"getOuterEdges",value:function(){return this.sortOuterEdges(),this.outerEdges}},{key:"getOuterEdge",value:function(t){return this.sortOuterEdges(),this.outerEdges[t]}},{key:"addInnerEdge",value:function(t){this.innerEdges.push(t)}}],[{key:"buildId",value:function(t){return t.join(",")}}])}(),du=function(){function t(e,n){i(this,t),this.from=e,this.to=n,this.next=void 0,this.label=void 0,this.symetric=void 0,this.ring=void 0,this.from.addOuterEdge(this),this.to.addInnerEdge(this)}return s(t,[{key:"getSymetric",value:function(){return this.symetric||(this.symetric=new t(this.to,this.from),this.symetric.symetric=this),this.symetric}},{key:"deleteEdge",value:function(){this.from.removeOuterEdge(this),this.to.removeInnerEdge(this)}},{key:"isEqual",value:function(t){return this.from.id===t.from.id&&this.to.id===t.to.id}},{key:"toString",value:function(){return"Edge { ".concat(this.from.id," -> ").concat(this.to.id," }")}},{key:"toLineString",value:function(){return L([this.from.coordinates,this.to.coordinates])}},{key:"compareTo",value:function(t){return fu(t.from.coordinates,t.to.coordinates,this.to.coordinates)}}])}(),pu=function(){return s((function t(){i(this,t),this.edges=[],this.polygon=void 0,this.envelope=void 0}),[{key:"push",value:function(t){this.edges.push(t),this.polygon=this.envelope=void 0}},{key:"get",value:function(t){return this.edges[t]}},{key:"length",get:function(){return this.edges.length}},{key:"forEach",value:function(t){this.edges.forEach(t)}},{key:"map",value:function(t){return this.edges.map(t)}},{key:"some",value:function(t){return this.edges.some(t)}},{key:"isValid",value:function(){return!0}},{key:"isHole",value:function(){var t=this,e=this.edges.reduce((function(e,n,r){return n.from.coordinates[1]>t.edges[e].from.coordinates[1]&&(e=r),e}),0),n=(0===e?this.length:e)-1,r=(e+1)%this.length,i=fu(this.edges[n].from.coordinates,this.edges[e].from.coordinates,this.edges[r].from.coordinates);return 0===i?this.edges[n].from.coordinates[0]>this.edges[r].from.coordinates[0]:i>0}},{key:"toMultiPoint",value:function(){return O(this.edges.map((function(t){return t.from.coordinates})))}},{key:"toPolygon",value:function(){if(this.polygon)return this.polygon;var t=this.edges.map((function(t){return t.from.coordinates}));return t.push(this.edges[0].from.coordinates),this.polygon=S([t])}},{key:"getEnvelope",value:function(){return this.envelope?this.envelope:this.envelope=js(this.toPolygon())}},{key:"inside",value:function(t){return jt(t,this.toPolygon())}}],[{key:"findEdgeRingContaining",value:function(t,e){var n,r,i=t.getEnvelope();return e.forEach((function(e){var o,s,u,l,h,c,f=e.getEnvelope();if((r&&(n=r.getEnvelope()),s=i,u=(o=f).geometry.coordinates[0].map((function(t){return t[0]})),l=o.geometry.coordinates[0].map((function(t){return t[1]})),h=s.geometry.coordinates[0].map((function(t){return t[0]})),c=s.geometry.coordinates[0].map((function(t){return t[1]})),Math.max.apply(null,u)!==Math.max.apply(null,h)||Math.max.apply(null,l)!==Math.max.apply(null,c)||Math.min.apply(null,u)!==Math.min.apply(null,h)||Math.min.apply(null,l)!==Math.min.apply(null,c))&&gu(f,i)){var g,v,d=a(t.map((function(t){return t.from.coordinates})));try{var p=function(){var t=v.value;e.some((function(e){return n=t,r=e.from.coordinates,n[0]===r[0]&&n[1]===r[1];var n,r}))||(g=t)};for(d.s();!(v=d.n()).done;)p()}catch(t){d.e(t)}finally{d.f()}g&&e.inside(I(g))&&(r&&!gu(n,f)||(r=e))}})),r}}])}();var yu=function(){function t(){i(this,t),this.edges=[],this.nodes={}}return s(t,[{key:"getNode",value:function(t){var e=vu.buildId(t),n=this.nodes[e];return n||(n=this.nodes[e]=new vu(t)),n}},{key:"addEdge",value:function(t,e){var n=new du(t,e),r=n.getSymetric();this.edges.push(n),this.edges.push(r)}},{key:"deleteDangles",value:function(){var t=this;Object.keys(this.nodes).map((function(e){return t.nodes[e]})).forEach((function(e){return t._removeIfDangle(e)}))}},{key:"_removeIfDangle",value:function(t){var e=this;if(t.innerEdges.length<=1){var n=t.getOuterEdges().map((function(t){return t.to}));this.removeNode(t),n.forEach((function(t){return e._removeIfDangle(t)}))}}},{key:"deleteCutEdges",value:function(){var t=this;this._computeNextCWEdges(),this._findLabeledEdgeRings(),this.edges.forEach((function(e){e.label===e.symetric.label&&(t.removeEdge(e.symetric),t.removeEdge(e))}))}},{key:"_computeNextCWEdges",value:function(t){var e=this;void 0===t?Object.keys(this.nodes).forEach((function(t){return e._computeNextCWEdges(e.nodes[t])})):t.getOuterEdges().forEach((function(e,n){t.getOuterEdge((0===n?t.getOuterEdges().length:n)-1).symetric.next=e}))}},{key:"_computeNextCCWEdges",value:function(t,e){for(var n,r,i=t.getOuterEdges(),o=i.length-1;o>=0;--o){var s=i[o],a=s.symetric,u=void 0,l=void 0;s.label===e&&(u=s),a.label===e&&(l=a),u&&l&&(l&&(r=l),u&&(r&&(r.next=u,r=void 0),n||(n=u)))}r&&(r.next=n)}},{key:"_findLabeledEdgeRings",value:function(){var t=[],e=0;return this.edges.forEach((function(n){if(!(n.label>=0)){t.push(n);var r=n;do{r.label=e,r=r.next}while(!n.isEqual(r));e++}})),t}},{key:"getEdgeRings",value:function(){var t=this;this._computeNextCWEdges(),this.edges.forEach((function(t){t.label=void 0})),this._findLabeledEdgeRings().forEach((function(e){t._findIntersectionNodes(e).forEach((function(n){t._computeNextCCWEdges(n,e.label)}))}));var e=[];return this.edges.forEach((function(n){n.ring||e.push(t._findEdgeRing(n))})),e}},{key:"_findIntersectionNodes",value:function(t){var e=[],n=t,r=function(){var r=0;n.from.getOuterEdges().forEach((function(e){e.label===t.label&&++r})),r>1&&e.push(n.from),n=n.next};do{r()}while(!t.isEqual(n));return e}},{key:"_findEdgeRing",value:function(t){var e=t,n=new pu;do{n.push(e),e.ring=n,e=e.next}while(!t.isEqual(e));return n}},{key:"removeNode",value:function(t){var e=this;t.getOuterEdges().forEach((function(t){return e.removeEdge(t)})),t.innerEdges.forEach((function(t){return e.removeEdge(t)})),delete this.nodes[t.id]}},{key:"removeEdge",value:function(t){this.edges=this.edges.filter((function(e){return!e.isEqual(t)})),t.deleteEdge()}}],[{key:"fromGeoJson",value:function(e){!function(t){if(!t)throw new Error("No geojson passed");if("FeatureCollection"!==t.type&&"GeometryCollection"!==t.type&&"MultiLineString"!==t.type&&"LineString"!==t.type&&"Feature"!==t.type)throw new Error("Invalid input type '".concat(t.type,"'. Geojson must be FeatureCollection, GeometryCollection, LineString, MultiLineString or Feature"))}(e);var n=new t;return xt(e,(function(t){et(t,"LineString","Graph::fromGeoJson"),ft(t,(function(t,e){if(t){var r=n.getNode(t),i=n.getNode(e);n.addEdge(r,i)}return e}))})),n}}])}();function mu(t,e){var n,r;ct(t,(function(t,i,o,s,a){if(r!==a)e.push([]);else{var u=n[0],l=n[1],h=t[0],c=t[1];e[a].push([.75*u+.25*h,.75*l+.25*c]),e[a].push([.25*u+.75*h,.25*l+.75*c])}n=t,r=a}),!1),e.forEach((function(t){t.push(t[0])}))}function _u(t,e){var n,r,i;ct(t,(function(t,o,s,a,u){if(r!==a)e.push([[]]);else if(i!==u)e[a].push([]);else{var l=n[0],h=n[1],c=t[0],f=t[1];e[a][u].push([.75*l+.25*c,.75*h+.25*f]),e[a][u].push([.25*l+.75*c,.25*h+.75*f])}n=t,r=a,i=u}),!1),e.forEach((function(t){t.forEach((function(t){t.push(t[0])}))}))}function xu(t,e,n,r,i){for(var o=0;o<t.length;o++){var s=t[o],a=t[o+1];o===t.length-1&&(a=t[0]);var u=ku(s,a,e);n<=0&&u>0?ku(e,s,r)<0||(r=s):n>0&&u<=0&&(Eu(e,s,i)||(i=s)),n=u}return[r,i]}function Eu(t,e,n){return ku(t,e,n)>0}function ku(t,e,n){return(e[0]-t[0])*(n[1]-t[1])-(n[0]-t[0])*(e[1]-t[1])}function wu(t){return Iu(t,"mercator",arguments.length>1&&void 0!==arguments[1]?arguments[1]:{})}function bu(t){return Iu(t,"wgs84",arguments.length>1&&void 0!==arguments[1]?arguments[1]:{})}function Iu(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=(n=n||{}).mutate;if(!t)throw new Error("geojson is required");return Array.isArray(t)&&V(t[0])?t="mercator"===e?Nu(t):Su(t):(!0!==r&&(t=Ai(t)),ct(t,(function(t){var n="mercator"===e?Nu(t):Su(t);t[0]=n[0],t[1]=n[1]}))),t}function Nu(t){var e=Math.PI/180,n=6378137,r=20037508.342789244,i=Math.abs(t[0])<=180?t[0]:t[0]-360*function(t){return t<0?-1:t>0?1:0}(t[0]),o=[n*i*e,n*Math.log(Math.tan(.25*Math.PI+.5*t[1]*e))];return o[0]>r&&(o[0]=r),o[0]<-20037508.342789244&&(o[0]=-20037508.342789244),o[1]>r&&(o[1]=r),o[1]<-20037508.342789244&&(o[1]=-20037508.342789244),o}function Su(t){var e=180/Math.PI,n=6378137;return[t[0]*e/n,(.5*Math.PI-2*Math.atan(Math.exp(-t[1]/n)))*e]}var Mu=Object.freeze({__proto__:null,toMercator:wu,toWgs84:bu});var Lu={20:1.07275,15:1.13795,10:1.22385,5:1.3581,2:1.51743,1:1.62762};function Pu(t,e){return e[0]<=t[0]&&e[1]<=t[1]&&e[2]>=t[0]&&e[3]>=t[1]}function Cu(t){var e=[];return function t(n){return 0===n||1===n?1:e[n]>0?e[n]:e[n]=t(n-1)*n}(t)}function Tu(t){return Ru(t),Ou(t)}function Ou(t){return Array.isArray(t)?Gu(t):t&&t.bbox?Gu(t.bbox):[360*qu(),180*qu()]}function Ru(t){null!=t&&(Array.isArray(t)?H(t):null!=t.bbox&&H(t.bbox))}function Au(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Ru(e.bbox),null==t&&(t=1);for(var n=[],r=0;r<t;r++)n.push(I(Ou(e.bbox)));return C(n)}function Du(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Ru(e.bbox),null==t&&(t=1),void 0!==e.bbox&&null!==e.bbox||(e.bbox=[-180,-90,180,90]),V(e.num_vertices)&&void 0!==e.num_vertices||(e.num_vertices=10),V(e.max_radial_length)&&void 0!==e.max_radial_length||(e.max_radial_length=10);var n=Math.abs(e.bbox[0]-e.bbox[2]),r=Math.abs(e.bbox[1]-e.bbox[3]),i=Math.min(n/2,r/2);if(e.max_radial_length>i)throw new Error("max_radial_length is greater than the radius of the bbox");for(var o=[e.bbox[0]+e.max_radial_length,e.bbox[1]+e.max_radial_length,e.bbox[2]-e.max_radial_length,e.bbox[3]-e.max_radial_length],s=[],a=function(){var t,n=[],r=p(Array(e.num_vertices+1)).map(Math.random);r.forEach((function(t,e,n){n[e]=e>0?t+n[e-1]:t})),r.forEach((function(t){t=2*t*Math.PI/r[r.length-1];var i=Math.random();n.push([i*(e.max_radial_length||10)*Math.sin(t),i*(e.max_radial_length||10)*Math.cos(t)])})),n[n.length-1]=n[0],n=n.reverse().map((t=Ou(o),function(e){return[e[0]+t[0],e[1]+t[1]]})),s.push(S([n]))},u=0;u<t;u++)a();return C(s)}function Fu(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!Z(e=e||{}))throw new Error("options is invalid");var n=e.bbox;Ru(n);var r=e.num_vertices,i=e.max_length,o=e.max_rotation;null==t&&(t=1),(!V(r)||void 0===r||r<2)&&(r=10),V(i)&&void 0!==i||(i=1e-4),V(o)&&void 0!==o||(o=Math.PI/8);for(var s=[],a=0;a<t;a++){for(var u=[Ou(n)],l=0;l<r-1;l++){var h=(0===l?2*Math.random()*Math.PI:Math.tan((u[l][1]-u[l-1][1])/(u[l][0]-u[l-1][0])))+(Math.random()-.5)*o*2,c=Math.random()*i;u.push([u[l][0]+c*Math.cos(h),u[l][1]+c*Math.sin(h)])}s.push(L(u))}return C(s)}function qu(){return Math.random()-.5}function Gu(t){return[Math.random()*(t[2]-t[0])+t[0],Math.random()*(t[3]-t[1])+t[1]]}var Bu=Object.freeze({__proto__:null,randomLineString:Fu,randomPoint:Au,randomPolygon:Du,randomPosition:Tu});function Yu(t,e){switch("Feature"===t.type?t.geometry.type:t.type){case"GeometryCollection":return mt(t,(function(t){Yu(t,e)})),t;case"LineString":return zu(Q(t),e),t;case"Polygon":return ju(Q(t),e),t;case"MultiLineString":return Q(t).forEach((function(t){zu(t,e)})),t;case"MultiPolygon":return Q(t).forEach((function(t){ju(t,e)})),t;case"Point":case"MultiPoint":return t}}function zu(t,e){Yt(t)===e&&t.reverse()}function ju(t,e){Yt(t[0])!==e&&t[0].reverse();for(var n=1;n<t.length;n++)Yt(t[n])===e&&t[n].reverse()}function Xu(t){var e=t%360;return e<0&&(e+=360),e}function Uu(t,e,n){if(!Z(n=n||{}))throw new Error("options is invalid");var r=n.origin||"centroid",i=n.mutate||!1;if(!t)throw new Error("geojson required");if("number"!=typeof e||e<=0)throw new Error("invalid factor");var o=Array.isArray(r)||"object"===m(r);return!0!==i&&(t=Ai(t)),"FeatureCollection"!==t.type||o?Vu(t,e,r):(dt(t,(function(n,i){t.features[i]=Vu(n,e,r)})),t)}function Vu(t,e,n){var r="Point"===it(t),i=function(t,e){null==e&&(e="centroid");if(Array.isArray(e)||"object"===m(e))return K(e);var n=t.bbox?t.bbox:Rt(t,{recompute:!0}),r=n[0],i=n[1],o=n[2],s=n[3];switch(e){case"sw":case"southwest":case"westsouth":case"bottomleft":return I([r,i]);case"se":case"southeast":case"eastsouth":case"bottomright":return I([o,i]);case"nw":case"northwest":case"westnorth":case"topleft":return I([r,s]);case"ne":case"northeast":case"eastnorth":case"topright":return I([o,s]);case"center":return An(t);case void 0:case null:case"centroid":return gi(t);default:throw new Error("invalid origin")}}(t,n);return 1===e||r||(ct(t,(function(t){var n=Gs(i,t),r=lt(i,t),o=Q(Bs(i,n*e,r));t[0]=o[0],t[1]=o[1],3===t.length&&(t[2]*=e)})),delete t.bbox),t}function Zu(t){for(var e=t,n=[];e.parent;)n.unshift(e),e=e.parent;return n}var Hu={search:function(t,e,n,r){var i;t.cleanDirty();var o=(r=r||{}).heuristic||Hu.heuristics.manhattan,s=null!=(i=r.closest)&&i,a=new Ku((function(t){return t.f})),u=e;for(e.h=o(e,n),a.push(e);a.size()>0;){var l=a.pop();if(l===n)return Zu(l);l.closed=!0;for(var h=t.neighbors(l),c=0,f=h.length;c<f;++c){var g=h[c];if(!g.closed&&!g.isWall()){var v=l.g+g.getCost(l),d=g.visited;(!d||v<g.g)&&(g.visited=!0,g.parent=l,g.h=g.h||o(g,n),g.g=v,g.f=g.g+g.h,t.markDirty(g),s&&(g.h<u.h||g.h===u.h&&g.g<u.g)&&(u=g),d?a.rescoreElement(g):a.push(g))}}}return s?Zu(u):[]},heuristics:{manhattan:function(t,e){return Math.abs(e.x-t.x)+Math.abs(e.y-t.y)},diagonal:function(t,e){var n=Math.sqrt(2),r=Math.abs(e.x-t.x),i=Math.abs(e.y-t.y);return 1*(r+i)+(n-2)*Math.min(r,i)}},cleanNode:function(t){t.f=0,t.g=0,t.h=0,t.visited=!1,t.closed=!1,t.parent=null}};function Wu(t,e){e=e||{},this.nodes=[],this.diagonal=!!e.diagonal,this.grid=[];for(var n=0;n<t.length;n++){this.grid[n]=[];for(var r=0,i=t[n];r<i.length;r++){var o=new Ju(n,r,i[r]);this.grid[n][r]=o,this.nodes.push(o)}}this.init()}function Ju(t,e,n){this.x=t,this.y=e,this.weight=n}function Ku(t){this.content=[],this.scoreFunction=t}function Qu(t,e){for(var n=0;n<e.features.length;n++)if(jt(t,e.features[n]))return!0;return!1}function $u(t,e,n){var r=e[0],i=e[1],o=n[0]-r,s=n[1]-i;if(0!==o||0!==s){var a=((t[0]-r)*o+(t[1]-i)*s)/(o*o+s*s);a>1?(r=n[0],i=n[1]):a>0&&(r+=o*a,i+=s*a)}return(o=t[0]-r)*o+(s=t[1]-i)*s}function tl(t,e,n,r,i){for(var o,s=r,a=e+1;a<n;a++){var u=$u(t[a],t[e],t[n]);u>s&&(o=a,s=u)}s>r&&(o-e>1&&tl(t,e,o,r,i),i.push(t[o]),n-o>1&&tl(t,o,n,r,i))}function el(t,e){var n=t.length-1,r=[t[0]];return tl(t,0,n,e,r),r.push(t[n]),r}function nl(t,e,n){if(t.length<=2)return t;var r=void 0!==e?e*e:1;return t=n?t:function(t,e){for(var n,r,i,o,s,a=t[0],u=[a],l=1,h=t.length;l<h;l++)n=t[l],i=a,o=void 0,s=void 0,o=(r=n)[0]-i[0],s=r[1]-i[1],o*o+s*s>e&&(u.push(n),a=n);return a!==n&&u.push(n),u}(t,r),t=el(t,r)}function rl(t,e,n){return t.map((function(t){if(t.length<4)throw new Error("invalid polygon");for(var r=e,i=nl(t,r,n);!il(i)&&r>=Number.EPSILON;)i=nl(t,r-=.01*r,n);return il(i)?(i[i.length-1][0]===i[0][0]&&i[i.length-1][1]===i[0][1]||i.push(i[0]),i):t}))}function il(t){return!(t.length<3)&&!(3===t.length&&t[2][0]===t[0][0]&&t[2][1]===t[0][1])}function ol(t,e){return{x:t[0]-e[0],y:t[1]-e[1]}}Wu.prototype.init=function(){this.dirtyNodes=[];for(var t=0;t<this.nodes.length;t++)Hu.cleanNode(this.nodes[t])},Wu.prototype.cleanDirty=function(){for(var t=0;t<this.dirtyNodes.length;t++)Hu.cleanNode(this.dirtyNodes[t]);this.dirtyNodes=[]},Wu.prototype.markDirty=function(t){this.dirtyNodes.push(t)},Wu.prototype.neighbors=function(t){var e=[],n=t.x,r=t.y,i=this.grid;return i[n-1]&&i[n-1][r]&&e.push(i[n-1][r]),i[n+1]&&i[n+1][r]&&e.push(i[n+1][r]),i[n]&&i[n][r-1]&&e.push(i[n][r-1]),i[n]&&i[n][r+1]&&e.push(i[n][r+1]),this.diagonal&&(i[n-1]&&i[n-1][r-1]&&e.push(i[n-1][r-1]),i[n+1]&&i[n+1][r-1]&&e.push(i[n+1][r-1]),i[n-1]&&i[n-1][r+1]&&e.push(i[n-1][r+1]),i[n+1]&&i[n+1][r+1]&&e.push(i[n+1][r+1])),e},Wu.prototype.toString=function(){for(var t,e,n,r,i=[],o=this.grid,s=0,a=o.length;s<a;s++){for(t=[],n=0,r=(e=o[s]).length;n<r;n++)t.push(e[n].weight);i.push(t.join(" "))}return i.join("\n")},Ju.prototype.toString=function(){return"["+this.x+" "+this.y+"]"},Ju.prototype.getCost=function(t){return t&&t.x!==this.x&&t.y!==this.y?1.41421*this.weight:this.weight},Ju.prototype.isWall=function(){return 0===this.weight},Ku.prototype={push:function(t){this.content.push(t),this.sinkDown(this.content.length-1)},pop:function(){var t=this.content[0],e=this.content.pop();return this.content.length>0&&(this.content[0]=e,this.bubbleUp(0)),t},remove:function(t){var e=this.content.indexOf(t),n=this.content.pop();e!==this.content.length-1&&(this.content[e]=n,this.scoreFunction(n)<this.scoreFunction(t)?this.sinkDown(e):this.bubbleUp(e))},size:function(){return this.content.length},rescoreElement:function(t){this.sinkDown(this.content.indexOf(t))},sinkDown:function(t){for(var e=this.content[t];t>0;){var n=(t+1>>1)-1,r=this.content[n];if(!(this.scoreFunction(e)<this.scoreFunction(r)))break;this.content[n]=e,this.content[t]=r,t=n}},bubbleUp:function(t){for(var e=this.content.length,n=this.content[t],r=this.scoreFunction(n);;){var i,o=t+1<<1,s=o-1,a=null;if(s<e){var u=this.content[s];(i=this.scoreFunction(u))<r&&(a=s)}if(o<e){var l=this.content[o];this.scoreFunction(l)<(null===a?r:i)&&(a=o)}if(null===a)break;this.content[t]=this.content[a],this.content[a]=n,t=a}}};var sl,al={exports:{}};var ul=function(){if(sl)return al.exports;function t(t,n,i){i=i||2;var o,s,a,h,c,g,v,d=n&&n.length,p=d?n[0]*i:t.length,y=e(t,0,p,i,!0),m=[];if(!y||y.next===y.prev)return m;if(d&&(y=function(t,n,r,i){var o,s,a,h=[];for(o=0,s=n.length;o<s;o++)(a=e(t,n[o]*i,o<s-1?n[o+1]*i:t.length,i,!1))===a.next&&(a.steiner=!0),h.push(f(a));for(h.sort(u),o=0;o<h.length;o++)r=l(h[o],r);return r}(t,n,y,i)),t.length>80*i){o=a=t[0],s=h=t[1];for(var _=i;_<p;_+=i)(c=t[_])<o&&(o=c),(g=t[_+1])<s&&(s=g),c>a&&(a=c),g>h&&(h=g);v=0!==(v=Math.max(a-o,h-s))?32767/v:0}return r(y,m,i,o,s,v,0),m}function e(t,e,n,r,i){var o,s;if(i===I(t,e,n,r)>0)for(o=e;o<n;o+=r)s=k(o,t[o],t[o+1],s);else for(o=n-r;o>=e;o-=r)s=k(o,t[o],t[o+1],s);return s&&p(s,s.next)&&(w(s),s=s.next),s}function n(t,e){if(!t)return t;e||(e=t);var n,r=t;do{if(n=!1,r.steiner||!p(r,r.next)&&0!==d(r.prev,r,r.next))r=r.next;else{if(w(r),(r=e=r.prev)===r.next)break;n=!0}}while(n||r!==e);return e}function r(t,e,u,l,h,f,g){if(t){!g&&f&&function(t,e,n,r){var i=t;do{0===i.z&&(i.z=c(i.x,i.y,e,n,r)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,function(t){var e,n,r,i,o,s,a,u,l=1;do{for(n=t,t=null,o=null,s=0;n;){for(s++,r=n,a=0,e=0;e<l&&(a++,r=r.nextZ);e++);for(u=l;a>0||u>0&&r;)0!==a&&(0===u||!r||n.z<=r.z)?(i=n,n=n.nextZ,a--):(i=r,r=r.nextZ,u--),o?o.nextZ=i:t=i,i.prevZ=o,o=i;n=r}o.nextZ=null,l*=2}while(s>1)}(i)}(t,l,h,f);for(var v,d,p=t;t.prev!==t.next;)if(v=t.prev,d=t.next,f?o(t,l,h,f):i(t))e.push(v.i/u|0),e.push(t.i/u|0),e.push(d.i/u|0),w(t),t=d.next,p=d.next;else if((t=d)===p){g?1===g?r(t=s(n(t),e,u),e,u,l,h,f,2):2===g&&a(t,e,u,l,h,f):r(n(t),e,u,l,h,f,1);break}}}function i(t){var e=t.prev,n=t,r=t.next;if(d(e,n,r)>=0)return!1;for(var i=e.x,o=n.x,s=r.x,a=e.y,u=n.y,l=r.y,h=i<o?i<s?i:s:o<s?o:s,c=a<u?a<l?a:l:u<l?u:l,f=i>o?i>s?i:s:o>s?o:s,v=a>u?a>l?a:l:u>l?u:l,p=r.next;p!==e;){if(p.x>=h&&p.x<=f&&p.y>=c&&p.y<=v&&g(i,a,o,u,s,l,p.x,p.y)&&d(p.prev,p,p.next)>=0)return!1;p=p.next}return!0}function o(t,e,n,r){var i=t.prev,o=t,s=t.next;if(d(i,o,s)>=0)return!1;for(var a=i.x,u=o.x,l=s.x,h=i.y,f=o.y,v=s.y,p=a<u?a<l?a:l:u<l?u:l,y=h<f?h<v?h:v:f<v?f:v,m=a>u?a>l?a:l:u>l?u:l,_=h>f?h>v?h:v:f>v?f:v,x=c(p,y,e,n,r),E=c(m,_,e,n,r),k=t.prevZ,w=t.nextZ;k&&k.z>=x&&w&&w.z<=E;){if(k.x>=p&&k.x<=m&&k.y>=y&&k.y<=_&&k!==i&&k!==s&&g(a,h,u,f,l,v,k.x,k.y)&&d(k.prev,k,k.next)>=0)return!1;if(k=k.prevZ,w.x>=p&&w.x<=m&&w.y>=y&&w.y<=_&&w!==i&&w!==s&&g(a,h,u,f,l,v,w.x,w.y)&&d(w.prev,w,w.next)>=0)return!1;w=w.nextZ}for(;k&&k.z>=x;){if(k.x>=p&&k.x<=m&&k.y>=y&&k.y<=_&&k!==i&&k!==s&&g(a,h,u,f,l,v,k.x,k.y)&&d(k.prev,k,k.next)>=0)return!1;k=k.prevZ}for(;w&&w.z<=E;){if(w.x>=p&&w.x<=m&&w.y>=y&&w.y<=_&&w!==i&&w!==s&&g(a,h,u,f,l,v,w.x,w.y)&&d(w.prev,w,w.next)>=0)return!1;w=w.nextZ}return!0}function s(t,e,r){var i=t;do{var o=i.prev,s=i.next.next;!p(o,s)&&y(o,i,i.next,s)&&x(o,s)&&x(s,o)&&(e.push(o.i/r|0),e.push(i.i/r|0),e.push(s.i/r|0),w(i),w(i.next),i=t=s),i=i.next}while(i!==t);return n(i)}function a(t,e,i,o,s,a){var u=t;do{for(var l=u.next.next;l!==u.prev;){if(u.i!==l.i&&v(u,l)){var h=E(u,l);return u=n(u,u.next),h=n(h,h.next),r(u,e,i,o,s,a,0),void r(h,e,i,o,s,a,0)}l=l.next}u=u.next}while(u!==t)}function u(t,e){return t.x-e.x}function l(t,e){var r=function(t,e){var n,r=e,i=t.x,o=t.y,s=-1/0;do{if(o<=r.y&&o>=r.next.y&&r.next.y!==r.y){var a=r.x+(o-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(a<=i&&a>s&&(s=a,n=r.x<r.next.x?r:r.next,a===i))return n}r=r.next}while(r!==e);if(!n)return null;var u,l=n,c=n.x,f=n.y,v=1/0;r=n;do{i>=r.x&&r.x>=c&&i!==r.x&&g(o<f?i:s,o,c,f,o<f?s:i,o,r.x,r.y)&&(u=Math.abs(o-r.y)/(i-r.x),x(r,t)&&(u<v||u===v&&(r.x>n.x||r.x===n.x&&h(n,r)))&&(n=r,v=u)),r=r.next}while(r!==l);return n}(t,e);if(!r)return e;var i=E(r,t);return n(i,i.next),n(r,r.next)}function h(t,e){return d(t.prev,t,e.prev)<0&&d(e.next,t,t.next)<0}function c(t,e,n,r,i){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-n)*i|0)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-r)*i|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function f(t){var e=t,n=t;do{(e.x<n.x||e.x===n.x&&e.y<n.y)&&(n=e),e=e.next}while(e!==t);return n}function g(t,e,n,r,i,o,s,a){return(i-s)*(e-a)>=(t-s)*(o-a)&&(t-s)*(r-a)>=(n-s)*(e-a)&&(n-s)*(o-a)>=(i-s)*(r-a)}function v(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&y(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1}(t,e)&&(x(t,e)&&x(e,t)&&function(t,e){var n=t,r=!1,i=(t.x+e.x)/2,o=(t.y+e.y)/2;do{n.y>o!=n.next.y>o&&n.next.y!==n.y&&i<(n.next.x-n.x)*(o-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next}while(n!==t);return r}(t,e)&&(d(t.prev,t,e.prev)||d(t,e.prev,e))||p(t,e)&&d(t.prev,t,t.next)>0&&d(e.prev,e,e.next)>0)}function d(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function p(t,e){return t.x===e.x&&t.y===e.y}function y(t,e,n,r){var i=_(d(t,e,n)),o=_(d(t,e,r)),s=_(d(n,r,t)),a=_(d(n,r,e));return i!==o&&s!==a||(!(0!==i||!m(t,n,e))||(!(0!==o||!m(t,r,e))||(!(0!==s||!m(n,t,r))||!(0!==a||!m(n,e,r)))))}function m(t,e,n){return e.x<=Math.max(t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math.max(t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function _(t){return t>0?1:t<0?-1:0}function x(t,e){return d(t.prev,t,t.next)<0?d(t,e,t.next)>=0&&d(t,t.prev,e)>=0:d(t,e,t.prev)<0||d(t,t.next,e)<0}function E(t,e){var n=new b(t.i,t.x,t.y),r=new b(e.i,e.x,e.y),i=t.next,o=e.prev;return t.next=e,e.prev=t,n.next=i,i.prev=n,r.next=n,n.prev=r,o.next=r,r.prev=o,r}function k(t,e,n,r){var i=new b(t,e,n);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function w(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function b(t,e,n){this.i=t,this.x=e,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function I(t,e,n,r){for(var i=0,o=e,s=n-r;o<n;o+=r)i+=(t[s]-t[o])*(t[o+1]+t[s+1]),s=o;return i}return sl=1,al.exports=t,al.exports.default=t,t.deviation=function(t,e,n,r){var i=e&&e.length,o=i?e[0]*n:t.length,s=Math.abs(I(t,0,o,n));if(i)for(var a=0,u=e.length;a<u;a++){var l=e[a]*n,h=a<u-1?e[a+1]*n:t.length;s-=Math.abs(I(t,l,h,n))}var c=0;for(a=0;a<r.length;a+=3){var f=r[a]*n,g=r[a+1]*n,v=r[a+2]*n;c+=Math.abs((t[f]-t[v])*(t[g+1]-t[f+1])-(t[f]-t[g])*(t[v+1]-t[f+1]))}return 0===s&&0===c?0:Math.abs((c-s)/s)},t.flatten=function(t){for(var e=t[0][0].length,n={vertices:[],holes:[],dimensions:e},r=0,i=0;i<t.length;i++){for(var o=0;o<t[i].length;o++)for(var s=0;s<e;s++)n.vertices.push(t[i][o][s]);i>0&&(r+=t[i-1].length,n.holes.push(r))}return n},al.exports}(),ll=mn(ul);function hl(t){var e=function(t){for(var e=t[0][0].length,n={vertices:[],holes:[],dimensions:e},r=0,i=0;i<t.length;i++){for(var o=0;o<t[i].length;o++)for(var s=0;s<e;s++)n.vertices.push(t[i][o][s]);i>0&&(r+=t[i-1].length,n.holes.push(r))}return n}(t),n=ll(e.vertices,e.holes,2),r=[],i=[];n.forEach((function(t,r){var o=n[r];i.push([e.vertices[2*o],e.vertices[2*o+1]])}));for(var o=0;o<i.length;o+=3){var s=i.slice(o,o+3);s.push(i[o]),r.push(S([s]))}return r}function cl(t,e,n){if("Polygon"!==t.geometry.type)throw new Error("The input feature must be a Polygon");void 0===n&&(n=1);var r=t.geometry.coordinates,i=[],o={};if(n){for(var s=[],a=0;a<r.length;a++)for(var u=0;u<r[a].length-1;u++)s.push(d(a,u));var l=new Fe;l.load(s)}for(var h=0;h<r.length;h++)for(var c=0;c<r[h].length-1;c++){if(n)l.search(d(h,c)).forEach((function(t){var e=t.ring,n=t.edge;v(h,c,e,n)}));else for(var f=0;f<r.length;f++)for(var g=0;g<r[f].length-1;g++)v(h,c,f,g)}return e||(i={type:"Feature",geometry:{type:"MultiPoint",coordinates:i}}),i;function v(t,n,s,a){var u,l,h=r[t][n],c=r[t][n+1],f=r[s][a],g=r[s][a+1],v=function(t,e,n,r){if(fl(t,n)||fl(t,r)||fl(e,n)||fl(r,n))return null;var i=t[0],o=t[1],s=e[0],a=e[1],u=n[0],l=n[1],h=r[0],c=r[1],f=(i-s)*(l-c)-(o-a)*(u-h);if(0===f)return null;var g=((i*a-o*s)*(u-h)-(i-s)*(u*c-l*h))/f,v=((i*a-o*s)*(l-c)-(o-a)*(u*c-l*h))/f;return[g,v]}(h,c,f,g);if(null!==v&&(u=c[0]!==h[0]?(v[0]-h[0])/(c[0]-h[0]):(v[1]-h[1])/(c[1]-h[1]),l=g[0]!==f[0]?(v[0]-f[0])/(g[0]-f[0]):(v[1]-f[1])/(g[1]-f[1]),!(u>=1||u<=0||l>=1||l<=0))){var d=v,p=!o[d];p&&(o[d]=!0),e?i.push(e(v,t,n,h,c,u,s,a,f,g,l,p)):i.push(v)}}function d(t,e){var n,i,o,s,a=r[t][e],u=r[t][e+1];return a[0]<u[0]?(n=a[0],i=u[0]):(n=u[0],i=a[0]),a[1]<u[1]?(o=a[1],s=u[1]):(o=u[1],s=a[1]),{minX:n,minY:o,maxX:i,maxY:s,ring:t,edge:e}}}function fl(t,e){if(!t||!e)return!1;if(t.length!==e.length)return!1;for(var n=0,r=t.length;n<r;n++)if(t[n]instanceof Array&&e[n]instanceof Array){if(!fl(t[n],e[n]))return!1}else if(t[n]!==e[n])return!1;return!0}function gl(t){if("Feature"!=t.type)throw new Error("The input must a geojson object of type Feature");if(void 0===t.geometry||null==t.geometry)throw new Error("The input must a geojson object with a non-empty geometry");if("Polygon"!=t.geometry.type)throw new Error("The input must be a geojson Polygon");for(var e=t.geometry.coordinates.length,n=[],r=0;r<e;r++){var i=t.geometry.coordinates[r];ml(i[0],i[i.length-1])||i.push(i[0]);for(var o=0;o<i.length-1;o++)n.push(i[o])}if(!function(t){for(var e={},n=1,r=0,i=t.length;r<i;++r){if(Object.prototype.hasOwnProperty.call(e,t[r])){n=0;break}e[t[r]]=1}return n}(n))throw new Error("The input polygon may not have duplicate vertices (except for the first and last vertex of each ring)");var s=n.length,a=cl(t,(function(t,e,n,r,i,o,s,a,u,l,h,c){return[t,e,n,r,i,o,s,a,u,l,h,c]})),u=a.length;if(0==u){var l=[];for(r=0;r<e;r++)l.push(S([t.geometry.coordinates[r]],{parent:-1,winding:yl(t.geometry.coordinates[r])}));var h=C(l);return q(),G(),h}var c=[],f=[];for(r=0;r<e;r++){c.push([]);for(o=0;o<t.geometry.coordinates[r].length-1;o++)c[r].push([new vl(t.geometry.coordinates[r][_l(o+1,t.geometry.coordinates[r].length-1)],1,[r,o],[r,_l(o+1,t.geometry.coordinates[r].length-1)],void 0)]),f.push(new dl(t.geometry.coordinates[r][o],[r,_l(o-1,t.geometry.coordinates[r].length-1)],[r,o],void 0,void 0,!1,!0))}for(r=0;r<u;r++)c[a[r][1]][a[r][2]].push(new vl(a[r][0],a[r][5],[a[r][1],a[r][2]],[a[r][6],a[r][7]],void 0)),a[r][11]&&f.push(new dl(a[r][0],[a[r][1],a[r][2]],[a[r][6],a[r][7]],void 0,void 0,!0,!0));var g=f.length;for(r=0;r<c.length;r++)for(o=0;o<c[r].length;o++)c[r][o].sort((function(t,e){return t.param<e.param?-1:1}));var v=[];for(r=0;r<g;r++)v.push({minX:f[r].coord[0],minY:f[r].coord[1],maxX:f[r].coord[0],maxY:f[r].coord[1],index:r});var d=new Fe;d.load(v);for(r=0;r<c.length;r++)for(o=0;o<c[r].length;o++)for(var p=0;p<c[r][o].length;p++){m=p==c[r][o].length-1?c[r][_l(o+1,t.geometry.coordinates[r].length-1)][0].coord:c[r][o][p+1].coord;var y=d.search({minX:m[0],minY:m[1],maxX:m[0],maxY:m[1]})[0];c[r][o][p].nxtIsectAlongEdgeIn=y.index}for(r=0;r<c.length;r++)for(o=0;o<c[r].length;o++)for(p=0;p<c[r][o].length;p++){var m=c[r][o][p].coord,_=(y=d.search({minX:m[0],minY:m[1],maxX:m[0],maxY:m[1]})[0]).index;_<s?f[_].nxtIsectAlongRingAndEdge2=c[r][o][p].nxtIsectAlongEdgeIn:ml(f[_].ringAndEdge1,c[r][o][p].ringAndEdgeIn)?f[_].nxtIsectAlongRingAndEdge1=c[r][o][p].nxtIsectAlongEdgeIn:f[_].nxtIsectAlongRingAndEdge2=c[r][o][p].nxtIsectAlongEdgeIn}var x=[];for(r=0,o=0;o<e;o++){var E=r;for(p=0;p<t.geometry.coordinates[o].length-1;p++)f[r].coord[0]<f[E].coord[0]&&(E=r),r++;var k=f[E].nxtIsectAlongRingAndEdge2;for(p=0;p<f.length;p++)if(f[p].nxtIsectAlongRingAndEdge1==E||f[p].nxtIsectAlongRingAndEdge2==E){var w=p;break}var b=pl([f[w].coord,f[E].coord,f[k].coord],!0)?1:-1;x.push({isect:E,parent:-1,winding:b})}x.sort((function(t,e){return f[t.isect].coord>f[e.isect].coord?-1:1}));for(l=[];x.length>0;){var I=x.pop(),N=I.isect,M=I.parent,L=I.winding,P=l.length,T=[f[N].coord],O=N;if(f[N].ringAndEdge1Walkable)var R=f[N].ringAndEdge1,A=f[N].nxtIsectAlongRingAndEdge1;else R=f[N].ringAndEdge2,A=f[N].nxtIsectAlongRingAndEdge2;for(;!ml(f[N].coord,f[A].coord);){T.push(f[A].coord);var D=void 0;for(r=0;r<x.length;r++)if(x[r].isect==A){D=r;break}if(null!=D&&x.splice(D,1),ml(R,f[A].ringAndEdge1)){if(R=f[A].ringAndEdge2,f[A].ringAndEdge2Walkable=!1,f[A].ringAndEdge1Walkable){var F={isect:A};pl([f[O].coord,f[A].coord,f[f[A].nxtIsectAlongRingAndEdge2].coord],1==L)?(F.parent=M,F.winding=-L):(F.parent=P,F.winding=L),x.push(F)}O=A,A=f[A].nxtIsectAlongRingAndEdge2}else{if(R=f[A].ringAndEdge1,f[A].ringAndEdge1Walkable=!1,f[A].ringAndEdge2Walkable){F={isect:A};pl([f[O].coord,f[A].coord,f[f[A].nxtIsectAlongRingAndEdge1].coord],1==L)?(F.parent=M,F.winding=-L):(F.parent=P,F.winding=L),x.push(F)}O=A,A=f[A].nxtIsectAlongRingAndEdge1}}T.push(f[A].coord),l.push(S([T],{index:P,parent:M,winding:L,netWinding:void 0}))}h=C(l);function q(){for(var t=[],e=0;e<h.features.length;e++)-1==h.features[e].properties.parent&&t.push(e);if(t.length>1)for(e=0;e<t.length;e++){for(var n=-1,r=0;r<h.features.length;r++)t[e]!=r&&jt(h.features[t[e]].geometry.coordinates[0][0],h.features[r],{ignoreBoundary:!0})&&Lt(h.features[r])<Infinity&&(n=r);h.features[t[e]].properties.parent=n}}function G(){for(var t=0;t<h.features.length;t++)if(-1==h.features[t].properties.parent){var e=h.features[t].properties.winding;h.features[t].properties.netWinding=e,B(t,e)}}function B(t,e){for(var n=0;n<h.features.length;n++)if(h.features[n].properties.parent==t){var r=e+h.features[n].properties.winding;h.features[n].properties.netWinding=r,B(n,r)}}return q(),G(),h}var vl=function(t,e,n,r,i){this.coord=t,this.param=e,this.ringAndEdgeIn=n,this.ringAndEdgeOut=r,this.nxtIsectAlongEdgeIn=i},dl=function(t,e,n,r,i,o,s){this.coord=t,this.ringAndEdge1=e,this.ringAndEdge2=n,this.nxtIsectAlongRingAndEdge1=r,this.nxtIsectAlongRingAndEdge2=i,this.ringAndEdge1Walkable=o,this.ringAndEdge2Walkable=s};function pl(t,e){if(void 0===e&&(e=!0),3!=t.length)throw new Error("This function requires an array of three points [x,y]");return(t[1][0]-t[0][0])*(t[2][1]-t[0][1])-(t[1][1]-t[0][1])*(t[2][0]-t[0][0])>=0==e}function yl(t){for(var e=0,n=0;n<t.length-1;n++)t[n][0]<t[e][0]&&(e=n);if(pl([t[_l(e-1,t.length-1)],t[e],t[_l(e+1,t.length-1)]],!0))var r=1;else r=-1;return r}function ml(t,e){if(!t||!e)return!1;if(t.length!=e.length)return!1;for(var n=0,r=t.length;n<r;n++)if(t[n]instanceof Array&&e[n]instanceof Array){if(!ml(t[n],e[n]))return!1}else if(t[n]!=e[n])return!1;return!0}function _l(t,e){return(t%e+e)%e}function xl(t){return function(){return t}}function El(t){return t[0]}function kl(t){return t[1]}function wl(){this._=null}function bl(t){t.U=t.C=t.L=t.R=t.P=t.N=null}function Il(t,e){var n=e,r=e.R,i=n.U;i?i.L===n?i.L=r:i.R=r:t._=r,r.U=i,n.U=r,n.R=r.L,n.R&&(n.R.U=n),r.L=n}function Nl(t,e){var n=e,r=e.L,i=n.U;i?i.L===n?i.L=r:i.R=r:t._=r,r.U=i,n.U=r,n.L=r.R,n.L&&(n.L.U=n),r.R=n}function Sl(t){for(;t.L;)t=t.L;return t}function Ml(t,e,n,r){var i=[null,null],o=Ql.push(i)-1;return i.left=t,i.right=e,n&&Pl(i,t,e,n),r&&Pl(i,e,t,r),Jl[t.index].halfedges.push(o),Jl[e.index].halfedges.push(o),i}function Ll(t,e,n){var r=[e,n];return r.left=t,r}function Pl(t,e,n,r){t[0]||t[1]?t.left===n?t[1]=r:t[0]=r:(t[0]=r,t.left=e,t.right=n)}function Cl(t,e,n,r,i){var o,s=t[0],a=t[1],u=s[0],l=s[1],h=0,c=1,f=a[0]-u,g=a[1]-l;if(o=e-u,f||!(o>0)){if(o/=f,f<0){if(o<h)return;o<c&&(c=o)}else if(f>0){if(o>c)return;o>h&&(h=o)}if(o=r-u,f||!(o<0)){if(o/=f,f<0){if(o>c)return;o>h&&(h=o)}else if(f>0){if(o<h)return;o<c&&(c=o)}if(o=n-l,g||!(o>0)){if(o/=g,g<0){if(o<h)return;o<c&&(c=o)}else if(g>0){if(o>c)return;o>h&&(h=o)}if(o=i-l,g||!(o<0)){if(o/=g,g<0){if(o>c)return;o>h&&(h=o)}else if(g>0){if(o<h)return;o<c&&(c=o)}return!(h>0||c<1)||(h>0&&(t[0]=[u+h*f,l+h*g]),c<1&&(t[1]=[u+c*f,l+c*g]),!0)}}}}}function Tl(t,e,n,r,i){var o=t[1];if(o)return!0;var s,a,u=t[0],l=t.left,h=t.right,c=l[0],f=l[1],g=h[0],v=h[1],d=(c+g)/2,p=(f+v)/2;if(v===f){if(d<e||d>=r)return;if(c>g){if(u){if(u[1]>=i)return}else u=[d,n];o=[d,i]}else{if(u){if(u[1]<n)return}else u=[d,i];o=[d,n]}}else if(a=p-(s=(c-g)/(v-f))*d,s<-1||s>1)if(c>g){if(u){if(u[1]>=i)return}else u=[(n-a)/s,n];o=[(i-a)/s,i]}else{if(u){if(u[1]<n)return}else u=[(i-a)/s,i];o=[(n-a)/s,n]}else if(f<v){if(u){if(u[0]>=r)return}else u=[e,s*e+a];o=[r,s*r+a]}else{if(u){if(u[0]<e)return}else u=[r,s*r+a];o=[e,s*e+a]}return t[0]=u,t[1]=o,!0}function Ol(t,e){var n=t.site,r=e.left,i=e.right;return n===i&&(i=r,r=n),i?Math.atan2(i[1]-r[1],i[0]-r[0]):(n===r?(r=e[1],i=e[0]):(r=e[0],i=e[1]),Math.atan2(r[0]-i[0],i[1]-r[1]))}function Rl(t,e){return e[+(e.left!==t.site)]}function Al(t,e){return e[+(e.left===t.site)]}wl.prototype={constructor:wl,insert:function(t,e){var n,r,i;if(t){if(e.P=t,e.N=t.N,t.N&&(t.N.P=e),t.N=e,t.R){for(t=t.R;t.L;)t=t.L;t.L=e}else t.R=e;n=t}else this._?(t=Sl(this._),e.P=null,e.N=t,t.P=t.L=e,n=t):(e.P=e.N=null,this._=e,n=null);for(e.L=e.R=null,e.U=n,e.C=!0,t=e;n&&n.C;)n===(r=n.U).L?(i=r.R)&&i.C?(n.C=i.C=!1,r.C=!0,t=r):(t===n.R&&(Il(this,n),n=(t=n).U),n.C=!1,r.C=!0,Nl(this,r)):(i=r.L)&&i.C?(n.C=i.C=!1,r.C=!0,t=r):(t===n.L&&(Nl(this,n),n=(t=n).U),n.C=!1,r.C=!0,Il(this,r)),n=t.U;this._.C=!1},remove:function(t){t.N&&(t.N.P=t.P),t.P&&(t.P.N=t.N),t.N=t.P=null;var e,n,r,i=t.U,o=t.L,s=t.R;if(n=o?s?Sl(s):o:s,i?i.L===t?i.L=n:i.R=n:this._=n,o&&s?(r=n.C,n.C=t.C,n.L=o,o.U=n,n!==s?(i=n.U,n.U=t.U,t=n.R,i.L=t,n.R=s,s.U=n):(n.U=i,i=n,t=n.R)):(r=t.C,t=n),t&&(t.U=i),!r)if(t&&t.C)t.C=!1;else{do{if(t===this._)break;if(t===i.L){if((e=i.R).C&&(e.C=!1,i.C=!0,Il(this,i),e=i.R),e.L&&e.L.C||e.R&&e.R.C){e.R&&e.R.C||(e.L.C=!1,e.C=!0,Nl(this,e),e=i.R),e.C=i.C,i.C=e.R.C=!1,Il(this,i),t=this._;break}}else if((e=i.L).C&&(e.C=!1,i.C=!0,Nl(this,i),e=i.L),e.L&&e.L.C||e.R&&e.R.C){e.L&&e.L.C||(e.R.C=!1,e.C=!0,Il(this,e),e=i.L),e.C=i.C,i.C=e.L.C=!1,Nl(this,i),t=this._;break}e.C=!0,t=i,i=i.U}while(!t.C);t&&(t.C=!1)}}};var Dl,Fl=[];function ql(){bl(this),this.x=this.y=this.arc=this.site=this.cy=null}function Gl(t){var e=t.P,n=t.N;if(e&&n){var r=e.site,i=t.site,o=n.site;if(r!==o){var s=i[0],a=i[1],u=r[0]-s,l=r[1]-a,h=o[0]-s,c=o[1]-a,f=2*(u*c-l*h);if(!(f>=-1e-12)){var g=u*u+l*l,v=h*h+c*c,d=(c*g-l*v)/f,p=(u*v-h*g)/f,y=Fl.pop()||new ql;y.arc=t,y.site=i,y.x=d+s,y.y=(y.cy=p+a)+Math.sqrt(d*d+p*p),t.circle=y;for(var m=null,_=Kl._;_;)if(y.y<_.y||y.y===_.y&&y.x<=_.x){if(!_.L){m=_.P;break}_=_.L}else{if(!_.R){m=_;break}_=_.R}Kl.insert(m,y),m||(Dl=y)}}}}function Bl(t){var e=t.circle;e&&(e.P||(Dl=e.N),Kl.remove(e),Fl.push(e),bl(e),t.circle=null)}var Yl=[];function zl(){bl(this),this.edge=this.site=this.circle=null}function jl(t){var e=Yl.pop()||new zl;return e.site=t,e}function Xl(t){Bl(t),Wl.remove(t),Yl.push(t),bl(t)}function Ul(t){var e=t.circle,n=e.x,r=e.cy,i=[n,r],o=t.P,s=t.N,a=[t];Xl(t);for(var u=o;u.circle&&Math.abs(n-u.circle.x)<$l&&Math.abs(r-u.circle.cy)<$l;)o=u.P,a.unshift(u),Xl(u),u=o;a.unshift(u),Bl(u);for(var l=s;l.circle&&Math.abs(n-l.circle.x)<$l&&Math.abs(r-l.circle.cy)<$l;)s=l.N,a.push(l),Xl(l),l=s;a.push(l),Bl(l);var h,c=a.length;for(h=1;h<c;++h)l=a[h],u=a[h-1],Pl(l.edge,u.site,l.site,i);u=a[0],(l=a[c-1]).edge=Ml(u.site,l.site,null,i),Gl(u),Gl(l)}function Vl(t){for(var e,n,r,i,o=t[0],s=t[1],a=Wl._;a;)if((r=Zl(a,s)-o)>$l)a=a.L;else{if(!((i=o-Hl(a,s))>$l)){r>-1e-6?(e=a.P,n=a):i>-1e-6?(e=a,n=a.N):e=n=a;break}if(!a.R){e=a;break}a=a.R}!function(t){Jl[t.index]={site:t,halfedges:[]}}(t);var u=jl(t);if(Wl.insert(e,u),e||n){if(e===n)return Bl(e),n=jl(e.site),Wl.insert(u,n),u.edge=n.edge=Ml(e.site,u.site),Gl(e),void Gl(n);if(n){Bl(e),Bl(n);var l=e.site,h=l[0],c=l[1],f=t[0]-h,g=t[1]-c,v=n.site,d=v[0]-h,p=v[1]-c,y=2*(f*p-g*d),m=f*f+g*g,_=d*d+p*p,x=[(p*m-g*_)/y+h,(f*_-d*m)/y+c];Pl(n.edge,l,v,x),u.edge=Ml(l,t,null,x),n.edge=Ml(t,v,null,x),Gl(e),Gl(n)}else u.edge=Ml(e.site,u.site)}}function Zl(t,e){var n=t.site,r=n[0],i=n[1],o=i-e;if(!o)return r;var s=t.P;if(!s)return-1/0;var a=(n=s.site)[0],u=n[1],l=u-e;if(!l)return a;var h=a-r,c=1/o-1/l,f=h/l;return c?(-f+Math.sqrt(f*f-2*c*(h*h/(-2*l)-u+l/2+i-o/2)))/c+r:(r+a)/2}function Hl(t,e){var n=t.N;if(n)return Zl(n,e);var r=t.site;return r[1]===e?r[0]:1/0}var Wl,Jl,Kl,Ql,$l=1e-6;function th(t,e){return e[1]-t[1]||e[0]-t[0]}function eh(t,e){var n,r,i,o=t.sort(th).pop();for(Ql=[],Jl=new Array(t.length),Wl=new wl,Kl=new wl;;)if(i=Dl,o&&(!i||o[1]<i.y||o[1]===i.y&&o[0]<i.x))o[0]===n&&o[1]===r||(Vl(o),n=o[0],r=o[1]),o=t.pop();else{if(!i)break;Ul(i.arc)}if(function(){for(var t,e,n,r,i=0,o=Jl.length;i<o;++i)if((t=Jl[i])&&(r=(e=t.halfedges).length)){var s=new Array(r),a=new Array(r);for(n=0;n<r;++n)s[n]=n,a[n]=Ol(t,Ql[e[n]]);for(s.sort((function(t,e){return a[e]-a[t]})),n=0;n<r;++n)a[n]=e[s[n]];for(n=0;n<r;++n)e[n]=a[n]}}(),e){var s=+e[0][0],a=+e[0][1],u=+e[1][0],l=+e[1][1];!function(t,e,n,r){for(var i,o=Ql.length;o--;)Tl(i=Ql[o],t,e,n,r)&&Cl(i,t,e,n,r)&&(Math.abs(i[0][0]-i[1][0])>$l||Math.abs(i[0][1]-i[1][1])>$l)||delete Ql[o]}(s,a,u,l),function(t,e,n,r){var i,o,s,a,u,l,h,c,f,g,v,d,p=Jl.length,y=!0;for(i=0;i<p;++i)if(o=Jl[i]){for(s=o.site,a=(u=o.halfedges).length;a--;)Ql[u[a]]||u.splice(a,1);for(a=0,l=u.length;a<l;)v=(g=Al(o,Ql[u[a]]))[0],d=g[1],c=(h=Rl(o,Ql[u[++a%l]]))[0],f=h[1],(Math.abs(v-c)>$l||Math.abs(d-f)>$l)&&(u.splice(a,0,Ql.push(Ll(s,g,Math.abs(v-t)<$l&&r-d>$l?[t,Math.abs(c-t)<$l?f:r]:Math.abs(d-r)<$l&&n-v>$l?[Math.abs(f-r)<$l?c:n,r]:Math.abs(v-n)<$l&&d-e>$l?[n,Math.abs(c-n)<$l?f:e]:Math.abs(d-e)<$l&&v-t>$l?[Math.abs(f-e)<$l?c:t,e]:null))-1),++l);l&&(y=!1)}if(y){var m,_,x,E=1/0;for(i=0,y=null;i<p;++i)(o=Jl[i])&&(x=(m=(s=o.site)[0]-t)*m+(_=s[1]-e)*_)<E&&(E=x,y=o);if(y){var k=[t,e],w=[t,r],b=[n,r],I=[n,e];y.halfedges.push(Ql.push(Ll(s=y.site,k,w))-1,Ql.push(Ll(s,w,b))-1,Ql.push(Ll(s,b,I))-1,Ql.push(Ll(s,I,k))-1)}}for(i=0;i<p;++i)(o=Jl[i])&&(o.halfedges.length||delete Jl[i])}(s,a,u,l)}this.edges=Ql,this.cells=Jl,Wl=Kl=Ql=Jl=null}eh.prototype={constructor:eh,polygons:function(){var t=this.edges;return this.cells.map((function(e){var n=e.halfedges.map((function(n){return Rl(e,t[n])}));return n.data=e.site.data,n}))},triangles:function(){var t=[],e=this.edges;return this.cells.forEach((function(n,r){if(o=(i=n.halfedges).length)for(var i,o,s,a,u,l,h=n.site,c=-1,f=e[i[o-1]],g=f.left===h?f.right:f.left;++c<o;)s=g,g=(f=e[i[c]]).left===h?f.right:f.left,s&&g&&r<s.index&&r<g.index&&(u=s,l=g,((a=h)[0]-l[0])*(u[1]-a[1])-(a[0]-u[0])*(l[1]-a[1])<0)&&t.push([h.data,s.data,g.data])})),t},links:function(){return this.edges.filter((function(t){return t.right})).map((function(t){return{source:t.left.data,target:t.right.data}}))},find:function(t,e,n){for(var r,i,o=this,s=o._found||0,a=o.cells.length;!(i=o.cells[s]);)if(++s>=a)return null;var u=t-i.site[0],l=e-i.site[1],h=u*u+l*l;do{i=o.cells[r=s],s=null,i.halfedges.forEach((function(n){var r=o.edges[n],a=r.left;if(a!==i.site&&a||(a=r.right)){var u=t-a[0],l=e-a[1],c=u*u+l*l;c<h&&(h=c,s=a.index)}}))}while(null!==s);return o._found=r,null==n||h<=n*n?i.site:null}},t.along=function(t,e){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=rt(t).coordinates,i=0,o=0;o<r.length&&!(e>=i&&o===r.length-1);o++){if(i>=e){var s=e-i;if(s){var a=st(r[o],r[o-1])-180;return at(r[o],s,a,n)}return I(r[o])}i+=ut(r[o],r[o+1],n)}return I(r[r.length-1])},t.angle=function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(!Z(r))throw new Error("options is invalid");if(!t)throw new Error("startPoint is required");if(!e)throw new Error("midPoint is required");if(!n)throw new Error("endPoint is required");var i=t,o=e,s=n,a=B(!0!==r.mercator?st(o,i):lt(o,i)),u=B(!0!==r.mercator?st(o,s):lt(o,s));u<a&&(u+=360);var l=u-a;return!0===r.explementary?360-l:l},t.applyFilter=Xi,t.area=Lt,t.areaFactors=k,t.azimuthToBearing=Y,t.bbox=Rt,t.bboxClip=function(t,e){var n=rt(t),r=n.type,i="Feature"===t.type?t.properties:{},o=n.coordinates;switch(r){case"LineString":case"MultiLineString":var s=[];return"LineString"===r&&(o=[o]),o.forEach((function(t){!function(t,e,n){var r,i,o,s,a,u=t.length,l=Ft(t[0],e),h=[];for(n||(n=[]),r=1;r<u;r++){for(s=t[r-1],i=o=Ft(a=t[r],e);;){if(!(l|i)){h.push(s),i!==o?(h.push(a),r<u-1&&(n.push(h),h=[])):r===u-1&&h.push(a);break}if(l&i)break;l?l=Ft(s=Dt(s,a,l,e),e):i=Ft(a=Dt(s,a,i,e),e)}l=o}h.length&&n.push(h)}(t,e,s)})),1===s.length?L(s[0],i):T(s,i);case"Polygon":return S(qt(o,e),i);case"MultiPolygon":return R(o.map((function(t){return qt(t,e)})),i);default:throw new Error("geometry "+r+" not supported")}},t.bboxPolygon=Gt,t.bearing=st,t.bearingToAzimuth=B,t.bezierSpline=function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.resolution||1e4,r=e.sharpness||.85,i=[],o=rt(t).coordinates.map((function(t){return{x:t[0],y:t[1]}})),s=new Bt({duration:n,points:o,sharpness:r}),a=function(t){var e=s.pos(t);Math.floor(t/100)%2==0&&i.push([e.x,e.y])},u=0;u<s.duration;u+=10)a(u);return a(s.duration),L(i,e.properties)},t.booleanClockwise=Yt,t.booleanConcave=function(t){var e=rt(t).coordinates;if(e[0].length<=4)return!1;for(var n=!1,r=e[0].length-1,i=0;i<r;i++){var o=e[0][(i+2)%r][0]-e[0][(i+1)%r][0],s=e[0][(i+2)%r][1]-e[0][(i+1)%r][1],a=e[0][i][0]-e[0][(i+1)%r][0],u=o*(e[0][i][1]-e[0][(i+1)%r][1])-s*a;if(0===i)n=u>0;else if(n!==u>0)return!0}return!1},t.booleanContains=function(t,e){var n=rt(t),r=rt(e),i=n.type,o=r.type,s=n.coordinates,u=r.coordinates;switch(i){case"Point":if("Point"===o)return Ht(s,u);throw new Error("feature2 "+o+" geometry not supported");case"MultiPoint":switch(o){case"Point":return function(t,e){var n,r=!1;for(n=0;n<t.coordinates.length;n++)if(Ht(t.coordinates[n],e.coordinates)){r=!0;break}return r}(n,r);case"MultiPoint":return function(t,e){var n,r=a(e.coordinates);try{for(r.s();!(n=r.n()).done;){var i,o=n.value,s=!1,u=a(t.coordinates);try{for(u.s();!(i=u.n()).done;){if(Ht(o,i.value)){s=!0;break}}}catch(t){u.e(t)}finally{u.f()}if(!s)return!1}}catch(t){r.e(t)}finally{r.f()}return!0}(n,r);default:throw new Error("feature2 "+o+" geometry not supported")}case"LineString":switch(o){case"Point":return Xt(r,n,{ignoreEndVertices:!0});case"LineString":return function(t,e){var n,r=!1,i=a(e.coordinates);try{for(i.s();!(n=i.n()).done;){var o=n.value;if(Xt({type:"Point",coordinates:o},t,{ignoreEndVertices:!0})&&(r=!0),!Xt({type:"Point",coordinates:o},t,{ignoreEndVertices:!1}))return!1}}catch(t){i.e(t)}finally{i.f()}return r}(n,r);case"MultiPoint":return function(t,e){var n,r=!1,i=a(e.coordinates);try{for(i.s();!(n=i.n()).done;){var o=n.value;if(Xt(o,t,{ignoreEndVertices:!0})&&(r=!0),!Xt(o,t))return!1}}catch(t){i.e(t)}finally{i.f()}if(r)return!0;return!1}(n,r);default:throw new Error("feature2 "+o+" geometry not supported")}case"Polygon":switch(o){case"Point":return jt(r,n,{ignoreBoundary:!0});case"LineString":return function(t,e){var n=!1,r=0,i=Rt(t),o=Rt(e);if(!Zt(i,o))return!1;for(;r<e.coordinates.length-1;r++){if(jt({type:"Point",coordinates:Wt(e.coordinates[r],e.coordinates[r+1])},t,{ignoreBoundary:!0})){n=!0;break}}return n}(n,r);case"Polygon":return Vt(n,r);case"MultiPoint":return function(t,e){var n,r=a(e.coordinates);try{for(r.s();!(n=r.n()).done;){if(!jt(n.value,t,{ignoreBoundary:!0}))return!1}}catch(t){r.e(t)}finally{r.f()}return!0}(n,r);default:throw new Error("feature2 "+o+" geometry not supported")}case"MultiPolygon":if("Polygon"===o)return function(t,e){return t.coordinates.some((function(t){return Vt({type:"Polygon",coordinates:t},e)}))}(n,r);throw new Error("feature2 "+o+" geometry not supported");default:throw new Error("feature1 "+i+" geometry not supported")}},t.booleanCrosses=ce,t.booleanDisjoint=pe,t.booleanEqual=function(t,e){var n=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).precision;if("number"!=typeof(n=null==n||isNaN(n)?6:n)||!(n>=0))throw new Error("precision must be a positive number");return rt(t).type===rt(e).type&&Ne(Le(t),Le(e),{precision:n})},t.booleanIntersects=Te,t.booleanOverlap=function(t,e){var n=rt(t),r=rt(e),i=n.type,o=r.type;if("MultiPoint"===i&&"MultiPoint"!==o||("LineString"===i||"MultiLineString"===i)&&"LineString"!==o&&"MultiLineString"!==o||("Polygon"===i||"MultiPolygon"===i)&&"Polygon"!==o&&"MultiPolygon"!==o)throw new Error("features must be of the same type");if("Point"===i)throw new Error("Point geometry not supported");if(Ne(t,e,{precision:6}))return!1;var s=0;switch(i){case"MultiPoint":for(var a=0;a<n.coordinates.length;a++)for(var u=0;u<r.coordinates.length;u++){var l=n.coordinates[a],h=r.coordinates[u];if(l[0]===h[0]&&l[1]===h[1])return!0}return!1;case"LineString":case"MultiLineString":kt(t,(function(t){kt(e,(function(e){kn(t,e).features.length&&s++}))}));break;case"Polygon":case"MultiPolygon":kt(t,(function(t){kt(e,(function(e){ue(t,e).features.length&&s++}))}))}return s>0},t.booleanParallel=function(t,e){if(!t)throw new Error("line1 is required");if(!e)throw new Error("line2 is required");if("LineString"!==In(t,"line1"))throw new Error("line1 must be a LineString");if("LineString"!==In(e,"line2"))throw new Error("line2 must be a LineString");for(var n=Qe(Le(t)).features,r=Qe(Le(e)).features,i=0;i<n.length;i++){var o=n[i].geometry.coordinates;if(!r[i])break;if(!bn(o,r[i].geometry.coordinates))return!1}return!0},t.booleanPointInPolygon=jt,t.booleanPointOnLine=Xt,t.booleanTouches=function(t,e){var n=rt(t),r=rt(e),i=n.type,o=r.type;switch(i){case"Point":switch(o){case"LineString":return Nn(n,r);case"MultiLineString":for(var s=!1,a=0;a<r.coordinates.length;a++)Nn(n,{coordinates:r.coordinates[a]})&&(s=!0);return s;case"Polygon":for(var u=0;u<r.coordinates.length;u++)if(Xt(n,{type:"LineString",coordinates:r.coordinates[u]}))return!0;return!1;case"MultiPolygon":for(u=0;u<r.coordinates.length;u++)for(a=0;a<r.coordinates[u].length;a++)if(Xt(n,{type:"LineString",coordinates:r.coordinates[u][a]}))return!0;return!1;default:throw new Error("feature2 "+o+" geometry not supported")}case"MultiPoint":switch(o){case"LineString":for(s=!1,u=0;u<n.coordinates.length;u++)if(s||Nn({coordinates:n.coordinates[u]},r)&&(s=!0),Xt({type:"Point",coordinates:n.coordinates[u]},r,{ignoreEndVertices:!0}))return!1;return s;case"MultiLineString":for(s=!1,u=0;u<n.coordinates.length;u++)for(a=0;a<r.coordinates.length;a++)if(s||Nn({coordinates:n.coordinates[u]},{coordinates:r.coordinates[a]})&&(s=!0),Xt({type:"Point",coordinates:n.coordinates[u]},{type:"LineString",coordinates:r.coordinates[a]},{ignoreEndVertices:!0}))return!1;return s;case"Polygon":for(s=!1,u=0;u<n.coordinates.length;u++)if(s||Xt({type:"Point",coordinates:n.coordinates[u]},{type:"LineString",coordinates:r.coordinates[0]})&&(s=!0),jt({type:"Point",coordinates:n.coordinates[u]},r,{ignoreBoundary:!0}))return!1;return s;case"MultiPolygon":for(s=!1,u=0;u<n.coordinates.length;u++)for(a=0;a<r.coordinates.length;a++)if(s||Xt({type:"Point",coordinates:n.coordinates[u]},{type:"LineString",coordinates:r.coordinates[a][0]})&&(s=!0),jt({type:"Point",coordinates:n.coordinates[u]},{type:"Polygon",coordinates:r.coordinates[a]},{ignoreBoundary:!0}))return!1;return s;default:throw new Error("feature2 "+o+" geometry not supported")}case"LineString":switch(o){case"Point":return Nn(r,n);case"MultiPoint":for(s=!1,u=0;u<r.coordinates.length;u++)if(s||Nn({coordinates:r.coordinates[u]},n)&&(s=!0),Xt({type:"Point",coordinates:r.coordinates[u]},n,{ignoreEndVertices:!0}))return!1;return s;case"LineString":var l=!1;if(Nn({coordinates:n.coordinates[0]},r)&&(l=!0),Nn({coordinates:n.coordinates[n.coordinates.length-1]},r)&&(l=!0),!1===l)return!1;for(u=0;u<n.coordinates.length;u++)if(Xt({type:"Point",coordinates:n.coordinates[u]},r,{ignoreEndVertices:!0}))return!1;return l;case"MultiLineString":for(l=!1,u=0;u<r.coordinates.length;u++){Nn({coordinates:n.coordinates[0]},{coordinates:r.coordinates[u]})&&(l=!0),Nn({coordinates:n.coordinates[n.coordinates.length-1]},{coordinates:r.coordinates[u]})&&(l=!0);for(a=0;a<n.coordinates[u].length;a++)if(Xt({type:"Point",coordinates:n.coordinates[a]},{type:"LineString",coordinates:r.coordinates[u]},{ignoreEndVertices:!0}))return!1}return l;case"Polygon":for(s=!1,u=0;u<n.coordinates.length;u++)if(s||Xt({type:"Point",coordinates:n.coordinates[u]},{type:"LineString",coordinates:r.coordinates[0]})&&(s=!0),jt({type:"Point",coordinates:n.coordinates[u]},r,{ignoreBoundary:!0}))return!1;return s;case"MultiPolygon":for(s=!1,u=0;u<n.coordinates.length;u++){for(a=0;a<r.coordinates.length;a++)s||Xt({type:"Point",coordinates:n.coordinates[u]},{type:"LineString",coordinates:r.coordinates[a][0]})&&(s=!0);if(jt({type:"Point",coordinates:n.coordinates[u]},r,{ignoreBoundary:!0}))return!1}return s;default:throw new Error("feature2 "+o+" geometry not supported")}case"MultiLineString":switch(o){case"Point":for(u=0;u<n.coordinates.length;u++)if(Nn(r,{coordinates:n.coordinates[u]}))return!0;return!1;case"MultiPoint":for(s=!1,u=0;u<n.coordinates.length;u++)for(a=0;a<r.coordinates.length;a++)if(s||Nn({coordinates:r.coordinates[a]},{coordinates:n.coordinates[a]})&&(s=!0),Xt({type:"Point",coordinates:r.coordinates[a]},{type:"LineString",coordinates:n.coordinates[a]},{ignoreEndVertices:!0}))return!1;return s;case"LineString":for(l=!1,u=0;u<n.coordinates.length;u++){Nn({coordinates:n.coordinates[u][0]},r)&&(l=!0),Nn({coordinates:n.coordinates[u][n.coordinates[u].length-1]},r)&&(l=!0);for(a=0;a<r.coordinates.length;a++)if(Xt({type:"Point",coordinates:r.coordinates[a]},{type:"LineString",coordinates:n.coordinates[u]},{ignoreEndVertices:!0}))return!1}return l;case"MultiLineString":for(l=!1,u=0;u<n.coordinates.length;u++)for(a=0;a<r.coordinates.length;a++){Nn({coordinates:n.coordinates[u][0]},{coordinates:r.coordinates[a]})&&(l=!0),Nn({coordinates:n.coordinates[u][n.coordinates[u].length-1]},{coordinates:r.coordinates[a]})&&(l=!0);for(var h=0;h<n.coordinates[u].length;h++)if(Xt({type:"Point",coordinates:n.coordinates[u][h]},{type:"LineString",coordinates:r.coordinates[a]},{ignoreEndVertices:!0}))return!1}return l;case"Polygon":for(s=!1,u=0;u<n.coordinates.length;u++)for(a=0;a<n.coordinates.length;a++)if(s||Xt({type:"Point",coordinates:n.coordinates[u][a]},{type:"LineString",coordinates:r.coordinates[0]})&&(s=!0),jt({type:"Point",coordinates:n.coordinates[u][a]},r,{ignoreBoundary:!0}))return!1;return s;case"MultiPolygon":for(s=!1,u=0;u<r.coordinates[0].length;u++)for(a=0;a<n.coordinates.length;a++)for(h=0;h<n.coordinates[a].length;h++)if(s||Xt({type:"Point",coordinates:n.coordinates[a][h]},{type:"LineString",coordinates:r.coordinates[0][u]})&&(s=!0),jt({type:"Point",coordinates:n.coordinates[a][h]},{type:"Polygon",coordinates:[r.coordinates[0][u]]},{ignoreBoundary:!0}))return!1;return s;default:throw new Error("feature2 "+o+" geometry not supported")}case"Polygon":switch(o){case"Point":for(u=0;u<n.coordinates.length;u++)if(Xt(r,{type:"LineString",coordinates:n.coordinates[u]}))return!0;return!1;case"MultiPoint":for(s=!1,u=0;u<r.coordinates.length;u++)if(s||Xt({type:"Point",coordinates:r.coordinates[u]},{type:"LineString",coordinates:n.coordinates[0]})&&(s=!0),jt({type:"Point",coordinates:r.coordinates[u]},n,{ignoreBoundary:!0}))return!1;return s;case"LineString":for(s=!1,u=0;u<r.coordinates.length;u++)if(s||Xt({type:"Point",coordinates:r.coordinates[u]},{type:"LineString",coordinates:n.coordinates[0]})&&(s=!0),jt({type:"Point",coordinates:r.coordinates[u]},n,{ignoreBoundary:!0}))return!1;return s;case"MultiLineString":for(s=!1,u=0;u<r.coordinates.length;u++)for(a=0;a<r.coordinates[u].length;a++)if(s||Xt({type:"Point",coordinates:r.coordinates[u][a]},{type:"LineString",coordinates:n.coordinates[0]})&&(s=!0),jt({type:"Point",coordinates:r.coordinates[u][a]},n,{ignoreBoundary:!0}))return!1;return s;case"Polygon":for(s=!1,u=0;u<n.coordinates[0].length;u++)if(s||Xt({type:"Point",coordinates:n.coordinates[0][u]},{type:"LineString",coordinates:r.coordinates[0]})&&(s=!0),jt({type:"Point",coordinates:n.coordinates[0][u]},r,{ignoreBoundary:!0}))return!1;return s;case"MultiPolygon":for(s=!1,u=0;u<r.coordinates[0].length;u++)for(a=0;a<n.coordinates[0].length;a++)if(s||Xt({type:"Point",coordinates:n.coordinates[0][a]},{type:"LineString",coordinates:r.coordinates[0][u]})&&(s=!0),jt({type:"Point",coordinates:n.coordinates[0][a]},{type:"Polygon",coordinates:r.coordinates[0][u]},{ignoreBoundary:!0}))return!1;return s;default:throw new Error("feature2 "+o+" geometry not supported")}case"MultiPolygon":switch(o){case"Point":for(u=0;u<n.coordinates[0].length;u++)if(Xt(r,{type:"LineString",coordinates:n.coordinates[0][u]}))return!0;return!1;case"MultiPoint":for(s=!1,u=0;u<n.coordinates[0].length;u++)for(a=0;a<r.coordinates.length;a++)if(s||Xt({type:"Point",coordinates:r.coordinates[a]},{type:"LineString",coordinates:n.coordinates[0][u]})&&(s=!0),jt({type:"Point",coordinates:r.coordinates[a]},{type:"Polygon",coordinates:n.coordinates[0][u]},{ignoreBoundary:!0}))return!1;return s;case"LineString":for(s=!1,u=0;u<n.coordinates[0].length;u++)for(a=0;a<r.coordinates.length;a++)if(s||Xt({type:"Point",coordinates:r.coordinates[a]},{type:"LineString",coordinates:n.coordinates[0][u]})&&(s=!0),jt({type:"Point",coordinates:r.coordinates[a]},{type:"Polygon",coordinates:n.coordinates[0][u]},{ignoreBoundary:!0}))return!1;return s;case"MultiLineString":for(s=!1,u=0;u<n.coordinates.length;u++)for(a=0;a<r.coordinates.length;a++)for(h=0;h<r.coordinates[a].length;h++)if(s||Xt({type:"Point",coordinates:r.coordinates[a][h]},{type:"LineString",coordinates:n.coordinates[u][0]})&&(s=!0),jt({type:"Point",coordinates:r.coordinates[a][h]},{type:"Polygon",coordinates:[n.coordinates[u][0]]},{ignoreBoundary:!0}))return!1;return s;case"Polygon":for(s=!1,u=0;u<n.coordinates[0].length;u++)for(a=0;a<n.coordinates[0][u].length;a++)if(s||Xt({type:"Point",coordinates:n.coordinates[0][u][a]},{type:"LineString",coordinates:r.coordinates[0]})&&(s=!0),jt({type:"Point",coordinates:n.coordinates[0][u][a]},r,{ignoreBoundary:!0}))return!1;return s;case"MultiPolygon":for(s=!1,u=0;u<n.coordinates[0].length;u++)for(a=0;a<r.coordinates[0].length;a++)for(h=0;h<n.coordinates[0].length;h++)if(s||Xt({type:"Point",coordinates:n.coordinates[0][u][h]},{type:"LineString",coordinates:r.coordinates[0][a]})&&(s=!0),jt({type:"Point",coordinates:n.coordinates[0][u][h]},{type:"Polygon",coordinates:r.coordinates[0][a]},{ignoreBoundary:!0}))return!1;return s;default:throw new Error("feature2 "+o+" geometry not supported")}default:throw new Error("feature1 "+i+" geometry not supported")}},t.booleanValid=function(t){if(!t.type)return!1;var e=rt(t),n=e.type,r=e.coordinates;switch(n){case"Point":return r.length>1;case"MultiPoint":for(var i=0;i<r.length;i++)if(r[i].length<2)return!1;return!0;case"LineString":if(r.length<2)return!1;for(i=0;i<r.length;i++)if(r[i].length<2)return!1;return!0;case"MultiLineString":if(r.length<2)return!1;for(i=0;i<r.length;i++)if(r[i].length<2)return!1;return!0;case"Polygon":for(i=0;i<e.coordinates.length;i++){if(r[i].length<4)return!1;if(!Mn(r[i]))return!1;if(Ln(r[i]))return!1;if(i>0&&ue(S([r[0]]),S([r[i]])).features.length>1)return!1}return!0;case"MultiPolygon":for(i=0;i<e.coordinates.length;i++)for(var o=e.coordinates[i],s=0;s<o.length;s++){if(o[s].length<4)return!1;if(!Mn(o[s]))return!1;if(Ln(o[s]))return!1;if(0===s&&!Pn(o,e.coordinates,i))return!1;if(s>0&&ue(S([o[0]]),S([o[s]])).features.length>1)return!1}return!0;default:return!1}},t.booleanWithin=Cn,t.buffer=function(t,e,n){var r=(n=n||{}).units||"kilometers",i=n.steps||8;if(!t)throw new Error("geojson is required");if("object"!==m(n))throw new Error("options must be an object");if("number"!=typeof i)throw new Error("steps must be an number");if(void 0===e)throw new Error("radius is required");if(i<=0)throw new Error("steps must be greater than 0");var o=[];switch(t.type){case"GeometryCollection":return mt(t,(function(t){var n=ui(t,e,r,i);n&&o.push(n)})),C(o);case"FeatureCollection":return dt(t,(function(t){var n=ui(t,e,r,i);n&&dt(n,(function(t){t&&o.push(t)}))})),C(o)}return ui(t,e,r,i)},t.center=An,t.centerMean=fi,t.centerMedian=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!Z(e=e||{}))throw new Error("options is invalid");var n=e.counter||10;if(!V(n))throw new Error("counter must be a number");var r=e.weight,i=fi(t,{weight:e.weight}),o=C([]);dt(t,(function(t){var e;o.features.push(gi(t,{properties:{weight:null==(e=t.properties)?void 0:e[r]}}))}));var s={tolerance:e.tolerance,medianCandidates:[]};return vi(i.geometry.coordinates,[0,0],o,s,n)},t.centerOfMass=function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};switch(it(e)){case"Point":return I(K(e),n.properties);case"Polygon":var r=[];ct(e,(function(t){r.push(t)}));var i,o,s,a,u,l,h,c,f=gi(e,{properties:n.properties}),g=f.geometry.coordinates,v=0,d=0,p=0,y=r.map((function(t){return[t[0]-g[0],t[1]-g[1]]}));for(i=0;i<r.length-1;i++)a=(o=y[i])[0],l=o[1],u=(s=y[i+1])[0],p+=c=a*(h=s[1])-u*l,v+=(a+u)*c,d+=(l+h)*c;if(0===p)return f;var m=1/(6*(.5*p));return I([g[0]+m*v,g[1]+m*d],n.properties);default:var _=Oi(e);return _?t(_,{properties:n.properties}):gi(e,{properties:n.properties})}},t.centroid=gi,t.circle=Ri,t.cleanCoords=Le,t.clone=Ai,t.cloneProperties=Fi,t.clusterEach=Yi,t.clusterReduce=zi,t.clusters=$i,t.clustersDbscan=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!0!==n.mutate&&(t=Ai(t));var r=n.minPoints||3,i=G(e,n.units),o=new Fe(t.features.length),s=t.features.map((function(t){return!1})),a=t.features.map((function(t){return!1})),u=t.features.map((function(t){return!1})),l=t.features.map((function(t){return-1}));o.load(t.features.map((function(t,e){var n=d(t.geometry.coordinates,2),r=n[0],i=n[1];return{minX:r,minY:i,maxX:r,maxY:i,index:e}})));var h=function(n){var r=t.features[n],s=d(r.geometry.coordinates,2),a=s[0],u=s[1],l=Math.max(u-i,-90),h=Math.min(u+i,90),c=l<0&&h>0?i:Math.abs(l)<Math.abs(h)?i/Math.cos(j(h)):i/Math.cos(j(l)),f=Math.max(a-c,-360),g=Math.min(a+c,360),v={minX:f,minY:l,maxX:g,maxY:h};return o.search(v).filter((function(n){var i=n.index,o=t.features[i];return ut(r,o,{units:"kilometers"})<=e}))},c=0;return t.features.forEach((function(t,e){if(!s[e]){var n=h(e);if(n.length>=r){var i=c;c++,s[e]=!0,function(t,e){for(var n=0;n<e.length;n++){var i=e[n].index;if(!s[i]){s[i]=!0;var o=h(i);o.length>=r&&e.push.apply(e,p(o))}a[i]||(a[i]=!0,l[i]=t)}}(i,n)}else u[e]=!0}})),t.features.forEach((function(e,n){var r=t.features[n];r.properties||(r.properties={}),l[n]>=0?(r.properties.dbscan=u[n]?"edge":"core",r.properties.cluster=l[n]):r.properties.dbscan="noise"})),t},t.clustersKmeans=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.features.length;e.numberOfClusters=e.numberOfClusters||Math.round(Math.sqrt(n/2)),e.numberOfClusters>n&&(e.numberOfClusters=n),!0!==e.mutate&&(t=Ai(t));var r=yt(t),i=r.slice(0,e.numberOfClusters),o=no(r,e.numberOfClusters,i),s={};return o.centroids.forEach((function(t,e){s[e]=t})),dt(t,(function(t,e){var n=o.idxs[e];t.properties.cluster=n,t.properties.centroid=s[n]})),t},t.collect=function(t,e,n,r){var i=new Fe(6),o=e.features.map((function(t){var e;return{minX:t.geometry.coordinates[0],minY:t.geometry.coordinates[1],maxX:t.geometry.coordinates[0],maxY:t.geometry.coordinates[1],property:null==(e=t.properties)?void 0:e[n]}}));return i.load(o),t.features.forEach((function(t){t.properties||(t.properties={});var e=Rt(t),n=i.search({minX:e[0],minY:e[1],maxX:e[2],maxY:e[3]}),o=[];n.forEach((function(e){jt([e.minX,e.minY],t)&&o.push(e.property)})),t.properties[r]=o})),t},t.collectionOf=nt,t.combine=function(t){var e={MultiPoint:{coordinates:[],properties:[]},MultiLineString:{coordinates:[],properties:[]},MultiPolygon:{coordinates:[],properties:[]}};return dt(t,(function(t){var n,r,i,o;switch(null==(o=t.geometry)?void 0:o.type){case"Point":e.MultiPoint.coordinates.push(t.geometry.coordinates),e.MultiPoint.properties.push(t.properties);break;case"MultiPoint":(n=e.MultiPoint.coordinates).push.apply(n,p(t.geometry.coordinates)),e.MultiPoint.properties.push(t.properties);break;case"LineString":e.MultiLineString.coordinates.push(t.geometry.coordinates),e.MultiLineString.properties.push(t.properties);break;case"MultiLineString":(r=e.MultiLineString.coordinates).push.apply(r,p(t.geometry.coordinates)),e.MultiLineString.properties.push(t.properties);break;case"Polygon":e.MultiPolygon.coordinates.push(t.geometry.coordinates),e.MultiPolygon.properties.push(t.properties);break;case"MultiPolygon":(i=e.MultiPolygon.coordinates).push.apply(i,p(t.geometry.coordinates)),e.MultiPolygon.properties.push(t.properties)}})),C(Object.keys(e).filter((function(t){return e[t].coordinates.length})).sort().map((function(t){return w({type:t,coordinates:e[t].coordinates},{collectedProperties:e[t].properties})})))},t.concave=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.maxEdge||1/0,r=function(t){var e=[],n={};return dt(t,(function(t){if(t.geometry){var r=t.geometry.coordinates.join("-");Object.prototype.hasOwnProperty.call(n,r)||(e.push(t),n[r]=!0)}})),C(e)}(t),i=ro(r);if(i.features=i.features.filter((function(t){var r=t.geometry.coordinates[0][0],i=t.geometry.coordinates[0][1],o=t.geometry.coordinates[0][2],s=ut(r,i,e),a=ut(i,o,e),u=ut(r,o,e);return s<=n&&a<=n&&u<=n})),i.features.length<1)return null;var o=To(i);return 1===o.coordinates.length&&(o.coordinates=o.coordinates[0],o.type="Polygon"),w(o)},t.containsNumber=$,t.convertArea=U,t.convertLength=X,t.convex=Oi,t.coordAll=yt,t.coordEach=ct,t.coordReduce=ft,t.createBins=ji,t.degreesToRadians=j,t.destination=at,t.difference=function(t){var e=[];if(mt(t,(function(t){e.push(t.coordinates)})),e.length<2)throw new Error("Must have at least two features");var n=t.features[0].properties||{},r=Os.apply(As,[e[0]].concat(p(e.slice(1))));return 0===r.length?null:1===r.length?S(r[0],n):R(r,n)},t.dissolve=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!Z(e=e||{}))throw new Error("options is invalid");var n=e.propertyName;nt(t,"Polygon","dissolve");var r=[];if(!n)return Ds(R(Cs.apply(null,t.features.map((function(t){return t.geometry.coordinates})))));var i={};dt(t,(function(t){t.properties&&(Object.prototype.hasOwnProperty.call(i,t.properties[n])||(i[t.properties[n]]=[]),i[t.properties[n]].push(t))}));for(var o=Object.keys(i),s=0;s<o.length;s++){var a=R(Cs.apply(null,i[o[s]].map((function(t){return t.geometry.coordinates}))));a&&a.properties&&(a.properties[n]=o[s],r.push(a))}return Ds(C(r))},t.distance=ut,t.distanceWeight=qs,t.earthRadius=x,t.ellipse=zs,t.envelope=js,t.explode=Xs,t.factors=E,t.feature=w,t.featureCollection=C,t.featureEach=dt,t.featureOf=et,t.featureReduce=pt,t.filterProperties=Vi,t.findPoint=St,t.findSegment=Nt,t.flatten=Ds,t.flattenEach=xt,t.flattenReduce=Et,t.flip=function(t,e){var n;if(!Z(e=e||{}))throw new Error("options is invalid");var r=null!=(n=e.mutate)&&n;if(!t)throw new Error("geojson is required");return!1!==r&&void 0!==r||(t=Ai(t)),ct(t,(function(t){var e=t[0],n=t[1];t[0]=n,t[1]=e})),t},t.geojsonRbush=Ke,t.geojsonType=tt,t.geomEach=mt,t.geomReduce=_t,t.geometry=b,t.geometryCollection=A,t.getCluster=Bi,t.getCoord=K,t.getCoords=Q,t.getGeom=rt,t.getType=it,t.greatCircle=function(t,e,n){if("object"!==m(n=n||{}))throw new Error("options is invalid");var r=n.properties,i=n.npoints,o=n.offset;if(t=K(t),e=K(e),r=r||{},i=i||100,t[0]===e[0]&&t[1]===e[1]){var s=Array(i);return s.fill([t[0],t[1]]),L(s,r)}return o=o||10,new Js({x:t[0],y:t[1]},{x:e[0],y:e[1]},r).Arc(i,{offset:o}).json()},t.helpers=J,t.hexGrid=Qs,t.interpolate=function(t,e,n){if("object"!==m(n=n||{}))throw new Error("options is invalid");var r,i=n.gridType,o=n.property,s=n.weight,a=n.bbox;if(!t)throw new Error("points is required");if(nt(t,"Point","input must contain Points"),!e)throw new Error("cellSize is required");if(void 0!==s&&"number"!=typeof s)throw new Error("weight must be a number");switch(o=o||"elevation",i=i||"square",s=s||1,H(a=null!=a?a:Rt(t)),i){case"point":case"points":r=ea(a,e,n);break;case"square":case"squares":r=ra(a,e,n);break;case"hex":case"hexes":r=Qs(a,e,n);break;case"triangle":case"triangles":r=ia(a,e,n);break;default:throw new Error("invalid gridType")}var u=[];return dt(r,(function(e){var r=0,a=0;dt(t,(function(t){var u,l=ut("point"===i?e:gi(e),t,n);if(void 0!==o&&(u=t.properties[o]),void 0===u&&(u=t.geometry.coordinates[2]),void 0===u)throw new Error("zValue is missing");0===l&&(r=u);var h=1/Math.pow(l,s);a+=h,r+=h*u}));var l=Ai(e);l.properties[o]=r/a,u.push(l)})),C(u)},t.intersect=Ks,t.invariant=ot,t.isNumber=V,t.isObject=Z,t.isobands=function(t,e,n){if(!Z(n=n||{}))throw new Error("options is invalid");var r=n.zProperty||"elevation",i=n.commonProperties||{},o=n.breaksProperties||[];if(nt(t,"Point","Input must contain Points"),!e)throw new Error("breaks is required");if(!Array.isArray(e))throw new Error("breaks is not an Array");if(!Z(i))throw new Error("commonProperties is not an Object");if(!Array.isArray(o))throw new Error("breaksProperties is not an Array");var s=ca(t,{zProperty:r,flip:!0}),a=s[0].length;if(s.length<2||a<2)throw new Error("Matrix of points must be at least 2x2");for(var l=1;l<s.length;l++)if(s[l].length!==a)throw new Error("Matrix of points is not uniform in the x dimension");var h=function(t,e,n){for(var r,i=[],o=1;o<e.length;o++){1===o&&(r=fa(t,+e[0]));var s=+e[o],a=+e[o-1],l=fa(t,s),h=l.map((function(t){return t.map((function(t){return[t[0],t[1]]})).reverse()})),c=da(va(ga(r.concat(h),t)));if(0===c.length&&t[0][0]<s){var f=t[0].length,g=t.length;c.push([[[0,0],[f-1,0],[f-1,g-1],[0,g-1],[0,0]]])}i.push(u({groupedRings:c},n,a+"-"+s)),r=l}return i}(s,e,r);h=function(t,e,n){var r=Rt(n),i=r[2]-r[0],o=r[3]-r[1],s=r[0],a=r[1],u=e[0].length-1,l=e.length-1,h=i/u,c=o/l;return t.map((function(t){return t.groupedRings=t.groupedRings.map((function(t){return t.map((function(t){return t.map((function(t){return[t[0]*h+s,t[1]*c+a]}))}))})),t}))}(h,s,t);var c=h.map((function(t,e){if(o[e]&&!Z(o[e]))throw new Error("Each mappedProperty is required to be an Object");var n=ha(ha({},i),o[e]);return n[r]=t[r],R(t.groupedRings,n)}));return C(c)},t.isolines=function(t,e,n){if(!Z(n=n||{}))throw new Error("options is invalid");var r=n.zProperty||"elevation",i=n.commonProperties||{},o=n.breaksProperties||[];if(nt(t,"Point","Input must contain Points"),!e)throw new Error("breaks is required");if(!Array.isArray(e))throw new Error("breaks must be an Array");if(!Z(i))throw new Error("commonProperties must be an Object");if(!Array.isArray(o))throw new Error("breaksProperties must be an Array");var s=Ia(t,{zProperty:r,flip:!0}),a=s[0].length;if(s.length<2||a<2)throw new Error("Matrix of points must be at least 2x2");for(var u=1;u<s.length;u++)if(s[u].length!==a)throw new Error("Matrix of points is not uniform in the x dimension");var l=function(t,e,n){var r=Rt(n),i=r[2]-r[0],o=r[3]-r[1],s=r[0],a=r[1],u=e[0].length-1,l=e.length-1,h=i/u,c=o/l,f=function(t){t[0]=t[0]*h+s,t[1]=t[1]*c+a};return t.forEach((function(t){ct(t,f)})),t}(function(t,e,n,r,i){for(var o=[],s=0;s<e.length;s++){var a=+e[s],u=ba(ba({},r),i[s]);u[n]=a;var l=T(Na(t,a),u);o.push(l)}return o}(s,e,r,i,o),s,t);return C(l)},t.kinks=function(t){var e,n,r={type:"FeatureCollection",features:[]};if("LineString"===(n="Feature"===t.type?t.geometry:t).type)e=[n.coordinates];else if("MultiLineString"===n.type)e=n.coordinates;else if("MultiPolygon"===n.type){var i;e=(i=[]).concat.apply(i,p(n.coordinates))}else{if("Polygon"!==n.type)throw new Error("Input must be a LineString, MultiLineString, Polygon, or MultiPolygon Feature or Geometry");e=n.coordinates}return e.forEach((function(t){e.forEach((function(e){for(var n=0;n<t.length-1;n++)for(var i=n;i<e.length-1;i++){if(t===e){if(1===Math.abs(n-i))continue;if(0===n&&i===t.length-2&&t[n][0]===t[t.length-1][0]&&t[n][1]===t[t.length-1][1])continue}var o=Sa(t[n][0],t[n][1],t[n+1][0],t[n+1][1],e[i][0],e[i][1],e[i+1][0],e[i+1][1]);o&&r.features.push(I([o[0],o[1]]))}}))})),r},t.length=Ma,t.lengthToDegrees=G,t.lengthToRadians=q,t.lineArc=La,t.lineChunk=function(t,e,n){if(!Z(n=n||{}))throw new Error("options is invalid");var r=n.units,i=n.reverse;if(!t)throw new Error("geojson is required");if(e<=0)throw new Error("segmentLength must be greater than 0");var o=[];return xt(t,(function(t){i&&(t.geometry.coordinates=t.geometry.coordinates.reverse()),function(t,e,n,r){var i=Ma(t,{units:n});if(i<=e)return r(t);var o=i/e;Number.isInteger(o)||(o=Math.floor(o)+1);for(var s=0;s<o;s++){r(Ca(t,e*s,e*(s+1),{units:n}),s)}}(t,e,r,(function(t){o.push(t)}))})),C(o)},t.lineEach=bt,t.lineIntersect=ue,t.lineOffset=function(t,e,n){if(!Z(n=n||{}))throw new Error("options is invalid");var r=n.units;if(!t)throw new Error("geojson is required");if(null==e||isNaN(e))throw new Error("distance is required");var i=it(t),o=t.properties;switch(i){case"LineString":return Aa(t,e,r);case"MultiLineString":var s=[];return xt(t,(function(t){s.push(Aa(t,e,r).geometry.coordinates)})),T(s,o);default:throw new Error("geometry "+i+" is not supported")}},t.lineOverlap=kn,t.lineReduce=It,t.lineSegment=Qe,t.lineSlice=function(t,e,n){var r=Q(n);if("LineString"!==it(n))throw new Error("line must be a LineString");for(var i,o=cn(n,t),s=cn(n,e),a=[(i=o.properties.index<=s.properties.index?[o,s]:[s,o])[0].geometry.coordinates],u=i[0].properties.index+1;u<i[1].properties.index+1;u++)a.push(r[u]);return a.push(i[1].geometry.coordinates),L(a,n.properties)},t.lineSliceAlong=Ca,t.lineSplit=function(t,e){if(!t)throw new Error("line is required");if(!e)throw new Error("splitter is required");var n=it(t),r=it(e);if("LineString"!==n)throw new Error("line must be LineString");if("FeatureCollection"===r)throw new Error("splitter cannot be a FeatureCollection");if("GeometryCollection"===r)throw new Error("splitter cannot be a GeometryCollection");var i=Da(e,{precision:7});switch(r){case"Point":return qa(t,i);case"MultiPoint":return Fa(t,i);case"LineString":case"MultiLineString":case"Polygon":case"MultiPolygon":return Fa(t,ue(t,i,{ignoreSelfIntersections:!0}))}},t.lineString=L,t.lineStrings=P,t.lineToPolygon=function(t){var e,n,r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=i.properties,s=null==(e=i.autoComplete)||e,a=null==(n=i.orderCoords)||n;if(null!=(r=i.mutate)&&r||(t=Ai(t)),"FeatureCollection"===t.type){var u=[];return t.features.forEach((function(t){u.push(Q(Ya(t,{},s,a)))})),R(u,o)}return Ya(t,o,s,a)},t.mask=function(t,e,n){var r,i=null!=(r=null==n?void 0:n.mutate)&&r,o=e;e&&!1===i&&(o=Ai(e));var s,a=Xa(o);return("FeatureCollection"===t.type?ja(2===(s=t).features.length?Cs(s.features[0].geometry.coordinates,s.features[1].geometry.coordinates):Cs.apply(As,s.features.map((function(t){return t.geometry.coordinates})))):"Feature"===t.type?ja(Cs(t.geometry.coordinates)):ja(Cs(t.coordinates))).geometry.coordinates.forEach((function(t){a.geometry.coordinates.push(t[0])})),a},t.meta=Mt,t.midpoint=function(t,e){return at(t,ut(t,e)/2,st(t,e))},t.moranIndex=function(t,e){var n,r,i=e.inputField,o=e.threshold||1e5,s=e.p||2,u=null!=(n=e.binary)&&n,l=qs(t,{alpha:e.alpha||-1,binary:u,p:s,standardization:null==(r=e.standardization)||r,threshold:o}),h=[];dt(t,(function(t){var e=t.properties||{};h.push(e[i])}));for(var c=Ua(h),f=function(t){var e,n=Ua(t),r=0,i=a(t);try{for(i.s();!(e=i.n()).done;){var o=e.value;r+=Math.pow(o-n,2)}}catch(t){i.e(t)}finally{i.f()}return r/t.length}(h),g=0,v=0,d=0,p=0,y=l.length,m=0;m<y;m++){for(var _=0,x=0;x<y;x++)g+=l[m][x]*(h[m]-c)*(h[x]-c),v+=l[m][x],d+=Math.pow(l[m][x]+l[x][m],2),_+=l[m][x]+l[x][m];p+=Math.pow(_,2)}var E=g/v/f,k=-1/(y-1),w=(y*y*(d*=.5)-y*p+v*v*3)/((y-1)*(y+1)*(v*v))-k*k,b=Math.sqrt(w);return{expectedMoranIndex:k,moranIndex:E,stdNorm:b,zNorm:(E-k)/b}},t.multiLineString=T,t.multiPoint=O,t.multiPolygon=R,t.nearestNeighborAnalysis=function(t,e){var n=(e=e||{}).studyArea||Gt(Rt(t)),r=e.properties||{},i=e.units||"kilometers",o=[];dt(t,(function(t){o.push(gi(t))}));var s=o.length,a=o.map((function(t,e){return ut(t,eu(t,C(o.filter((function(t,n){return n!==e})))).geometry.coordinates,{units:i})})).reduce((function(t,e){return t+e}),0)/s,u=s/U(Lt(n),"meters",i),l=1/(2*Math.sqrt(u)),h=.26136/Math.sqrt(s*u);return r.nearestNeighborAnalysis={units:i,arealUnits:i+"²",observedMeanDistance:a,expectedMeanDistance:l,nearestNeighborIndex:a/l,numberOfPoints:s,zScore:(a-l)/h},n.properties=r,n},t.nearestPoint=eu,t.nearestPointOnLine=cn,t.nearestPointToLine=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.units,i=n.properties||{},o=function(t){var e=[];switch(t.geometry?t.geometry.type:t.type){case"GeometryCollection":return mt(t,(function(t){"Point"===t.type&&e.push({type:"Feature",properties:{},geometry:t})})),{type:"FeatureCollection",features:e};case"FeatureCollection":return t.features=t.features.filter((function(t){return"Point"===t.geometry.type})),t;default:throw new Error("points must be a Point Collection")}}(t);if(!o.features.length)throw new Error("points must contain features");if(!e)throw new Error("line is required");if("LineString"!==it(e))throw new Error("line must be a LineString");var s=1/0,a=null;return dt(o,(function(t){var n=nu(t,e,{units:r});n<s&&(s=n,a=t)})),a&&(a.properties=lu(lu(lu({},{dist:s}),a.properties),i)),a},t.planepoint=function(t,e){var n=K(t),r=rt(e).coordinates[0];if(r.length<4)throw new Error("OuterRing of a Polygon must have 4 or more Positions.");var i="Feature"===e.type&&e.properties||{},o=i.a,s=i.b,a=i.c,u=n[0],l=n[1],h=r[0][0],c=r[0][1],f=void 0!==o?o:r[0][2],g=r[1][0],v=r[1][1],d=void 0!==s?s:r[1][2],p=r[2][0],y=r[2][1],m=void 0!==a?a:r[2][2];return(m*(u-h)*(l-v)+f*(u-g)*(l-y)+d*(u-p)*(l-c)-d*(u-h)*(l-y)-m*(u-g)*(l-c)-f*(u-p)*(l-v))/((u-h)*(l-v)+(u-g)*(l-y)+(u-p)*(l-c)-(u-h)*(l-y)-(u-g)*(l-c)-(u-p)*(l-v))},t.point=I,t.pointGrid=ea,t.pointOnFeature=function(t){for(var e=function(t){if("FeatureCollection"!==t.type)return"Feature"!==t.type?C([w(t)]):C([t]);return t}(t),n=An(e),r=!1,i=0;!r&&i<e.features.length;){var o=e.features[i].geometry,s=!1;if("Point"===o.type)n.geometry.coordinates[0]===o.coordinates[0]&&n.geometry.coordinates[1]===o.coordinates[1]&&(r=!0);else if("MultiPoint"===o.type)for(var a=!1,u=0;!a&&u<o.coordinates.length;)n.geometry.coordinates[0]===o.coordinates[u][0]&&n.geometry.coordinates[1]===o.coordinates[u][1]&&(r=!0,a=!0),u++;else if("LineString"===o.type)for(var l=0;!s&&l<o.coordinates.length-1;)hu(n.geometry.coordinates[0],n.geometry.coordinates[1],o.coordinates[l][0],o.coordinates[l][1],o.coordinates[l+1][0],o.coordinates[l+1][1])&&(s=!0,r=!0),l++;else if("MultiLineString"===o.type)for(var h=0;h<o.coordinates.length;){s=!1;for(var c=0,f=o.coordinates[h];!s&&c<f.length-1;)hu(n.geometry.coordinates[0],n.geometry.coordinates[1],f[c][0],f[c][1],f[c+1][0],f[c+1][1])&&(s=!0,r=!0),c++;h++}else"Polygon"!==o.type&&"MultiPolygon"!==o.type||jt(n,o)&&(r=!0);i++}if(r)return n;for(var g=C([]),v=0;v<e.features.length;v++)g.features=g.features.concat(Xs(e.features[v]).features);return I(eu(n,g).geometry.coordinates)},t.pointToLineDistance=nu,t.pointToPolygonDistance=function t(e,r){var i,o,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=null!=(i=s.method)?i:"geodesic",u=null!=(o=s.units)?o:"kilometers";if(!e)throw new Error("point is required");if(!r)throw new Error("polygon or multi-polygon is required");var l,h=rt(r);if("MultiPolygon"===h.type){var c=h.coordinates.map((function(n){return t(e,S(n),{method:a,units:u})}));return Math.min.apply(Math,p(c.map(Math.abs)))*(jt(e,r)?-1:1)}if(h.coordinates.length>1){var v=h.coordinates.map((function(n){return t(e,S([n]),{method:a,units:u})})),d=n(l=v)||f(l)||_(l)||g(),y=d[0],m=d.slice(1);if(y>=0)return y;var x=Math.min.apply(Math,p(m));return x<0?Math.abs(x):Math.max(-1*x,y)}var E=le(h),k=1/0;return xt(E,(function(t){k=Math.min(k,nu(e,t,{method:a,units:u}))})),jt(e,h)?-k:k},t.points=N,t.pointsWithinPolygon=cu,t.polygon=S,t.polygonSmooth=function(t,e){(e=e||{}).iterations=e.iterations||1;var n=e.iterations,r=[];if(!t)throw new Error("inputPolys is required");return mt(t,(function(t,e,i){if("Polygon"===t.type){for(var o=[[]],s=0;s<n;s++){var a=[],u=t;s>0&&(u=S(o).geometry),mu(u,a),o=a.slice(0)}r.push(S(o,i))}else{if("MultiPolygon"!==t.type)throw new Error("geometry is invalid, must be Polygon or MultiPolygon");for(var l=[[[]]],h=0;h<n;h++){var c=[],f=t;h>0&&(f=R(l).geometry),_u(f,c),l=c.slice(0)}r.push(R(l,i))}})),C(r)},t.polygonTangents=function(t,e){var n,r=Q(t),i=Q(e),o=[],s=[],a=Rt(e),u=0,l=null;switch(r[0]>a[0]&&r[0]<a[2]&&r[1]>a[1]&&r[1]<a[3]&&(u=(l=eu(t,Xs(e))).properties.featureIndex),it(e)){case"Polygon":o=i[0][u],s=i[0][0],null!==l&&l.geometry.coordinates[1]<r[1]&&(s=i[0][u]),n=ku(i[0][0],i[0][i[0].length-1],r);var h=d(xu(i[0],r,n,o,s),2);o=h[0],s=h[1];break;case"MultiPolygon":for(var c=0,f=0,g=0,v=0;v<i[0].length;v++){c=v;for(var p=!1,y=0;y<i[0][v].length;y++){if(f=y,g===u){p=!0;break}g++}if(p)break}o=i[0][c][f],s=i[0][c][f],n=ku(i[0][0][0],i[0][0][i[0][0].length-1],r),i.forEach((function(t){var e=d(xu(t[0],r,n,o,s),2);o=e[0],s=e[1]}))}return C([I(o),I(s)])},t.polygonToLine=le,t.polygonize=function(t){var e=yu.fromGeoJson(t);e.deleteDangles(),e.deleteCutEdges();var n=[],r=[];return e.getEdgeRings().filter((function(t){return t.isValid()})).forEach((function(t){t.isHole()?n.push(t):r.push(t)})),n.forEach((function(t){pu.findEdgeRingContaining(t,r)&&r.push(t)})),C(r.map((function(t){return t.toPolygon()})))},t.polygons=M,t.projection=Mu,t.propEach=gt,t.propReduce=vt,t.propertiesContainsFilter=Ui,t.quadratAnalysis=function(t,e){for(var n=(e=e||{}).studyBbox||Rt(t),r=e.confidenceLevel||20,i=t.features,o=i.length,s=Lt(Gt(n)),u=ra(n,Math.sqrt(s/o*2),{units:"meters"}).features,l={},h=0;h<u.length;h++)l[h]={box:Rt(u[h]),cnt:0};var c,f=0,g=a(i);try{for(g.s();!(c=g.n()).done;)for(var v=c.value,d=0,p=Object.keys(l);d<p.length;d++){var y=p[d],m=l[y].box;if(Pu(K(v),m)){l[y].cnt+=1,f+=1;break}}}catch(t){g.e(t)}finally{g.f()}for(var _=0,x=0,E=Object.keys(l);x<E.length;x++){var k=l[E[x]].cnt;k>_&&(_=k)}for(var w=[],b=Object.keys(l).length,I=f/b,N=0,S=0;S<_+1;S++)N+=Math.exp(-I)*Math.pow(I,S)/Cu(S),w.push(N);for(var M=[],L=0,P=0;P<_+1;P++){for(var C=0,T=Object.keys(l);C<T.length;C++){l[T[C]].cnt===P&&(L+=1)}var O=L/b;M.push(O)}for(var R=0,A=0;A<_+1;A++){var D=Math.abs(w[A]-M[A]);D>R&&(R=D)}var F=Lu[r]/Math.sqrt(b),q={criticalValue:F,isRandom:!0,maxAbsoluteDifference:R,observedDistribution:M};return R>F&&(q.isRandom=!1),q},t.radiansToDegrees=z,t.radiansToLength=F,t.random=Bu,t.randomLineString=Fu,t.randomPoint=Au,t.randomPolygon=Du,t.randomPosition=Tu,t.rectangleGrid=na,t.rewind=function(t){var e,n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!Z(r=r||{}))throw new Error("options is invalid");var i=null!=(e=r.mutate)&&e,o=null!=(n=r.reverse)&&n;if(!t)throw new Error("<geojson> is required");if("boolean"!=typeof o)throw new Error("<reverse> must be a boolean");if("boolean"!=typeof i)throw new Error("<mutate> must be a boolean");i||"Point"===t.type||"MultiPoint"===t.type||(t=Ai(t));var s=[];switch(t.type){case"GeometryCollection":return mt(t,(function(t){Yu(t,o)})),t;case"FeatureCollection":return dt(t,(function(t){dt(Yu(t,o),(function(t){s.push(t)}))})),C(s)}return Yu(t,o)},t.rhumbBearing=lt,t.rhumbDestination=Bs,t.rhumbDistance=Gs,t.round=D,t.sample=function(t,e){if(!t)throw new Error("fc is required");if(null==e)throw new Error("num is required");if("number"!=typeof e)throw new Error("num must be a number");var n=C(function(t,e){var n,r,i=t.slice(0),o=t.length,s=o-e;for(;o-- >s;)n=i[r=Math.floor((o+1)*Math.random())],i[r]=i[o],i[o]=n;return i.slice(s)}(t.features,e));return n},t.sector=function(t,e,n,r){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};if(!Z(i=i||{}))throw new Error("options is invalid");var o=i.properties;if(!t)throw new Error("center is required");if(null==n)throw new Error("bearing1 is required");if(null==r)throw new Error("bearing2 is required");if(!e)throw new Error("radius is required");if("object"!==m(i))throw new Error("options must be an object");if(Xu(n)===Xu(r))return Ri(t,e,i);var s=Q(t),a=La(t,e,n,r,i),u=[[s]];return ct(a,(function(t){u[0].push(t)})),u[0].push(s),S(u,o)},t.segmentEach=kt,t.segmentReduce=wt,t.shortestPath=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!Z(n=n||{}))throw new Error("options is invalid");var r=n.obstacles||C([]),i=n.resolution||100;if(!t)throw new Error("start is required");if(!e)throw new Error("end is required");if(!V(i)||i<=0)throw new Error("options.resolution must be a number, greater than 0");var o=K(t),s=K(e);if(t=I(o),e=I(s),"FeatureCollection"===r.type){if(0===r.features.length)return L([o,s])}else if("Feature"===r.type&&"Polygon"===r.geometry.type)r=C([r]);else{if("Polygon"!==r.type)throw new Error("invalid obstacles");r=C([w(rt(r))])}var a=r;a.features.push(t),a.features.push(e);var u=d(Rt(Uu(Gt(Rt(a)),1.15)),4),l=u[0],h=u[1],c=u[2],f=u[3];a.features.pop(),a.features.pop();for(var g,v,p=ut([l,h],[c,h],n)/i,y=(c-l)/p,m=ut([l,h],[l,f],n)/i,_=(f-h)/m,x=p%1*y/2,E=[],k=[],b=1/0,N=1/0,S=f-m%1*_/2,M=0;S>=h;){for(var P=[],T=[],O=l+x,R=0;O<=c;){var A=I([O,S]),D=Qu(A,r);P.push(D?0:1),T.push(O+"|"+S);var F=ut(A,t);!D&&F<b&&(b=F,g={x:R,y:M});var q=ut(A,e);!D&&q<N&&(N=q,v={x:R,y:M}),O+=y,R++}k.push(P),E.push(T),S-=_,M++}var G=new Wu(k,{diagonal:!0}),B=G.grid[g.y][g.x],Y=G.grid[v.y][v.x],z=Hu.search(G,B,Y),j=[o];return z.forEach((function(t){var e=E[t.x][t.y].split("|");j.push([+e[0],+e[1]])})),j.push(s),Le(L(j))},t.simplify=function(t){var e,n,r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!Z(i=null!=i?i:{}))throw new Error("options is invalid");var o=null!=(e=i.tolerance)?e:1,s=null!=(n=i.highQuality)&&n,a=null!=(r=i.mutate)&&r;if(!t)throw new Error("geojson is required");if(o&&o<0)throw new Error("invalid tolerance");return!0!==a&&(t=Ai(t)),mt(t,(function(t){!function(t,e,n){var r=t.type;if("Point"===r||"MultiPoint"===r)return t;if(Le(t,{mutate:!0}),"GeometryCollection"!==r)switch(r){case"LineString":t.coordinates=nl(t.coordinates,e,n);break;case"MultiLineString":t.coordinates=t.coordinates.map((function(t){return nl(t,e,n)}));break;case"Polygon":t.coordinates=rl(t.coordinates,e,n);break;case"MultiPolygon":t.coordinates=t.coordinates.map((function(t){return rl(t,e,n)}))}}(t,o,s)})),t},t.square=function(t){var e=t[0],n=t[1],r=t[2],i=t[3];if(ut(t.slice(0,2),[r,n])>=ut(t.slice(0,2),[e,i])){var o=(n+i)/2;return[e,o-(r-e)/2,r,o+(r-e)/2]}var s=(e+r)/2;return[s-(i-n)/2,n,s+(i-n)/2,i]},t.squareGrid=ra,t.standardDeviationalEllipse=function(t,e){var n;if(!Z(e=e||{}))throw new Error("options is invalid");var r=e.steps||64,i=e.weight,o=e.properties||{};if(!V(r))throw new Error("steps must be a number");if(!Z(o))throw new Error("properties must be a number");var s=yt(t).length,a=fi(t,{weight:i}),u=0,l=0,h=0;dt(t,(function(t){var e,n=i&&(null==(e=t.properties)?void 0:e[i])||1,r=ol(Q(t),Q(a));u+=Math.pow(r.x,2)*n,l+=Math.pow(r.y,2)*n,h+=r.x*r.y*n}));var c=u-l,f=Math.sqrt(Math.pow(c,2)+4*Math.pow(h,2)),g=2*h,v=Math.atan((c+f)/g),d=180*v/Math.PI,p=0,y=0,m=0;dt(t,(function(t){var e,n=i&&(null==(e=t.properties)?void 0:e[i])||1,r=ol(Q(t),Q(a));p+=Math.pow(r.x*Math.cos(v)-r.y*Math.sin(v),2)*n,y+=Math.pow(r.x*Math.sin(v)+r.y*Math.cos(v),2)*n,m+=n}));var _=Math.sqrt(2*p/m),x=Math.sqrt(2*y/m),E=zs(a,_,x,{units:"degrees",angle:d,steps:r,properties:o}),k=cu(t,C([E])),w={meanCenterCoordinates:Q(a),semiMajorAxis:_,semiMinorAxis:x,numberOfFeatures:s,angle:d,percentageWithinEllipse:100*yt(k).length/s};return E.properties=null!=(n=E.properties)?n:{},E.properties.standardDeviationalEllipse=w,E},t.tag=function(t,e,n,r){return t=Ai(t),e=Ai(e),dt(t,(function(t){t.properties||(t.properties={}),dt(e,(function(e){t.properties&&e.properties&&void 0===t.properties[r]&&jt(t,e)&&(t.properties[r]=e.properties[n])}))})),t},t.tesselate=function(t){if(!t.geometry||"Polygon"!==t.geometry.type&&"MultiPolygon"!==t.geometry.type)throw new Error("input must be a Polygon or MultiPolygon");var e={type:"FeatureCollection",features:[]};return"Polygon"===t.geometry.type?e.features=hl(t.geometry.coordinates):t.geometry.coordinates.forEach((function(t){e.features=e.features.concat(hl(t))})),e},t.tin=ro,t.toMercator=wu,t.toWgs84=bu,t.transformRotate=Ys,t.transformScale=Uu,t.transformTranslate=function(t,e,n,r){if(!Z(r=r||{}))throw new Error("options is invalid");var i=r.units,o=r.zTranslation,s=r.mutate;if(!t)throw new Error("geojson is required");if(null==e||isNaN(e))throw new Error("distance is required");if(o&&"number"!=typeof o&&isNaN(o))throw new Error("zTranslation is not a number");if(o=void 0!==o?o:0,0===e&&0===o)return t;if(null==n||isNaN(n))throw new Error("direction is required");return e<0&&(e=-e,n+=180),!1!==s&&void 0!==s||(t=Ai(t)),ct(t,(function(t){var r=Q(Bs(t,e,n,{units:i}));t[0]=r[0],t[1]=r[1],o&&3===t.length&&(t[2]+=o)})),t},t.triangleGrid=ia,t.truncate=Da,t.union=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=[];if(mt(t,(function(t){n.push(t.coordinates)})),n.length<2)throw new Error("Must have at least 2 geometries");var r=Cs.apply(As,[n[0]].concat(p(n.slice(1))));return 0===r.length?null:1===r.length?S(r[0],e.properties):R(r,e.properties)},t.unkinkPolygon=function(t){var e=[];return xt(t,(function(t){"Polygon"===t.geometry.type&&dt(gl(t),(function(n){e.push(S(n.geometry.coordinates,t.properties))}))})),C(e)},t.validateBBox=H,t.validateId=W,t.voronoi=function(t,e){if(!Z(e=e||{}))throw new Error("options is invalid");var n=e.bbox||[-180,-85,180,85];if(!t)throw new Error("points is required");if(!Array.isArray(n))throw new Error("bbox is invalid");return nt(t,"Point","points"),C(function(){var t=El,e=kl,n=null;function r(r){return new eh(r.map((function(n,i){var o=[Math.round(t(n,i,r)/$l)*$l,Math.round(e(n,i,r)/$l)*$l];return o.index=i,o.data=n,o})),n)}return r.polygons=function(t){return r(t).polygons()},r.links=function(t){return r(t).links()},r.triangles=function(t){return r(t).triangles()},r.x=function(e){return arguments.length?(t="function"==typeof e?e:xl(+e),r):t},r.y=function(t){return arguments.length?(e="function"==typeof t?t:xl(+t),r):e},r.extent=function(t){return arguments.length?(n=null==t?null:[[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]],r):n&&[[n[0][0],n[0][1]],[n[1][0],n[1][1]]]},r.size=function(t){return arguments.length?(n=null==t?null:[[0,0],[+t[0],+t[1]]],r):n&&[n[1][0]-n[0][0],n[1][1]-n[0][1]]},r}().x((function(t){return t.geometry.coordinates[0]})).y((function(t){return t.geometry.coordinates[1]})).extent([[n[0],n[1]],[n[2],n[3]]]).polygons(t.features).map((function(e,n){return Object.assign(function(t){return(t=t.slice()).push(t[0]),S([t])}(e),{properties:Fi(t.features[n].properties)})})))}}));
|
|
28
|
+
function Ks(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=[];if(mt(t,(function(t){n.push(t.coordinates)})),n.length<2)throw new Error("Must specify at least 2 geometries");var r=Ts.apply(As,[n[0]].concat(p(n.slice(1))));return 0===r.length?null:1===r.length?S(r[0],e.properties):R(r,e.properties)}function Qs(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=JSON.stringify(n.properties||{}),i=d(t,4),o=i[0],s=i[1],a=i[2],u=i[3],l=(s+u)/2,h=(o+a)/2,c=2*e/ut([o,l],[a,l],n)*(a-o),f=2*e/ut([h,s],[h,u],n)*(u-s),g=c/2,v=2*g,p=Math.sqrt(3)/2*f,y=a-o,m=u-s,_=3/4*v,x=p,E=(y-v)/(v-g/2),k=Math.floor(E),w=(k*_-g/2-y)/2-g/2+_/2,b=Math.floor((m-p)/p),I=(m-b*p)/2,N=b*p-m>p/2;N&&(I-=p/4);for(var S=[],M=[],L=0;L<6;L++){var P=2*Math.PI/6*L;S.push(Math.cos(P)),M.push(Math.sin(P))}for(var T=[],O=0;O<=k;O++)for(var R=0;R<=b;R++){var A=O%2==1;if((0!==R||!A)&&(0!==R||!N)){var D=O*_+o-w,F=R*x+s+I;if(A&&(F-=p/2),!0===n.triangles)ta([D,F],c/2,f/2,JSON.parse(r),S,M).forEach((function(t){n.mask?Ks(C([n.mask,t]))&&T.push(t):T.push(t)}));else{var q=$s([D,F],c/2,f/2,JSON.parse(r),S,M);n.mask?Ks(C([n.mask,q]))&&T.push(q):T.push(q)}}}return C(T)}function $s(t,e,n,r,i,o){for(var s=[],a=0;a<6;a++){var u=t[0]+e*i[a],l=t[1]+n*o[a];s.push([u,l])}return s.push(s[0].slice()),S([s],r)}function ta(t,e,n,r,i,o){for(var s=[],a=0;a<6;a++){var u=[];u.push(t),u.push([t[0]+e*i[a],t[1]+n*o[a]]),u.push([t[0]+e*i[(a+1)%6],t[1]+n*o[(a+1)%6]]),u.push(t),s.push(S([u],r))}return s}function ea(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};n.mask&&!n.units&&(n.units="kilometers");for(var r=[],i=t[0],o=t[1],s=t[2],a=t[3],u=e/ut([i,o],[s,o],n)*(s-i),l=e/ut([i,o],[i,a],n)*(a-o),h=s-i,c=a-o,f=Math.floor(h/u),g=(c-Math.floor(c/l)*l)/2,v=i+(h-f*u)/2;v<=s;){for(var d=o+g;d<=a;){var p=I([v,d],n.properties);n.mask?Cn(p,n.mask)&&r.push(p):r.push(p),d+=l}v+=u}return C(r)}function na(t,e,n){for(var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=[],o=t[0],s=t[1],a=t[2],u=t[3],l=a-o,h=X(e,r.units,"degrees"),c=u-s,f=X(n,r.units,"degrees"),g=Math.floor(Math.abs(l)/h),v=Math.floor(Math.abs(c)/f),d=(c-v*f)/2,p=o+(l-g*h)/2,y=0;y<g;y++){for(var m=s+d,_=0;_<v;_++){var x=S([[[p,m],[p,m+f],[p+h,m+f],[p+h,m],[p,m]]],r.properties);r.mask?Te(r.mask,x)&&i.push(x):i.push(x),m+=f}p+=h}return C(i)}function ra(t,e){return na(t,e,e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:{})}function ia(t,e){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=[],i=e/ut([t[0],t[1]],[t[2],t[1]],n)*(t[2]-t[0]),o=e/ut([t[0],t[1]],[t[0],t[3]],n)*(t[3]-t[1]),s=0,a=t[0];a<=t[2];){for(var u=0,l=t[1];l<=t[3];){var h=null,c=null;s%2==0&&u%2==0?(h=S([[[a,l],[a,l+o],[a+i,l],[a,l]]],n.properties),c=S([[[a,l+o],[a+i,l+o],[a+i,l],[a,l+o]]],n.properties)):s%2==0&&u%2==1?(h=S([[[a,l],[a+i,l+o],[a+i,l],[a,l]]],n.properties),c=S([[[a,l],[a,l+o],[a+i,l+o],[a,l]]],n.properties)):u%2==0&&s%2==1?(h=S([[[a,l],[a,l+o],[a+i,l+o],[a,l]]],n.properties),c=S([[[a,l],[a+i,l+o],[a+i,l],[a,l]]],n.properties)):u%2==1&&s%2==1&&(h=S([[[a,l],[a,l+o],[a+i,l],[a,l]]],n.properties),c=S([[[a,l+o],[a+i,l+o],[a+i,l],[a,l+o]]],n.properties)),n.mask?(Ks(C([n.mask,h]))&&r.push(h),Ks(C([n.mask,c]))&&r.push(c)):(r.push(h),r.push(c)),l+=o,u++}s++,a+=i}return C(r)}Js.prototype.interpolate=function(t){var e=Math.sin((1-t)*this.g)/Math.sin(this.g),n=Math.sin(t*this.g)/Math.sin(this.g),r=e*Math.cos(this.start.y)*Math.cos(this.start.x)+n*Math.cos(this.end.y)*Math.cos(this.end.x),i=e*Math.cos(this.start.y)*Math.sin(this.start.x)+n*Math.cos(this.end.y)*Math.sin(this.end.x),o=e*Math.sin(this.start.y)+n*Math.sin(this.end.y),s=Vs*Math.atan2(o,Math.sqrt(Math.pow(r,2)+Math.pow(i,2)));return[Vs*Math.atan2(i,r),s]},Js.prototype.Arc=function(t,e){var n=[];if(!t||t<=2)n.push([this.start.lon,this.start.lat]),n.push([this.end.lon,this.end.lat]);else for(var r=1/(t-1),i=0;i<t;++i){var o=r*i,s=this.interpolate(o);n.push(s)}for(var a=!1,u=0,l=e&&e.offset?e.offset:10,h=180-l,c=-180+l,f=360-l,g=1;g<n.length;++g){var v=n[g-1][0],d=n[g][0],p=Math.abs(d-v);p>f&&(d>h&&v<c||v>h&&d<c)?a=!0:p>u&&(u=p)}var y=[];if(a&&u<l){var m=[];y.push(m);for(var _=0;_<n.length;++_){var x=parseFloat(n[_][0]);if(_>0&&Math.abs(x-n[_-1][0])>f){var E=parseFloat(n[_-1][0]),k=parseFloat(n[_-1][1]),w=parseFloat(n[_][0]),b=parseFloat(n[_][1]);if(E>-180&&E<c&&180===w&&_+1<n.length&&n[_-1][0]>-180&&n[_-1][0]<c){m.push([-180,n[_][1]]),_++,m.push([n[_][0],n[_][1]]);continue}if(E>h&&E<180&&-180===w&&_+1<n.length&&n[_-1][0]>h&&n[_-1][0]<180){m.push([180,n[_][1]]),_++,m.push([n[_][0],n[_][1]]);continue}if(E<c&&w>h){var I=E;E=w,w=I;var N=k;k=b,b=N}if(E>h&&w<c&&(w+=360),E<=180&&w>=180&&E<w){var S=(180-E)/(w-E),M=S*b+(1-S)*k;m.push([n[_-1][0]>h?180:-180,M]),(m=[]).push([n[_-1][0]>h?-180:180,M]),y.push(m)}else m=[],y.push(m);m.push([x,n[_][1]])}else m.push([n[_][0],n[_][1]])}}else{var L=[];y.push(L);for(var P=0;P<n.length;++P)L.push([n[P][0],n[P][1]])}for(var C=new Ws(this.properties),T=0;T<y.length;++T){var O=new Hs;C.geometries.push(O);for(var R=y[T],A=0;A<R.length;++A)O.move_to(R[A])}return C};var oa=Object.defineProperty,sa=Object.getOwnPropertySymbols,aa=Object.prototype.hasOwnProperty,ua=Object.prototype.propertyIsEnumerable,la=function(t,e,n){return e in t?oa(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n},ha=function(t,e){for(var n in e||(e={}))aa.call(e,n)&&la(t,n,e[n]);if(sa){var r,i=a(sa(e));try{for(i.s();!(r=i.n()).done;){n=r.value;ua.call(e,n)&&la(t,n,e[n])}}catch(t){i.e(t)}finally{i.f()}}return t};function ca(t,e){if(!Z(e=e||{}))throw new Error("options is invalid");var n=e.zProperty||"elevation",r=e.flip,i=e.flags;nt(t,"Point","input must contain Points");for(var o=function(t,e){var n={};dt(t,(function(t){var e=Q(t)[1];n[e]||(n[e]=[]),n[e].push(t)}));var r=Object.keys(n).map((function(t){return n[t].sort((function(t,e){return Q(t)[0]-Q(e)[0]}))})),i=r.sort((function(t,n){return e?Q(t[0])[1]-Q(n[0])[1]:Q(n[0])[1]-Q(t[0])[1]}));return i}(t,r),s=[],a=0;a<o.length;a++){for(var u=o[a],l=[],h=0;h<u.length;h++){var c=u[h];c.properties[n]?l.push(c.properties[n]):l.push(0),!0===i&&(c.properties.matrixPosition=[a,h])}s.push(l)}return s}function fa(t,e){for(var n=[],r=t[0].length,i=t.length,o=0;o<i-1;o++)for(var s=0;s<r-1;s++){var a=t[o+1][s+1],u=t[o][s+1],l=t[o][s],h=t[o+1][s];switch((h>=e?8:0)|(a>=e?4:0)|(u>=e?2:0)|(l>=e?1:0)){case 0:case 15:continue;case 1:n.push([[s+c(l,u),o],[s,o+c(l,h)]]);break;case 2:n.push([[s+1,o+c(u,a)],[s+c(l,u),o]]);break;case 3:n.push([[s+1,o+c(u,a)],[s,o+c(l,h)]]);break;case 4:n.push([[s+c(h,a),o+1],[s+1,o+c(u,a)]]);break;case 5:(h+a+u+l)/4>=e?n.push([[s+c(h,a),o+1],[s,o+c(l,h)]],[[s+c(l,u),o],[s+1,o+c(u,a)]]):n.push([[s+c(h,a),o+1],[s+1,o+c(u,a)]],[[s+c(l,u),o],[s,o+c(l,h)]]);break;case 6:n.push([[s+c(h,a),o+1],[s+c(l,u),o]]);break;case 7:n.push([[s+c(h,a),o+1],[s,o+c(l,h)]]);break;case 8:n.push([[s,o+c(l,h)],[s+c(h,a),o+1]]);break;case 9:n.push([[s+c(l,u),o],[s+c(h,a),o+1]]);break;case 10:(h+a+u+l)/4>=e?n.push([[s,o+c(l,h)],[s+c(l,u),o]],[[s+1,o+c(u,a)],[s+c(h,a),o+1]]):n.push([[s,o+c(l,h)],[s+c(h,a),o+1]],[[s+1,o+c(u,a)],[s+c(l,u),o]]);break;case 11:n.push([[s+1,o+c(u,a)],[s+c(h,a),o+1]]);break;case 12:n.push([[s,o+c(l,h)],[s+1,o+c(u,a)]]);break;case 13:n.push([[s+c(l,u),o],[s+1,o+c(u,a)]]);break;case 14:n.push([[s,o+c(l,h)],[s+c(l,u),o]])}}return n;function c(t,n){if(t===n)return.5;var r=(e-t)/(n-t);return r>1?1:r<0?0:r}}function ga(t,e){for(var n=e.length,r=e[0].length,i=[],o=[];t.length>0;){var s=p(t.shift());i.push(s);var u=void 0;do{u=!1;for(var l=0;l<t.length;l++){var h=t[l];if(h[0][0]===s[s.length-1][0]&&h[0][1]===s[s.length-1][1]){u=!0,s.push(h[1]),t.splice(l,1);break}if(h[1][0]===s[0][0]&&h[1][1]===s[0][1]){u=!0,s.unshift(h[0]),t.splice(l,1);break}}}while(u)}for(var c=function(){var t=i[0];if(t[0][0]===t[t.length-1][0]&&t[0][1]===t[t.length-1][1])return o.push(t),i.shift(),1;var e,s,u=t[t.length-1];if(0===u[0]&&0!==u[1])e=ma(i,(function(t){return 0===t[0][0]&&t[0][1]<u[1]}),(function(t,e){return e[0][1]-t[0][1]})),s=[0,0];else if(0===u[1]&&u[0]!==r-1)e=ma(i,(function(t){return 0===t[0][1]&&t[0][0]>u[0]}),(function(t,e){return t[0][0]-e[0][0]})),s=[r-1,0];else if(u[0]===r-1&&u[1]!==n-1)e=ma(i,(function(t){return t[0][0]===r-1&&t[0][1]>u[1]}),(function(t,e){return t[0][1]-e[0][1]})),s=[r-1,n-1];else{if(u[1]!==n-1||0===u[0])throw new Error("Contour not closed but is not along an edge");e=ma(i,(function(t){return t[0][1]===n-1&&t[0][0]<u[0]}),(function(t,e){return e[0][0]-t[0][0]})),s=[0,n-1]}if(-1===e)t.push(s);else if(0===e)t.push([t[0][0],t[0][1]]),o.push(t),i.shift();else{var l=i[e];i.splice(e,1);var h,c=a(l);try{for(c.s();!(h=c.n()).done;){var f=h.value;t.push(f)}}catch(t){c.e(t)}finally{c.f()}}};i.length>0;)c();for(var f=0;f<o.length;f++)o[f].length<4&&(o.splice(f,1),f--);return o}function va(t){var e=t.map((function(t){return{ring:t,area:Lt(S([t]))}}));return e.sort((function(t,e){return e.area-t.area})),e.map((function(t){return t.ring}))}function da(t){for(var e=t.map((function(t){return{lrCoordinates:t,grouped:!1}})),n=[];!ya(e);)for(var r=0;r<e.length;r++)if(!e[r].grouped){var i=[];i.push(e[r].lrCoordinates),e[r].grouped=!0;var o=S([e[r].lrCoordinates]);t:for(var s=r+1;s<e.length;s++)if(!e[s].grouped){var a=S([e[s].lrCoordinates]);if(pa(a,o)){for(var u=1;u<i.length;u++)if(pa(a,S([i[u]])))continue t;i.push(e[s].lrCoordinates),e[s].grouped=!0}}n.push(i)}return n}function pa(t,e){for(var n=Xs(t),r=0;r<n.features.length;r++)if(!jt(n.features[r],e))return!1;return!0}function ya(t){for(var e=0;e<t.length;e++)if(!1===t[e].grouped)return!1;return!0}function ma(t,e,n){for(var r=-1,i=0;i<t.length;i++)e(t[i])&&(-1===r||n(t[r],t[i])>0)&&(r=i);return r}var _a=Object.defineProperty,xa=Object.getOwnPropertySymbols,Ea=Object.prototype.hasOwnProperty,ka=Object.prototype.propertyIsEnumerable,wa=function(t,e,n){return e in t?_a(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n},ba=function(t,e){for(var n in e||(e={}))Ea.call(e,n)&&wa(t,n,e[n]);if(xa){var r,i=a(xa(e));try{for(i.s();!(r=i.n()).done;){n=r.value;ka.call(e,n)&&wa(t,n,e[n])}}catch(t){i.e(t)}finally{i.f()}}return t};function Ia(t,e){if(!Z(e=e||{}))throw new Error("options is invalid");var n=e.zProperty||"elevation",r=e.flip,i=e.flags;nt(t,"Point","input must contain Points");for(var o=function(t,e){var n={};dt(t,(function(t){var e=Q(t)[1];n[e]||(n[e]=[]),n[e].push(t)}));var r=Object.keys(n).map((function(t){return n[t].sort((function(t,e){return Q(t)[0]-Q(e)[0]}))})),i=r.sort((function(t,n){return e?Q(t[0])[1]-Q(n[0])[1]:Q(n[0])[1]-Q(t[0])[1]}));return i}(t,r),s=[],a=0;a<o.length;a++){for(var u=o[a],l=[],h=0;h<u.length;h++){var c=u[h];c.properties[n]?l.push(c.properties[n]):l.push(0),!0===i&&(c.properties.matrixPosition=[a,h])}s.push(l)}return s}function Na(t,e){for(var n=[],r=t.length,i=t[0].length,o=0;o<r-1;o++)for(var s=0;s<i-1;s++){var a=t[o+1][s+1],u=t[o][s+1],l=t[o][s],h=t[o+1][s];switch((h>=e?8:0)|(a>=e?4:0)|(u>=e?2:0)|(l>=e?1:0)){case 0:case 15:continue;case 1:n.push([[s+y(l,u),o],[s,o+y(l,h)]]);break;case 2:n.push([[s+1,o+y(u,a)],[s+y(l,u),o]]);break;case 3:n.push([[s+1,o+y(u,a)],[s,o+y(l,h)]]);break;case 4:n.push([[s+y(h,a),o+1],[s+1,o+y(u,a)]]);break;case 5:(h+a+u+l)/4>=e?n.push([[s+y(h,a),o+1],[s,o+y(l,h)]],[[s+y(l,u),o],[s+1,o+y(u,a)]]):n.push([[s+y(h,a),o+1],[s+1,o+y(u,a)]],[[s+y(l,u),o],[s,o+y(l,h)]]);break;case 6:n.push([[s+y(h,a),o+1],[s+y(l,u),o]]);break;case 7:n.push([[s+y(h,a),o+1],[s,o+y(l,h)]]);break;case 8:n.push([[s,o+y(l,h)],[s+y(h,a),o+1]]);break;case 9:n.push([[s+y(l,u),o],[s+y(h,a),o+1]]);break;case 10:(h+a+u+l)/4>=e?n.push([[s,o+y(l,h)],[s+y(l,u),o]],[[s+1,o+y(u,a)],[s+y(h,a),o+1]]):n.push([[s,o+y(l,h)],[s+y(h,a),o+1]],[[s+1,o+y(u,a)],[s+y(l,u),o]]);break;case 11:n.push([[s+1,o+y(u,a)],[s+y(h,a),o+1]]);break;case 12:n.push([[s,o+y(l,h)],[s+1,o+y(u,a)]]);break;case 13:n.push([[s+y(l,u),o],[s+1,o+y(u,a)]]);break;case 14:n.push([[s,o+y(l,h)],[s+y(l,u),o]])}}for(var c=[];n.length>0;){var f=p(n.shift());c.push(f);var g=void 0;do{g=!1;for(var v=0;v<n.length;v++){var d=n[v];if(d[0][0]===f[f.length-1][0]&&d[0][1]===f[f.length-1][1]){g=!0,f.push(d[1]),n.splice(v,1);break}if(d[1][0]===f[0][0]&&d[1][1]===f[0][1]){g=!0,f.unshift(d[0]),n.splice(v,1);break}}}while(g)}return c;function y(t,n){if(t===n)return.5;var r=(e-t)/(n-t);return r>1?1:r<0?0:r}}function Sa(t,e,n,r,i,o,s,a){var u,l,h,c,f={x:null,y:null,onLine1:!1,onLine2:!1};return 0===(u=(a-o)*(n-t)-(s-i)*(r-e))?null!==f.x&&null!==f.y&&f:(c=(n-t)*(l=e-o)-(r-e)*(h=t-i),l=((s-i)*l-(a-o)*h)/u,h=c/u,f.x=t+l*(n-t),f.y=e+l*(r-e),l>=0&&l<=1&&(f.onLine1=!0),h>=0&&h<=1&&(f.onLine2=!0),!(!f.onLine1||!f.onLine2)&&[f.x,f.y])}function Ma(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return wt(t,(function(t,n){var r=n.geometry.coordinates;return t+ut(r[0],r[1],e)}),0)}function La(t,e,n,r){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},o=i.steps||64,s=Pa(n),a=Pa(r),u=Array.isArray(t)||"Feature"!==t.type?{}:t.properties;if(s===a)return L(Ri(t,e,i).geometry.coordinates[0],u);for(var l=s,h=s<a?a:a+360,c=l,f=[],g=0,v=(h-l)/o;c<=h;)f.push(at(t,e,c,i).geometry.coordinates),c=l+ ++g*v;return L(f,u)}function Pa(t){var e=t%360;return e<0&&(e+=360),e}function Ca(t,e,n,r){if(!Z(r=r||{}))throw new Error("options is invalid");var i,o=[];if("Feature"===t.type)i=t.geometry.coordinates;else{if("LineString"!==t.type)throw new Error("input must be a LineString Feature or Geometry");i=t.coordinates}for(var s,a,u,l=i.length,h=0,c=0;c<i.length&&!(e>=h&&c===i.length-1);c++){if(h>e&&0===o.length){if(!(s=e-h))return o.push(i[c]),L(o);a=st(i[c],i[c-1])-180,u=at(i[c],s,a,r),o.push(u.geometry.coordinates)}if(h>=n)return(s=n-h)?(a=st(i[c],i[c-1])-180,u=at(i[c],s,a,r),o.push(u.geometry.coordinates),L(o)):(o.push(i[c]),L(o));if(h>=e&&o.push(i[c]),c===i.length-1)return L(o);h+=ut(i[c],i[c+1],r)}if(h<e&&i.length===l)throw new Error("Start position is beyond line");var f=i[i.length-1];return L([f,f])}function Ta(t){var e=t[0],n=t[1];return[n[0]-e[0],n[1]-e[1]]}function Oa(t,e){return t[0]*e[1]-e[0]*t[1]}function Ra(t,e){return!function(t,e){return 0===Oa(Ta(t),Ta(e))}(t,e)&&function(t,e){var n,r,i=t[0],o=Ta(t),s=e[0],a=Ta(e),u=Oa(o,a),l=function(t,e){return[t[0]+e[0],t[1]+e[1]]}(i,function(t,e){return[t*e[0],t*e[1]]}(Oa((r=i,[(n=s)[0]-r[0],n[1]-r[1]]),a)/u,o));return l}(t,e)}function Aa(t,e,n){var r=[],i=G(e,n),o=Q(t),s=[];return o.forEach((function(t,e){if(e!==o.length-1){var n=(l=t,h=o[e+1],c=i,f=Math.sqrt((l[0]-h[0])*(l[0]-h[0])+(l[1]-h[1])*(l[1]-h[1])),g=l[0]+c*(h[1]-l[1])/f,v=h[0]+c*(h[1]-l[1])/f,d=l[1]+c*(l[0]-h[0])/f,p=h[1]+c*(l[0]-h[0])/f,[[g,d],[v,p]]);if(r.push(n),e>0){var a=r[e-1],u=Ra(n,a);!1!==u&&(a[1]=u,n[0]=u),s.push(a[0]),e===o.length-2&&(s.push(n[0]),s.push(n[1]))}2===o.length&&(s.push(n[0]),s.push(n[1]))}var l,h,c,f,g,v,d,p})),L(s,t.properties)}function Da(t,e){if(!Z(e=null!=e?e:{}))throw new Error("options is invalid");var n=e.precision,r=e.coordinates,i=e.mutate;if(n=null==n||isNaN(n)?6:n,r=null==r||isNaN(r)?3:r,!t)throw new Error("<geojson> is required");if("number"!=typeof n)throw new Error("<precision> must be a number");if("number"!=typeof r)throw new Error("<coordinates> must be a number");!1!==i&&void 0!==i||(t=JSON.parse(JSON.stringify(t)));var o=Math.pow(10,n);return ct(t,(function(t){!function(t,e,n){t.length>n&&t.splice(n,t.length);for(var r=0;r<t.length;r++)t[r]=Math.round(t[r]*e)/e}(t,o,r)})),t}function Fa(t,e){var n=[],r=Ke();return xt(e,(function(e){if(n.forEach((function(t,e){t.id=e})),n.length){var i=r.search(e);if(i.features.length){var o=Ga(e,i);n=n.filter((function(t){return t.id!==o.id})),r.remove(o),dt(qa(o,e),(function(t){n.push(t),r.insert(t)}))}}else n=qa(t,e).features,r.load(C(n))})),C(n)}function qa(t,e){var n=[],r=Q(t)[0],i=Q(t)[t.geometry.coordinates.length-1];if(Ba(r,K(e))||Ba(i,K(e)))return C([t]);var o=Ke(),s=Qe(t);o.load(s);var a=o.search(e);if(!a.features.length)return C([t]);var u=Ga(e,a),l=pt(s,(function(t,r,i){var o=Q(r)[1],s=K(e);return i===u.id?(t.push(s),n.push(L(t)),Ba(s,o)?[s]:[s,o]):(t.push(o),t)}),[r]);return l.length>1&&n.push(L(l)),C(n)}function Ga(t,e){if(!e.features.length)throw new Error("lines must contain features");if(1===e.features.length)return e.features[0];var n,r=1/0;return dt(e,(function(e){var i=cn(e,t).properties.dist;i<r&&(n=e,r=i)})),n}function Ba(t,e){return t[0]===e[0]&&t[1]===e[1]}function Ya(t,e,n,r){e=e||("Feature"===t.type?t.properties:{});var i=rt(t),o=i.coordinates,s=i.type;if(!o.length)throw new Error("line must contain coordinates");switch(s){case"LineString":return n&&(o=za(o)),S([o],e);case"MultiLineString":var a=[],u=0;return o.forEach((function(t){if(n&&(t=za(t)),r){var e=function(t){var e=t[0],n=t[1],r=t[2],i=t[3];return Math.abs(e-r)*Math.abs(n-i)}(Rt(L(t)));e>u?(a.unshift(t),u=e):a.push(t)}else a.push(t)})),S(a,e);default:throw new Error("geometry type "+s+" is not supported")}}function za(t){var e=t[0],n=e[0],r=e[1],i=t[t.length-1],o=i[0],s=i[1];return n===o&&r===s||t.push(e),t}function ja(t){return R(t)}function Xa(t){var e=[[[180,90],[-180,90],[-180,-90],[180,-90],[180,90]]];return t&&(e="Feature"===t.type?t.geometry.coordinates:t.coordinates),S(e)}function Ua(t){var e,n=0,r=a(t);try{for(r.s();!(e=r.n()).done;){n+=e.value}}catch(t){r.e(t)}finally{r.f()}return n/t.length}var Va=Object.defineProperty,Za=Object.defineProperties,Ha=Object.getOwnPropertyDescriptors,Wa=Object.getOwnPropertySymbols,Ja=Object.prototype.hasOwnProperty,Ka=Object.prototype.propertyIsEnumerable,Qa=function(t,e,n){return e in t?Va(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n},$a=function(t,e){for(var n in e||(e={}))Ja.call(e,n)&&Qa(t,n,e[n]);if(Wa){var r,i=a(Wa(e));try{for(i.s();!(r=i.n()).done;){n=r.value;Ka.call(e,n)&&Qa(t,n,e[n])}}catch(t){i.e(t)}finally{i.f()}}return t},tu=function(t,e){return Za(t,Ha(e))};function eu(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!t)throw new Error("targetPoint is required");if(!e)throw new Error("points is required");var r=1/0,i=0;dt(e,(function(e,o){var s=ut(t,e,n);s<r&&(i=o,r=s)}));var o=Ai(e.features[i]);return tu($a({},o),{properties:tu($a({},o.properties),{featureIndex:i,distanceToPoint:r})})}function nu(t,e){var n,r,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=null!=(n=i.method)?n:"geodesic",s=null!=(r=i.units)?r:"kilometers";if(!t)throw new Error("pt is required");if(Array.isArray(t)?t=I(t):"Point"===t.type?t=w(t):et(t,"Point","point"),!e)throw new Error("line is required");Array.isArray(e)?e=L(e):"LineString"===e.type?e=w(e):et(e,"LineString","line");var a=1/0,u=t.geometry.coordinates;return kt(e,(function(t){if(t){var e=t.geometry.coordinates[0],n=t.geometry.coordinates[1],r=function(t,e,n,r){if("geodesic"===r.method){return cn(L([e,n]).geometry,t,{units:"degrees"}).properties.dist}var i=[n[0]-e[0],n[1]-e[1]],o=[t[0]-e[0],t[1]-e[1]],s=ru(o,i);if(s<=0)return Gs(t,e,{units:"degrees"});var a=ru(i,i);if(a<=s)return Gs(t,n,{units:"degrees"});var u=s/a,l=[e[0]+u*i[0],e[1]+u*i[1]];return Gs(t,l,{units:"degrees"})}(u,e,n,{method:o});r<a&&(a=r)}})),X(a,"degrees",s)}function ru(t,e){return t[0]*e[0]+t[1]*e[1]}var iu=Object.defineProperty,ou=Object.getOwnPropertySymbols,su=Object.prototype.hasOwnProperty,au=Object.prototype.propertyIsEnumerable,uu=function(t,e,n){return e in t?iu(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n},lu=function(t,e){for(var n in e||(e={}))su.call(e,n)&&uu(t,n,e[n]);if(ou){var r,i=a(ou(e));try{for(i.s();!(r=i.n()).done;){n=r.value;au.call(e,n)&&uu(t,n,e[n])}}catch(t){i.e(t)}finally{i.f()}}return t};function hu(t,e,n,r,i,o){return Math.sqrt((i-n)*(i-n)+(o-r)*(o-r))===Math.sqrt((t-n)*(t-n)+(e-r)*(e-r))+Math.sqrt((i-t)*(i-t)+(o-e)*(o-e))}function cu(t,e){var n=[];return dt(t,(function(t){var r=!1;if("Point"===t.geometry.type)mt(e,(function(e){jt(t,e)&&(r=!0)})),r&&n.push(t);else{if("MultiPoint"!==t.geometry.type)throw new Error("Input geometry must be a Point or MultiPoint");var i=[];mt(e,(function(e){ct(t,(function(t){jt(t,e)&&(r=!0,i.push(t))}))})),r&&n.push(O(i,t.properties))}})),C(n)}function fu(t,e,n){var r=e[0]-t[0],i=e[1]-t[1],o=n[0]-e[0];return function(t){return(t>0)-(t<0)||+t}(r*(n[1]-e[1])-o*i)}function gu(t,e){return e.geometry.coordinates[0].every((function(e){return jt(I(e),t)}))}var vu=function(){return s((function t(e){i(this,t),this.id=t.buildId(e),this.coordinates=e,this.innerEdges=[],this.outerEdges=[],this.outerEdgesSorted=!1}),[{key:"removeInnerEdge",value:function(t){this.innerEdges=this.innerEdges.filter((function(e){return e.from.id!==t.from.id}))}},{key:"removeOuterEdge",value:function(t){this.outerEdges=this.outerEdges.filter((function(e){return e.to.id!==t.to.id}))}},{key:"addOuterEdge",value:function(t){this.outerEdges.push(t),this.outerEdgesSorted=!1}},{key:"sortOuterEdges",value:function(){var t=this;this.outerEdgesSorted||(this.outerEdges.sort((function(e,n){var r=e.to,i=n.to;if(r.coordinates[0]-t.coordinates[0]>=0&&i.coordinates[0]-t.coordinates[0]<0)return 1;if(r.coordinates[0]-t.coordinates[0]<0&&i.coordinates[0]-t.coordinates[0]>=0)return-1;if(r.coordinates[0]-t.coordinates[0]==0&&i.coordinates[0]-t.coordinates[0]==0)return r.coordinates[1]-t.coordinates[1]>=0||i.coordinates[1]-t.coordinates[1]>=0?r.coordinates[1]-i.coordinates[1]:i.coordinates[1]-r.coordinates[1];var o=fu(t.coordinates,r.coordinates,i.coordinates);return o<0?1:o>0?-1:Math.pow(r.coordinates[0]-t.coordinates[0],2)+Math.pow(r.coordinates[1]-t.coordinates[1],2)-(Math.pow(i.coordinates[0]-t.coordinates[0],2)+Math.pow(i.coordinates[1]-t.coordinates[1],2))})),this.outerEdgesSorted=!0)}},{key:"getOuterEdges",value:function(){return this.sortOuterEdges(),this.outerEdges}},{key:"getOuterEdge",value:function(t){return this.sortOuterEdges(),this.outerEdges[t]}},{key:"addInnerEdge",value:function(t){this.innerEdges.push(t)}}],[{key:"buildId",value:function(t){return t.join(",")}}])}(),du=function(){function t(e,n){i(this,t),this.from=e,this.to=n,this.next=void 0,this.label=void 0,this.symetric=void 0,this.ring=void 0,this.from.addOuterEdge(this),this.to.addInnerEdge(this)}return s(t,[{key:"getSymetric",value:function(){return this.symetric||(this.symetric=new t(this.to,this.from),this.symetric.symetric=this),this.symetric}},{key:"deleteEdge",value:function(){this.from.removeOuterEdge(this),this.to.removeInnerEdge(this)}},{key:"isEqual",value:function(t){return this.from.id===t.from.id&&this.to.id===t.to.id}},{key:"toString",value:function(){return"Edge { ".concat(this.from.id," -> ").concat(this.to.id," }")}},{key:"toLineString",value:function(){return L([this.from.coordinates,this.to.coordinates])}},{key:"compareTo",value:function(t){return fu(t.from.coordinates,t.to.coordinates,this.to.coordinates)}}])}(),pu=function(){return s((function t(){i(this,t),this.edges=[],this.polygon=void 0,this.envelope=void 0}),[{key:"push",value:function(t){this.edges.push(t),this.polygon=this.envelope=void 0}},{key:"get",value:function(t){return this.edges[t]}},{key:"length",get:function(){return this.edges.length}},{key:"forEach",value:function(t){this.edges.forEach(t)}},{key:"map",value:function(t){return this.edges.map(t)}},{key:"some",value:function(t){return this.edges.some(t)}},{key:"isValid",value:function(){return!0}},{key:"isHole",value:function(){var t=this,e=this.edges.reduce((function(e,n,r){return n.from.coordinates[1]>t.edges[e].from.coordinates[1]&&(e=r),e}),0),n=(0===e?this.length:e)-1,r=(e+1)%this.length,i=fu(this.edges[n].from.coordinates,this.edges[e].from.coordinates,this.edges[r].from.coordinates);return 0===i?this.edges[n].from.coordinates[0]>this.edges[r].from.coordinates[0]:i>0}},{key:"toMultiPoint",value:function(){return O(this.edges.map((function(t){return t.from.coordinates})))}},{key:"toPolygon",value:function(){if(this.polygon)return this.polygon;var t=this.edges.map((function(t){return t.from.coordinates}));return t.push(this.edges[0].from.coordinates),this.polygon=S([t])}},{key:"getEnvelope",value:function(){return this.envelope?this.envelope:this.envelope=js(this.toPolygon())}},{key:"inside",value:function(t){return jt(t,this.toPolygon())}}],[{key:"findEdgeRingContaining",value:function(t,e){var n,r,i=t.getEnvelope();return e.forEach((function(e){var o,s,u,l,h,c,f=e.getEnvelope();if((r&&(n=r.getEnvelope()),s=i,u=(o=f).geometry.coordinates[0].map((function(t){return t[0]})),l=o.geometry.coordinates[0].map((function(t){return t[1]})),h=s.geometry.coordinates[0].map((function(t){return t[0]})),c=s.geometry.coordinates[0].map((function(t){return t[1]})),Math.max.apply(null,u)!==Math.max.apply(null,h)||Math.max.apply(null,l)!==Math.max.apply(null,c)||Math.min.apply(null,u)!==Math.min.apply(null,h)||Math.min.apply(null,l)!==Math.min.apply(null,c))&&gu(f,i)){var g,v,d=a(t.map((function(t){return t.from.coordinates})));try{var p=function(){var t=v.value;e.some((function(e){return n=t,r=e.from.coordinates,n[0]===r[0]&&n[1]===r[1];var n,r}))||(g=t)};for(d.s();!(v=d.n()).done;)p()}catch(t){d.e(t)}finally{d.f()}g&&e.inside(I(g))&&(r&&!gu(n,f)||(r=e))}})),r}}])}();var yu=function(){function t(){i(this,t),this.edges=[],this.nodes={}}return s(t,[{key:"getNode",value:function(t){var e=vu.buildId(t),n=this.nodes[e];return n||(n=this.nodes[e]=new vu(t)),n}},{key:"addEdge",value:function(t,e){var n=new du(t,e),r=n.getSymetric();this.edges.push(n),this.edges.push(r)}},{key:"deleteDangles",value:function(){var t=this;Object.keys(this.nodes).map((function(e){return t.nodes[e]})).forEach((function(e){return t._removeIfDangle(e)}))}},{key:"_removeIfDangle",value:function(t){var e=this;if(t.innerEdges.length<=1){var n=t.getOuterEdges().map((function(t){return t.to}));this.removeNode(t),n.forEach((function(t){return e._removeIfDangle(t)}))}}},{key:"deleteCutEdges",value:function(){var t=this;this._computeNextCWEdges(),this._findLabeledEdgeRings(),this.edges.forEach((function(e){e.label===e.symetric.label&&(t.removeEdge(e.symetric),t.removeEdge(e))}))}},{key:"_computeNextCWEdges",value:function(t){var e=this;void 0===t?Object.keys(this.nodes).forEach((function(t){return e._computeNextCWEdges(e.nodes[t])})):t.getOuterEdges().forEach((function(e,n){t.getOuterEdge((0===n?t.getOuterEdges().length:n)-1).symetric.next=e}))}},{key:"_computeNextCCWEdges",value:function(t,e){for(var n,r,i=t.getOuterEdges(),o=i.length-1;o>=0;--o){var s=i[o],a=s.symetric,u=void 0,l=void 0;s.label===e&&(u=s),a.label===e&&(l=a),u&&l&&(l&&(r=l),u&&(r&&(r.next=u,r=void 0),n||(n=u)))}r&&(r.next=n)}},{key:"_findLabeledEdgeRings",value:function(){var t=[],e=0;return this.edges.forEach((function(n){if(!(n.label>=0)){t.push(n);var r=n;do{r.label=e,r=r.next}while(!n.isEqual(r));e++}})),t}},{key:"getEdgeRings",value:function(){var t=this;this._computeNextCWEdges(),this.edges.forEach((function(t){t.label=void 0})),this._findLabeledEdgeRings().forEach((function(e){t._findIntersectionNodes(e).forEach((function(n){t._computeNextCCWEdges(n,e.label)}))}));var e=[];return this.edges.forEach((function(n){n.ring||e.push(t._findEdgeRing(n))})),e}},{key:"_findIntersectionNodes",value:function(t){var e=[],n=t,r=function(){var r=0;n.from.getOuterEdges().forEach((function(e){e.label===t.label&&++r})),r>1&&e.push(n.from),n=n.next};do{r()}while(!t.isEqual(n));return e}},{key:"_findEdgeRing",value:function(t){var e=t,n=new pu;do{n.push(e),e.ring=n,e=e.next}while(!t.isEqual(e));return n}},{key:"removeNode",value:function(t){var e=this;t.getOuterEdges().forEach((function(t){return e.removeEdge(t)})),t.innerEdges.forEach((function(t){return e.removeEdge(t)})),delete this.nodes[t.id]}},{key:"removeEdge",value:function(t){this.edges=this.edges.filter((function(e){return!e.isEqual(t)})),t.deleteEdge()}}],[{key:"fromGeoJson",value:function(e){!function(t){if(!t)throw new Error("No geojson passed");if("FeatureCollection"!==t.type&&"GeometryCollection"!==t.type&&"MultiLineString"!==t.type&&"LineString"!==t.type&&"Feature"!==t.type)throw new Error("Invalid input type '".concat(t.type,"'. Geojson must be FeatureCollection, GeometryCollection, LineString, MultiLineString or Feature"))}(e);var n=new t;return xt(e,(function(t){et(t,"LineString","Graph::fromGeoJson"),ft(t,(function(t,e){if(t){var r=n.getNode(t),i=n.getNode(e);n.addEdge(r,i)}return e}))})),n}}])}();function mu(t,e){var n,r;ct(t,(function(t,i,o,s,a){if(r!==a)e.push([]);else{var u=n[0],l=n[1],h=t[0],c=t[1];e[a].push([.75*u+.25*h,.75*l+.25*c]),e[a].push([.25*u+.75*h,.25*l+.75*c])}n=t,r=a}),!1),e.forEach((function(t){t.push(t[0])}))}function _u(t,e){var n,r,i;ct(t,(function(t,o,s,a,u){if(r!==a)e.push([[]]);else if(i!==u)e[a].push([]);else{var l=n[0],h=n[1],c=t[0],f=t[1];e[a][u].push([.75*l+.25*c,.75*h+.25*f]),e[a][u].push([.25*l+.75*c,.25*h+.75*f])}n=t,r=a,i=u}),!1),e.forEach((function(t){t.forEach((function(t){t.push(t[0])}))}))}function xu(t,e,n,r,i){for(var o=0;o<t.length;o++){var s=t[o],a=t[o+1];o===t.length-1&&(a=t[0]);var u=ku(s,a,e);n<=0&&u>0?ku(e,s,r)<0||(r=s):n>0&&u<=0&&(Eu(e,s,i)||(i=s)),n=u}return[r,i]}function Eu(t,e,n){return ku(t,e,n)>0}function ku(t,e,n){return(e[0]-t[0])*(n[1]-t[1])-(n[0]-t[0])*(e[1]-t[1])}function wu(t){return Iu(t,"mercator",arguments.length>1&&void 0!==arguments[1]?arguments[1]:{})}function bu(t){return Iu(t,"wgs84",arguments.length>1&&void 0!==arguments[1]?arguments[1]:{})}function Iu(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=(n=n||{}).mutate;if(!t)throw new Error("geojson is required");return Array.isArray(t)&&V(t[0])?t="mercator"===e?Nu(t):Su(t):(!0!==r&&(t=Ai(t)),ct(t,(function(t){var n="mercator"===e?Nu(t):Su(t);t[0]=n[0],t[1]=n[1]}))),t}function Nu(t){var e=Math.PI/180,n=6378137,r=20037508.342789244,i=Math.abs(t[0])<=180?t[0]:t[0]-360*function(t){return t<0?-1:t>0?1:0}(t[0]),o=[n*i*e,n*Math.log(Math.tan(.25*Math.PI+.5*t[1]*e))];return o[0]>r&&(o[0]=r),o[0]<-20037508.342789244&&(o[0]=-20037508.342789244),o[1]>r&&(o[1]=r),o[1]<-20037508.342789244&&(o[1]=-20037508.342789244),o}function Su(t){var e=180/Math.PI,n=6378137;return[t[0]*e/n,(.5*Math.PI-2*Math.atan(Math.exp(-t[1]/n)))*e]}var Mu=Object.freeze({__proto__:null,toMercator:wu,toWgs84:bu});var Lu={20:1.07275,15:1.13795,10:1.22385,5:1.3581,2:1.51743,1:1.62762};function Pu(t,e){return e[0]<=t[0]&&e[1]<=t[1]&&e[2]>=t[0]&&e[3]>=t[1]}function Cu(t){var e=[];return function t(n){return 0===n||1===n?1:e[n]>0?e[n]:e[n]=t(n-1)*n}(t)}function Tu(t){return Ru(t),Ou(t)}function Ou(t){return Array.isArray(t)?Gu(t):t&&t.bbox?Gu(t.bbox):[360*qu(),180*qu()]}function Ru(t){null!=t&&(Array.isArray(t)?H(t):null!=t.bbox&&H(t.bbox))}function Au(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Ru(e.bbox),null==t&&(t=1);for(var n=[],r=0;r<t;r++)n.push(I(Ou(e.bbox)));return C(n)}function Du(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};Ru(e.bbox),null==t&&(t=1),void 0!==e.bbox&&null!==e.bbox||(e.bbox=[-180,-90,180,90]),V(e.num_vertices)&&void 0!==e.num_vertices||(e.num_vertices=10),V(e.max_radial_length)&&void 0!==e.max_radial_length||(e.max_radial_length=10);var n=Math.abs(e.bbox[0]-e.bbox[2]),r=Math.abs(e.bbox[1]-e.bbox[3]),i=Math.min(n/2,r/2);if(e.max_radial_length>i)throw new Error("max_radial_length is greater than the radius of the bbox");for(var o=[e.bbox[0]+e.max_radial_length,e.bbox[1]+e.max_radial_length,e.bbox[2]-e.max_radial_length,e.bbox[3]-e.max_radial_length],s=[],a=function(){var t,n=[],r=p(Array(e.num_vertices+1)).map(Math.random);r.forEach((function(t,e,n){n[e]=e>0?t+n[e-1]:t})),r.forEach((function(t){t=2*t*Math.PI/r[r.length-1];var i=Math.random();n.push([i*(e.max_radial_length||10)*Math.sin(t),i*(e.max_radial_length||10)*Math.cos(t)])})),n[n.length-1]=n[0],n=n.reverse().map((t=Ou(o),function(e){return[e[0]+t[0],e[1]+t[1]]})),s.push(S([n]))},u=0;u<t;u++)a();return C(s)}function Fu(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!Z(e=e||{}))throw new Error("options is invalid");var n=e.bbox;Ru(n);var r=e.num_vertices,i=e.max_length,o=e.max_rotation;null==t&&(t=1),(!V(r)||void 0===r||r<2)&&(r=10),V(i)&&void 0!==i||(i=1e-4),V(o)&&void 0!==o||(o=Math.PI/8);for(var s=[],a=0;a<t;a++){for(var u=[Ou(n)],l=0;l<r-1;l++){var h=(0===l?2*Math.random()*Math.PI:Math.tan((u[l][1]-u[l-1][1])/(u[l][0]-u[l-1][0])))+(Math.random()-.5)*o*2,c=Math.random()*i;u.push([u[l][0]+c*Math.cos(h),u[l][1]+c*Math.sin(h)])}s.push(L(u))}return C(s)}function qu(){return Math.random()-.5}function Gu(t){return[Math.random()*(t[2]-t[0])+t[0],Math.random()*(t[3]-t[1])+t[1]]}var Bu=Object.freeze({__proto__:null,randomLineString:Fu,randomPoint:Au,randomPolygon:Du,randomPosition:Tu});function Yu(t,e){switch("Feature"===t.type?t.geometry.type:t.type){case"GeometryCollection":return mt(t,(function(t){Yu(t,e)})),t;case"LineString":return zu(Q(t),e),t;case"Polygon":return ju(Q(t),e),t;case"MultiLineString":return Q(t).forEach((function(t){zu(t,e)})),t;case"MultiPolygon":return Q(t).forEach((function(t){ju(t,e)})),t;case"Point":case"MultiPoint":return t}}function zu(t,e){Yt(t)===e&&t.reverse()}function ju(t,e){Yt(t[0])!==e&&t[0].reverse();for(var n=1;n<t.length;n++)Yt(t[n])===e&&t[n].reverse()}function Xu(t){var e=t%360;return e<0&&(e+=360),e}function Uu(t,e,n){if(!Z(n=n||{}))throw new Error("options is invalid");var r=n.origin||"centroid",i=n.mutate||!1;if(!t)throw new Error("geojson required");if("number"!=typeof e||e<=0)throw new Error("invalid factor");var o=Array.isArray(r)||"object"===m(r);return!0!==i&&(t=Ai(t)),"FeatureCollection"!==t.type||o?Vu(t,e,r):(dt(t,(function(n,i){t.features[i]=Vu(n,e,r)})),t)}function Vu(t,e,n){var r="Point"===it(t),i=function(t,e){null==e&&(e="centroid");if(Array.isArray(e)||"object"===m(e))return K(e);var n=t.bbox?t.bbox:Rt(t,{recompute:!0}),r=n[0],i=n[1],o=n[2],s=n[3];switch(e){case"sw":case"southwest":case"westsouth":case"bottomleft":return I([r,i]);case"se":case"southeast":case"eastsouth":case"bottomright":return I([o,i]);case"nw":case"northwest":case"westnorth":case"topleft":return I([r,s]);case"ne":case"northeast":case"eastnorth":case"topright":return I([o,s]);case"center":return An(t);case void 0:case null:case"centroid":return gi(t);default:throw new Error("invalid origin")}}(t,n);return 1===e||r||(ct(t,(function(t){var n=Gs(i,t),r=lt(i,t),o=Q(Bs(i,n*e,r));t[0]=o[0],t[1]=o[1],3===t.length&&(t[2]*=e)})),delete t.bbox),t}function Zu(t){for(var e=t,n=[];e.parent;)n.unshift(e),e=e.parent;return n}var Hu={search:function(t,e,n,r){var i;t.cleanDirty();var o=(r=r||{}).heuristic||Hu.heuristics.manhattan,s=null!=(i=r.closest)&&i,a=new Ku((function(t){return t.f})),u=e;for(e.h=o(e,n),a.push(e);a.size()>0;){var l=a.pop();if(l===n)return Zu(l);l.closed=!0;for(var h=t.neighbors(l),c=0,f=h.length;c<f;++c){var g=h[c];if(!g.closed&&!g.isWall()){var v=l.g+g.getCost(l),d=g.visited;(!d||v<g.g)&&(g.visited=!0,g.parent=l,g.h=g.h||o(g,n),g.g=v,g.f=g.g+g.h,t.markDirty(g),s&&(g.h<u.h||g.h===u.h&&g.g<u.g)&&(u=g),d?a.rescoreElement(g):a.push(g))}}}return s?Zu(u):[]},heuristics:{manhattan:function(t,e){return Math.abs(e.x-t.x)+Math.abs(e.y-t.y)},diagonal:function(t,e){var n=Math.sqrt(2),r=Math.abs(e.x-t.x),i=Math.abs(e.y-t.y);return 1*(r+i)+(n-2)*Math.min(r,i)}},cleanNode:function(t){t.f=0,t.g=0,t.h=0,t.visited=!1,t.closed=!1,t.parent=null}};function Wu(t,e){e=e||{},this.nodes=[],this.diagonal=!!e.diagonal,this.grid=[];for(var n=0;n<t.length;n++){this.grid[n]=[];for(var r=0,i=t[n];r<i.length;r++){var o=new Ju(n,r,i[r]);this.grid[n][r]=o,this.nodes.push(o)}}this.init()}function Ju(t,e,n){this.x=t,this.y=e,this.weight=n}function Ku(t){this.content=[],this.scoreFunction=t}function Qu(t,e){for(var n=0;n<e.features.length;n++)if(jt(t,e.features[n]))return!0;return!1}function $u(t,e,n){var r=e[0],i=e[1],o=n[0]-r,s=n[1]-i;if(0!==o||0!==s){var a=((t[0]-r)*o+(t[1]-i)*s)/(o*o+s*s);a>1?(r=n[0],i=n[1]):a>0&&(r+=o*a,i+=s*a)}return(o=t[0]-r)*o+(s=t[1]-i)*s}function tl(t,e,n,r,i){for(var o,s=r,a=e+1;a<n;a++){var u=$u(t[a],t[e],t[n]);u>s&&(o=a,s=u)}s>r&&(o-e>1&&tl(t,e,o,r,i),i.push(t[o]),n-o>1&&tl(t,o,n,r,i))}function el(t,e){var n=t.length-1,r=[t[0]];return tl(t,0,n,e,r),r.push(t[n]),r}function nl(t,e,n){if(t.length<=2)return t;var r=void 0!==e?e*e:1;return t=n?t:function(t,e){for(var n,r,i,o,s,a=t[0],u=[a],l=1,h=t.length;l<h;l++)n=t[l],i=a,o=void 0,s=void 0,o=(r=n)[0]-i[0],s=r[1]-i[1],o*o+s*s>e&&(u.push(n),a=n);return a!==n&&u.push(n),u}(t,r),t=el(t,r)}function rl(t,e,n){return t.map((function(t){if(t.length<4)throw new Error("invalid polygon");for(var r=e,i=nl(t,r,n);!il(i)&&r>=Number.EPSILON;)i=nl(t,r-=.01*r,n);return il(i)?(i[i.length-1][0]===i[0][0]&&i[i.length-1][1]===i[0][1]||i.push(i[0]),i):t}))}function il(t){return!(t.length<3)&&!(3===t.length&&t[2][0]===t[0][0]&&t[2][1]===t[0][1])}function ol(t,e){return{x:t[0]-e[0],y:t[1]-e[1]}}Wu.prototype.init=function(){this.dirtyNodes=[];for(var t=0;t<this.nodes.length;t++)Hu.cleanNode(this.nodes[t])},Wu.prototype.cleanDirty=function(){for(var t=0;t<this.dirtyNodes.length;t++)Hu.cleanNode(this.dirtyNodes[t]);this.dirtyNodes=[]},Wu.prototype.markDirty=function(t){this.dirtyNodes.push(t)},Wu.prototype.neighbors=function(t){var e=[],n=t.x,r=t.y,i=this.grid;return i[n-1]&&i[n-1][r]&&e.push(i[n-1][r]),i[n+1]&&i[n+1][r]&&e.push(i[n+1][r]),i[n]&&i[n][r-1]&&e.push(i[n][r-1]),i[n]&&i[n][r+1]&&e.push(i[n][r+1]),this.diagonal&&(i[n-1]&&i[n-1][r-1]&&e.push(i[n-1][r-1]),i[n+1]&&i[n+1][r-1]&&e.push(i[n+1][r-1]),i[n-1]&&i[n-1][r+1]&&e.push(i[n-1][r+1]),i[n+1]&&i[n+1][r+1]&&e.push(i[n+1][r+1])),e},Wu.prototype.toString=function(){for(var t,e,n,r,i=[],o=this.grid,s=0,a=o.length;s<a;s++){for(t=[],n=0,r=(e=o[s]).length;n<r;n++)t.push(e[n].weight);i.push(t.join(" "))}return i.join("\n")},Ju.prototype.toString=function(){return"["+this.x+" "+this.y+"]"},Ju.prototype.getCost=function(t){return t&&t.x!==this.x&&t.y!==this.y?1.41421*this.weight:this.weight},Ju.prototype.isWall=function(){return 0===this.weight},Ku.prototype={push:function(t){this.content.push(t),this.sinkDown(this.content.length-1)},pop:function(){var t=this.content[0],e=this.content.pop();return this.content.length>0&&(this.content[0]=e,this.bubbleUp(0)),t},remove:function(t){var e=this.content.indexOf(t),n=this.content.pop();e!==this.content.length-1&&(this.content[e]=n,this.scoreFunction(n)<this.scoreFunction(t)?this.sinkDown(e):this.bubbleUp(e))},size:function(){return this.content.length},rescoreElement:function(t){this.sinkDown(this.content.indexOf(t))},sinkDown:function(t){for(var e=this.content[t];t>0;){var n=(t+1>>1)-1,r=this.content[n];if(!(this.scoreFunction(e)<this.scoreFunction(r)))break;this.content[n]=e,this.content[t]=r,t=n}},bubbleUp:function(t){for(var e=this.content.length,n=this.content[t],r=this.scoreFunction(n);;){var i,o=t+1<<1,s=o-1,a=null;if(s<e){var u=this.content[s];(i=this.scoreFunction(u))<r&&(a=s)}if(o<e){var l=this.content[o];this.scoreFunction(l)<(null===a?r:i)&&(a=o)}if(null===a)break;this.content[t]=this.content[a],this.content[a]=n,t=a}}};var sl,al={exports:{}};var ul=function(){if(sl)return al.exports;function t(t,n,i){i=i||2;var o,s,a,h,c,g,v,d=n&&n.length,p=d?n[0]*i:t.length,y=e(t,0,p,i,!0),m=[];if(!y||y.next===y.prev)return m;if(d&&(y=function(t,n,r,i){var o,s,a,h=[];for(o=0,s=n.length;o<s;o++)(a=e(t,n[o]*i,o<s-1?n[o+1]*i:t.length,i,!1))===a.next&&(a.steiner=!0),h.push(f(a));for(h.sort(u),o=0;o<h.length;o++)r=l(h[o],r);return r}(t,n,y,i)),t.length>80*i){o=a=t[0],s=h=t[1];for(var _=i;_<p;_+=i)(c=t[_])<o&&(o=c),(g=t[_+1])<s&&(s=g),c>a&&(a=c),g>h&&(h=g);v=0!==(v=Math.max(a-o,h-s))?32767/v:0}return r(y,m,i,o,s,v,0),m}function e(t,e,n,r,i){var o,s;if(i===I(t,e,n,r)>0)for(o=e;o<n;o+=r)s=k(o,t[o],t[o+1],s);else for(o=n-r;o>=e;o-=r)s=k(o,t[o],t[o+1],s);return s&&p(s,s.next)&&(w(s),s=s.next),s}function n(t,e){if(!t)return t;e||(e=t);var n,r=t;do{if(n=!1,r.steiner||!p(r,r.next)&&0!==d(r.prev,r,r.next))r=r.next;else{if(w(r),(r=e=r.prev)===r.next)break;n=!0}}while(n||r!==e);return e}function r(t,e,u,l,h,f,g){if(t){!g&&f&&function(t,e,n,r){var i=t;do{0===i.z&&(i.z=c(i.x,i.y,e,n,r)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,function(t){var e,n,r,i,o,s,a,u,l=1;do{for(n=t,t=null,o=null,s=0;n;){for(s++,r=n,a=0,e=0;e<l&&(a++,r=r.nextZ);e++);for(u=l;a>0||u>0&&r;)0!==a&&(0===u||!r||n.z<=r.z)?(i=n,n=n.nextZ,a--):(i=r,r=r.nextZ,u--),o?o.nextZ=i:t=i,i.prevZ=o,o=i;n=r}o.nextZ=null,l*=2}while(s>1)}(i)}(t,l,h,f);for(var v,d,p=t;t.prev!==t.next;)if(v=t.prev,d=t.next,f?o(t,l,h,f):i(t))e.push(v.i/u|0),e.push(t.i/u|0),e.push(d.i/u|0),w(t),t=d.next,p=d.next;else if((t=d)===p){g?1===g?r(t=s(n(t),e,u),e,u,l,h,f,2):2===g&&a(t,e,u,l,h,f):r(n(t),e,u,l,h,f,1);break}}}function i(t){var e=t.prev,n=t,r=t.next;if(d(e,n,r)>=0)return!1;for(var i=e.x,o=n.x,s=r.x,a=e.y,u=n.y,l=r.y,h=i<o?i<s?i:s:o<s?o:s,c=a<u?a<l?a:l:u<l?u:l,f=i>o?i>s?i:s:o>s?o:s,v=a>u?a>l?a:l:u>l?u:l,p=r.next;p!==e;){if(p.x>=h&&p.x<=f&&p.y>=c&&p.y<=v&&g(i,a,o,u,s,l,p.x,p.y)&&d(p.prev,p,p.next)>=0)return!1;p=p.next}return!0}function o(t,e,n,r){var i=t.prev,o=t,s=t.next;if(d(i,o,s)>=0)return!1;for(var a=i.x,u=o.x,l=s.x,h=i.y,f=o.y,v=s.y,p=a<u?a<l?a:l:u<l?u:l,y=h<f?h<v?h:v:f<v?f:v,m=a>u?a>l?a:l:u>l?u:l,_=h>f?h>v?h:v:f>v?f:v,x=c(p,y,e,n,r),E=c(m,_,e,n,r),k=t.prevZ,w=t.nextZ;k&&k.z>=x&&w&&w.z<=E;){if(k.x>=p&&k.x<=m&&k.y>=y&&k.y<=_&&k!==i&&k!==s&&g(a,h,u,f,l,v,k.x,k.y)&&d(k.prev,k,k.next)>=0)return!1;if(k=k.prevZ,w.x>=p&&w.x<=m&&w.y>=y&&w.y<=_&&w!==i&&w!==s&&g(a,h,u,f,l,v,w.x,w.y)&&d(w.prev,w,w.next)>=0)return!1;w=w.nextZ}for(;k&&k.z>=x;){if(k.x>=p&&k.x<=m&&k.y>=y&&k.y<=_&&k!==i&&k!==s&&g(a,h,u,f,l,v,k.x,k.y)&&d(k.prev,k,k.next)>=0)return!1;k=k.prevZ}for(;w&&w.z<=E;){if(w.x>=p&&w.x<=m&&w.y>=y&&w.y<=_&&w!==i&&w!==s&&g(a,h,u,f,l,v,w.x,w.y)&&d(w.prev,w,w.next)>=0)return!1;w=w.nextZ}return!0}function s(t,e,r){var i=t;do{var o=i.prev,s=i.next.next;!p(o,s)&&y(o,i,i.next,s)&&x(o,s)&&x(s,o)&&(e.push(o.i/r|0),e.push(i.i/r|0),e.push(s.i/r|0),w(i),w(i.next),i=t=s),i=i.next}while(i!==t);return n(i)}function a(t,e,i,o,s,a){var u=t;do{for(var l=u.next.next;l!==u.prev;){if(u.i!==l.i&&v(u,l)){var h=E(u,l);return u=n(u,u.next),h=n(h,h.next),r(u,e,i,o,s,a,0),void r(h,e,i,o,s,a,0)}l=l.next}u=u.next}while(u!==t)}function u(t,e){return t.x-e.x}function l(t,e){var r=function(t,e){var n,r=e,i=t.x,o=t.y,s=-1/0;do{if(o<=r.y&&o>=r.next.y&&r.next.y!==r.y){var a=r.x+(o-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(a<=i&&a>s&&(s=a,n=r.x<r.next.x?r:r.next,a===i))return n}r=r.next}while(r!==e);if(!n)return null;var u,l=n,c=n.x,f=n.y,v=1/0;r=n;do{i>=r.x&&r.x>=c&&i!==r.x&&g(o<f?i:s,o,c,f,o<f?s:i,o,r.x,r.y)&&(u=Math.abs(o-r.y)/(i-r.x),x(r,t)&&(u<v||u===v&&(r.x>n.x||r.x===n.x&&h(n,r)))&&(n=r,v=u)),r=r.next}while(r!==l);return n}(t,e);if(!r)return e;var i=E(r,t);return n(i,i.next),n(r,r.next)}function h(t,e){return d(t.prev,t,e.prev)<0&&d(e.next,t,t.next)<0}function c(t,e,n,r,i){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-n)*i|0)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-r)*i|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function f(t){var e=t,n=t;do{(e.x<n.x||e.x===n.x&&e.y<n.y)&&(n=e),e=e.next}while(e!==t);return n}function g(t,e,n,r,i,o,s,a){return(i-s)*(e-a)>=(t-s)*(o-a)&&(t-s)*(r-a)>=(n-s)*(e-a)&&(n-s)*(o-a)>=(i-s)*(r-a)}function v(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&y(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1}(t,e)&&(x(t,e)&&x(e,t)&&function(t,e){var n=t,r=!1,i=(t.x+e.x)/2,o=(t.y+e.y)/2;do{n.y>o!=n.next.y>o&&n.next.y!==n.y&&i<(n.next.x-n.x)*(o-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next}while(n!==t);return r}(t,e)&&(d(t.prev,t,e.prev)||d(t,e.prev,e))||p(t,e)&&d(t.prev,t,t.next)>0&&d(e.prev,e,e.next)>0)}function d(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function p(t,e){return t.x===e.x&&t.y===e.y}function y(t,e,n,r){var i=_(d(t,e,n)),o=_(d(t,e,r)),s=_(d(n,r,t)),a=_(d(n,r,e));return i!==o&&s!==a||(!(0!==i||!m(t,n,e))||(!(0!==o||!m(t,r,e))||(!(0!==s||!m(n,t,r))||!(0!==a||!m(n,e,r)))))}function m(t,e,n){return e.x<=Math.max(t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math.max(t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function _(t){return t>0?1:t<0?-1:0}function x(t,e){return d(t.prev,t,t.next)<0?d(t,e,t.next)>=0&&d(t,t.prev,e)>=0:d(t,e,t.prev)<0||d(t,t.next,e)<0}function E(t,e){var n=new b(t.i,t.x,t.y),r=new b(e.i,e.x,e.y),i=t.next,o=e.prev;return t.next=e,e.prev=t,n.next=i,i.prev=n,r.next=n,n.prev=r,o.next=r,r.prev=o,r}function k(t,e,n,r){var i=new b(t,e,n);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function w(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function b(t,e,n){this.i=t,this.x=e,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function I(t,e,n,r){for(var i=0,o=e,s=n-r;o<n;o+=r)i+=(t[s]-t[o])*(t[o+1]+t[s+1]),s=o;return i}return sl=1,al.exports=t,al.exports.default=t,t.deviation=function(t,e,n,r){var i=e&&e.length,o=i?e[0]*n:t.length,s=Math.abs(I(t,0,o,n));if(i)for(var a=0,u=e.length;a<u;a++){var l=e[a]*n,h=a<u-1?e[a+1]*n:t.length;s-=Math.abs(I(t,l,h,n))}var c=0;for(a=0;a<r.length;a+=3){var f=r[a]*n,g=r[a+1]*n,v=r[a+2]*n;c+=Math.abs((t[f]-t[v])*(t[g+1]-t[f+1])-(t[f]-t[g])*(t[v+1]-t[f+1]))}return 0===s&&0===c?0:Math.abs((c-s)/s)},t.flatten=function(t){for(var e=t[0][0].length,n={vertices:[],holes:[],dimensions:e},r=0,i=0;i<t.length;i++){for(var o=0;o<t[i].length;o++)for(var s=0;s<e;s++)n.vertices.push(t[i][o][s]);i>0&&(r+=t[i-1].length,n.holes.push(r))}return n},al.exports}(),ll=mn(ul);function hl(t){var e=function(t){for(var e=t[0][0].length,n={vertices:[],holes:[],dimensions:e},r=0,i=0;i<t.length;i++){for(var o=0;o<t[i].length;o++)for(var s=0;s<e;s++)n.vertices.push(t[i][o][s]);i>0&&(r+=t[i-1].length,n.holes.push(r))}return n}(t),n=ll(e.vertices,e.holes,2),r=[],i=[];n.forEach((function(t,r){var o=n[r];i.push([e.vertices[2*o],e.vertices[2*o+1]])}));for(var o=0;o<i.length;o+=3){var s=i.slice(o,o+3);s.push(i[o]),r.push(S([s]))}return r}function cl(t,e,n){if("Polygon"!==t.geometry.type)throw new Error("The input feature must be a Polygon");void 0===n&&(n=1);var r=t.geometry.coordinates,i=[],o={};if(n){for(var s=[],a=0;a<r.length;a++)for(var u=0;u<r[a].length-1;u++)s.push(d(a,u));var l=new Fe;l.load(s)}for(var h=0;h<r.length;h++)for(var c=0;c<r[h].length-1;c++){if(n)l.search(d(h,c)).forEach((function(t){var e=t.ring,n=t.edge;v(h,c,e,n)}));else for(var f=0;f<r.length;f++)for(var g=0;g<r[f].length-1;g++)v(h,c,f,g)}return e||(i={type:"Feature",geometry:{type:"MultiPoint",coordinates:i}}),i;function v(t,n,s,a){var u,l,h=r[t][n],c=r[t][n+1],f=r[s][a],g=r[s][a+1],v=function(t,e,n,r){if(fl(t,n)||fl(t,r)||fl(e,n)||fl(r,n))return null;var i=t[0],o=t[1],s=e[0],a=e[1],u=n[0],l=n[1],h=r[0],c=r[1],f=(i-s)*(l-c)-(o-a)*(u-h);if(0===f)return null;var g=((i*a-o*s)*(u-h)-(i-s)*(u*c-l*h))/f,v=((i*a-o*s)*(l-c)-(o-a)*(u*c-l*h))/f;return[g,v]}(h,c,f,g);if(null!==v&&(u=c[0]!==h[0]?(v[0]-h[0])/(c[0]-h[0]):(v[1]-h[1])/(c[1]-h[1]),l=g[0]!==f[0]?(v[0]-f[0])/(g[0]-f[0]):(v[1]-f[1])/(g[1]-f[1]),!(u>=1||u<=0||l>=1||l<=0))){var d=v,p=!o[d];p&&(o[d]=!0),e?i.push(e(v,t,n,h,c,u,s,a,f,g,l,p)):i.push(v)}}function d(t,e){var n,i,o,s,a=r[t][e],u=r[t][e+1];return a[0]<u[0]?(n=a[0],i=u[0]):(n=u[0],i=a[0]),a[1]<u[1]?(o=a[1],s=u[1]):(o=u[1],s=a[1]),{minX:n,minY:o,maxX:i,maxY:s,ring:t,edge:e}}}function fl(t,e){if(!t||!e)return!1;if(t.length!==e.length)return!1;for(var n=0,r=t.length;n<r;n++)if(t[n]instanceof Array&&e[n]instanceof Array){if(!fl(t[n],e[n]))return!1}else if(t[n]!==e[n])return!1;return!0}function gl(t){if("Feature"!=t.type)throw new Error("The input must a geojson object of type Feature");if(void 0===t.geometry||null==t.geometry)throw new Error("The input must a geojson object with a non-empty geometry");if("Polygon"!=t.geometry.type)throw new Error("The input must be a geojson Polygon");for(var e=t.geometry.coordinates.length,n=[],r=0;r<e;r++){var i=t.geometry.coordinates[r];ml(i[0],i[i.length-1])||i.push(i[0]);for(var o=0;o<i.length-1;o++)n.push(i[o])}if(!function(t){for(var e={},n=1,r=0,i=t.length;r<i;++r){if(Object.prototype.hasOwnProperty.call(e,t[r])){n=0;break}e[t[r]]=1}return n}(n))throw new Error("The input polygon may not have duplicate vertices (except for the first and last vertex of each ring)");var s=n.length,a=cl(t,(function(t,e,n,r,i,o,s,a,u,l,h,c){return[t,e,n,r,i,o,s,a,u,l,h,c]})),u=a.length;if(0==u){var l=[];for(r=0;r<e;r++)l.push(S([t.geometry.coordinates[r]],{parent:-1,winding:yl(t.geometry.coordinates[r])}));var h=C(l);return q(),G(),h}var c=[],f=[];for(r=0;r<e;r++){c.push([]);for(o=0;o<t.geometry.coordinates[r].length-1;o++)c[r].push([new vl(t.geometry.coordinates[r][_l(o+1,t.geometry.coordinates[r].length-1)],1,[r,o],[r,_l(o+1,t.geometry.coordinates[r].length-1)],void 0)]),f.push(new dl(t.geometry.coordinates[r][o],[r,_l(o-1,t.geometry.coordinates[r].length-1)],[r,o],void 0,void 0,!1,!0))}for(r=0;r<u;r++)c[a[r][1]][a[r][2]].push(new vl(a[r][0],a[r][5],[a[r][1],a[r][2]],[a[r][6],a[r][7]],void 0)),a[r][11]&&f.push(new dl(a[r][0],[a[r][1],a[r][2]],[a[r][6],a[r][7]],void 0,void 0,!0,!0));var g=f.length;for(r=0;r<c.length;r++)for(o=0;o<c[r].length;o++)c[r][o].sort((function(t,e){return t.param<e.param?-1:1}));var v=[];for(r=0;r<g;r++)v.push({minX:f[r].coord[0],minY:f[r].coord[1],maxX:f[r].coord[0],maxY:f[r].coord[1],index:r});var d=new Fe;d.load(v);for(r=0;r<c.length;r++)for(o=0;o<c[r].length;o++)for(var p=0;p<c[r][o].length;p++){m=p==c[r][o].length-1?c[r][_l(o+1,t.geometry.coordinates[r].length-1)][0].coord:c[r][o][p+1].coord;var y=d.search({minX:m[0],minY:m[1],maxX:m[0],maxY:m[1]})[0];c[r][o][p].nxtIsectAlongEdgeIn=y.index}for(r=0;r<c.length;r++)for(o=0;o<c[r].length;o++)for(p=0;p<c[r][o].length;p++){var m=c[r][o][p].coord,_=(y=d.search({minX:m[0],minY:m[1],maxX:m[0],maxY:m[1]})[0]).index;_<s?f[_].nxtIsectAlongRingAndEdge2=c[r][o][p].nxtIsectAlongEdgeIn:ml(f[_].ringAndEdge1,c[r][o][p].ringAndEdgeIn)?f[_].nxtIsectAlongRingAndEdge1=c[r][o][p].nxtIsectAlongEdgeIn:f[_].nxtIsectAlongRingAndEdge2=c[r][o][p].nxtIsectAlongEdgeIn}var x=[];for(r=0,o=0;o<e;o++){var E=r;for(p=0;p<t.geometry.coordinates[o].length-1;p++)f[r].coord[0]<f[E].coord[0]&&(E=r),r++;var k=f[E].nxtIsectAlongRingAndEdge2;for(p=0;p<f.length;p++)if(f[p].nxtIsectAlongRingAndEdge1==E||f[p].nxtIsectAlongRingAndEdge2==E){var w=p;break}var b=pl([f[w].coord,f[E].coord,f[k].coord],!0)?1:-1;x.push({isect:E,parent:-1,winding:b})}x.sort((function(t,e){return f[t.isect].coord>f[e.isect].coord?-1:1}));for(l=[];x.length>0;){var I=x.pop(),N=I.isect,M=I.parent,L=I.winding,P=l.length,T=[f[N].coord],O=N;if(f[N].ringAndEdge1Walkable)var R=f[N].ringAndEdge1,A=f[N].nxtIsectAlongRingAndEdge1;else R=f[N].ringAndEdge2,A=f[N].nxtIsectAlongRingAndEdge2;for(;!ml(f[N].coord,f[A].coord);){T.push(f[A].coord);var D=void 0;for(r=0;r<x.length;r++)if(x[r].isect==A){D=r;break}if(null!=D&&x.splice(D,1),ml(R,f[A].ringAndEdge1)){if(R=f[A].ringAndEdge2,f[A].ringAndEdge2Walkable=!1,f[A].ringAndEdge1Walkable){var F={isect:A};pl([f[O].coord,f[A].coord,f[f[A].nxtIsectAlongRingAndEdge2].coord],1==L)?(F.parent=M,F.winding=-L):(F.parent=P,F.winding=L),x.push(F)}O=A,A=f[A].nxtIsectAlongRingAndEdge2}else{if(R=f[A].ringAndEdge1,f[A].ringAndEdge1Walkable=!1,f[A].ringAndEdge2Walkable){F={isect:A};pl([f[O].coord,f[A].coord,f[f[A].nxtIsectAlongRingAndEdge1].coord],1==L)?(F.parent=M,F.winding=-L):(F.parent=P,F.winding=L),x.push(F)}O=A,A=f[A].nxtIsectAlongRingAndEdge1}}T.push(f[A].coord),l.push(S([T],{index:P,parent:M,winding:L,netWinding:void 0}))}h=C(l);function q(){for(var t=[],e=0;e<h.features.length;e++)-1==h.features[e].properties.parent&&t.push(e);if(t.length>1)for(e=0;e<t.length;e++){for(var n=-1,r=0;r<h.features.length;r++)t[e]!=r&&jt(h.features[t[e]].geometry.coordinates[0][0],h.features[r],{ignoreBoundary:!0})&&Lt(h.features[r])<Infinity&&(n=r);h.features[t[e]].properties.parent=n}}function G(){for(var t=0;t<h.features.length;t++)if(-1==h.features[t].properties.parent){var e=h.features[t].properties.winding;h.features[t].properties.netWinding=e,B(t,e)}}function B(t,e){for(var n=0;n<h.features.length;n++)if(h.features[n].properties.parent==t){var r=e+h.features[n].properties.winding;h.features[n].properties.netWinding=r,B(n,r)}}return q(),G(),h}var vl=function(t,e,n,r,i){this.coord=t,this.param=e,this.ringAndEdgeIn=n,this.ringAndEdgeOut=r,this.nxtIsectAlongEdgeIn=i},dl=function(t,e,n,r,i,o,s){this.coord=t,this.ringAndEdge1=e,this.ringAndEdge2=n,this.nxtIsectAlongRingAndEdge1=r,this.nxtIsectAlongRingAndEdge2=i,this.ringAndEdge1Walkable=o,this.ringAndEdge2Walkable=s};function pl(t,e){if(void 0===e&&(e=!0),3!=t.length)throw new Error("This function requires an array of three points [x,y]");return(t[1][0]-t[0][0])*(t[2][1]-t[0][1])-(t[1][1]-t[0][1])*(t[2][0]-t[0][0])>=0==e}function yl(t){for(var e=0,n=0;n<t.length-1;n++)t[n][0]<t[e][0]&&(e=n);if(pl([t[_l(e-1,t.length-1)],t[e],t[_l(e+1,t.length-1)]],!0))var r=1;else r=-1;return r}function ml(t,e){if(!t||!e)return!1;if(t.length!=e.length)return!1;for(var n=0,r=t.length;n<r;n++)if(t[n]instanceof Array&&e[n]instanceof Array){if(!ml(t[n],e[n]))return!1}else if(t[n]!=e[n])return!1;return!0}function _l(t,e){return(t%e+e)%e}function xl(t){return function(){return t}}function El(t){return t[0]}function kl(t){return t[1]}function wl(){this._=null}function bl(t){t.U=t.C=t.L=t.R=t.P=t.N=null}function Il(t,e){var n=e,r=e.R,i=n.U;i?i.L===n?i.L=r:i.R=r:t._=r,r.U=i,n.U=r,n.R=r.L,n.R&&(n.R.U=n),r.L=n}function Nl(t,e){var n=e,r=e.L,i=n.U;i?i.L===n?i.L=r:i.R=r:t._=r,r.U=i,n.U=r,n.L=r.R,n.L&&(n.L.U=n),r.R=n}function Sl(t){for(;t.L;)t=t.L;return t}function Ml(t,e,n,r){var i=[null,null],o=Ql.push(i)-1;return i.left=t,i.right=e,n&&Pl(i,t,e,n),r&&Pl(i,e,t,r),Jl[t.index].halfedges.push(o),Jl[e.index].halfedges.push(o),i}function Ll(t,e,n){var r=[e,n];return r.left=t,r}function Pl(t,e,n,r){t[0]||t[1]?t.left===n?t[1]=r:t[0]=r:(t[0]=r,t.left=e,t.right=n)}function Cl(t,e,n,r,i){var o,s=t[0],a=t[1],u=s[0],l=s[1],h=0,c=1,f=a[0]-u,g=a[1]-l;if(o=e-u,f||!(o>0)){if(o/=f,f<0){if(o<h)return;o<c&&(c=o)}else if(f>0){if(o>c)return;o>h&&(h=o)}if(o=r-u,f||!(o<0)){if(o/=f,f<0){if(o>c)return;o>h&&(h=o)}else if(f>0){if(o<h)return;o<c&&(c=o)}if(o=n-l,g||!(o>0)){if(o/=g,g<0){if(o<h)return;o<c&&(c=o)}else if(g>0){if(o>c)return;o>h&&(h=o)}if(o=i-l,g||!(o<0)){if(o/=g,g<0){if(o>c)return;o>h&&(h=o)}else if(g>0){if(o<h)return;o<c&&(c=o)}return!(h>0||c<1)||(h>0&&(t[0]=[u+h*f,l+h*g]),c<1&&(t[1]=[u+c*f,l+c*g]),!0)}}}}}function Tl(t,e,n,r,i){var o=t[1];if(o)return!0;var s,a,u=t[0],l=t.left,h=t.right,c=l[0],f=l[1],g=h[0],v=h[1],d=(c+g)/2,p=(f+v)/2;if(v===f){if(d<e||d>=r)return;if(c>g){if(u){if(u[1]>=i)return}else u=[d,n];o=[d,i]}else{if(u){if(u[1]<n)return}else u=[d,i];o=[d,n]}}else if(a=p-(s=(c-g)/(v-f))*d,s<-1||s>1)if(c>g){if(u){if(u[1]>=i)return}else u=[(n-a)/s,n];o=[(i-a)/s,i]}else{if(u){if(u[1]<n)return}else u=[(i-a)/s,i];o=[(n-a)/s,n]}else if(f<v){if(u){if(u[0]>=r)return}else u=[e,s*e+a];o=[r,s*r+a]}else{if(u){if(u[0]<e)return}else u=[r,s*r+a];o=[e,s*e+a]}return t[0]=u,t[1]=o,!0}function Ol(t,e){var n=t.site,r=e.left,i=e.right;return n===i&&(i=r,r=n),i?Math.atan2(i[1]-r[1],i[0]-r[0]):(n===r?(r=e[1],i=e[0]):(r=e[0],i=e[1]),Math.atan2(r[0]-i[0],i[1]-r[1]))}function Rl(t,e){return e[+(e.left!==t.site)]}function Al(t,e){return e[+(e.left===t.site)]}wl.prototype={constructor:wl,insert:function(t,e){var n,r,i;if(t){if(e.P=t,e.N=t.N,t.N&&(t.N.P=e),t.N=e,t.R){for(t=t.R;t.L;)t=t.L;t.L=e}else t.R=e;n=t}else this._?(t=Sl(this._),e.P=null,e.N=t,t.P=t.L=e,n=t):(e.P=e.N=null,this._=e,n=null);for(e.L=e.R=null,e.U=n,e.C=!0,t=e;n&&n.C;)n===(r=n.U).L?(i=r.R)&&i.C?(n.C=i.C=!1,r.C=!0,t=r):(t===n.R&&(Il(this,n),n=(t=n).U),n.C=!1,r.C=!0,Nl(this,r)):(i=r.L)&&i.C?(n.C=i.C=!1,r.C=!0,t=r):(t===n.L&&(Nl(this,n),n=(t=n).U),n.C=!1,r.C=!0,Il(this,r)),n=t.U;this._.C=!1},remove:function(t){t.N&&(t.N.P=t.P),t.P&&(t.P.N=t.N),t.N=t.P=null;var e,n,r,i=t.U,o=t.L,s=t.R;if(n=o?s?Sl(s):o:s,i?i.L===t?i.L=n:i.R=n:this._=n,o&&s?(r=n.C,n.C=t.C,n.L=o,o.U=n,n!==s?(i=n.U,n.U=t.U,t=n.R,i.L=t,n.R=s,s.U=n):(n.U=i,i=n,t=n.R)):(r=t.C,t=n),t&&(t.U=i),!r)if(t&&t.C)t.C=!1;else{do{if(t===this._)break;if(t===i.L){if((e=i.R).C&&(e.C=!1,i.C=!0,Il(this,i),e=i.R),e.L&&e.L.C||e.R&&e.R.C){e.R&&e.R.C||(e.L.C=!1,e.C=!0,Nl(this,e),e=i.R),e.C=i.C,i.C=e.R.C=!1,Il(this,i),t=this._;break}}else if((e=i.L).C&&(e.C=!1,i.C=!0,Nl(this,i),e=i.L),e.L&&e.L.C||e.R&&e.R.C){e.L&&e.L.C||(e.R.C=!1,e.C=!0,Il(this,e),e=i.L),e.C=i.C,i.C=e.L.C=!1,Nl(this,i),t=this._;break}e.C=!0,t=i,i=i.U}while(!t.C);t&&(t.C=!1)}}};var Dl,Fl=[];function ql(){bl(this),this.x=this.y=this.arc=this.site=this.cy=null}function Gl(t){var e=t.P,n=t.N;if(e&&n){var r=e.site,i=t.site,o=n.site;if(r!==o){var s=i[0],a=i[1],u=r[0]-s,l=r[1]-a,h=o[0]-s,c=o[1]-a,f=2*(u*c-l*h);if(!(f>=-1e-12)){var g=u*u+l*l,v=h*h+c*c,d=(c*g-l*v)/f,p=(u*v-h*g)/f,y=Fl.pop()||new ql;y.arc=t,y.site=i,y.x=d+s,y.y=(y.cy=p+a)+Math.sqrt(d*d+p*p),t.circle=y;for(var m=null,_=Kl._;_;)if(y.y<_.y||y.y===_.y&&y.x<=_.x){if(!_.L){m=_.P;break}_=_.L}else{if(!_.R){m=_;break}_=_.R}Kl.insert(m,y),m||(Dl=y)}}}}function Bl(t){var e=t.circle;e&&(e.P||(Dl=e.N),Kl.remove(e),Fl.push(e),bl(e),t.circle=null)}var Yl=[];function zl(){bl(this),this.edge=this.site=this.circle=null}function jl(t){var e=Yl.pop()||new zl;return e.site=t,e}function Xl(t){Bl(t),Wl.remove(t),Yl.push(t),bl(t)}function Ul(t){var e=t.circle,n=e.x,r=e.cy,i=[n,r],o=t.P,s=t.N,a=[t];Xl(t);for(var u=o;u.circle&&Math.abs(n-u.circle.x)<$l&&Math.abs(r-u.circle.cy)<$l;)o=u.P,a.unshift(u),Xl(u),u=o;a.unshift(u),Bl(u);for(var l=s;l.circle&&Math.abs(n-l.circle.x)<$l&&Math.abs(r-l.circle.cy)<$l;)s=l.N,a.push(l),Xl(l),l=s;a.push(l),Bl(l);var h,c=a.length;for(h=1;h<c;++h)l=a[h],u=a[h-1],Pl(l.edge,u.site,l.site,i);u=a[0],(l=a[c-1]).edge=Ml(u.site,l.site,null,i),Gl(u),Gl(l)}function Vl(t){for(var e,n,r,i,o=t[0],s=t[1],a=Wl._;a;)if((r=Zl(a,s)-o)>$l)a=a.L;else{if(!((i=o-Hl(a,s))>$l)){r>-1e-6?(e=a.P,n=a):i>-1e-6?(e=a,n=a.N):e=n=a;break}if(!a.R){e=a;break}a=a.R}!function(t){Jl[t.index]={site:t,halfedges:[]}}(t);var u=jl(t);if(Wl.insert(e,u),e||n){if(e===n)return Bl(e),n=jl(e.site),Wl.insert(u,n),u.edge=n.edge=Ml(e.site,u.site),Gl(e),void Gl(n);if(n){Bl(e),Bl(n);var l=e.site,h=l[0],c=l[1],f=t[0]-h,g=t[1]-c,v=n.site,d=v[0]-h,p=v[1]-c,y=2*(f*p-g*d),m=f*f+g*g,_=d*d+p*p,x=[(p*m-g*_)/y+h,(f*_-d*m)/y+c];Pl(n.edge,l,v,x),u.edge=Ml(l,t,null,x),n.edge=Ml(t,v,null,x),Gl(e),Gl(n)}else u.edge=Ml(e.site,u.site)}}function Zl(t,e){var n=t.site,r=n[0],i=n[1],o=i-e;if(!o)return r;var s=t.P;if(!s)return-1/0;var a=(n=s.site)[0],u=n[1],l=u-e;if(!l)return a;var h=a-r,c=1/o-1/l,f=h/l;return c?(-f+Math.sqrt(f*f-2*c*(h*h/(-2*l)-u+l/2+i-o/2)))/c+r:(r+a)/2}function Hl(t,e){var n=t.N;if(n)return Zl(n,e);var r=t.site;return r[1]===e?r[0]:1/0}var Wl,Jl,Kl,Ql,$l=1e-6;function th(t,e){return e[1]-t[1]||e[0]-t[0]}function eh(t,e){var n,r,i,o=t.sort(th).pop();for(Ql=[],Jl=new Array(t.length),Wl=new wl,Kl=new wl;;)if(i=Dl,o&&(!i||o[1]<i.y||o[1]===i.y&&o[0]<i.x))o[0]===n&&o[1]===r||(Vl(o),n=o[0],r=o[1]),o=t.pop();else{if(!i)break;Ul(i.arc)}if(function(){for(var t,e,n,r,i=0,o=Jl.length;i<o;++i)if((t=Jl[i])&&(r=(e=t.halfedges).length)){var s=new Array(r),a=new Array(r);for(n=0;n<r;++n)s[n]=n,a[n]=Ol(t,Ql[e[n]]);for(s.sort((function(t,e){return a[e]-a[t]})),n=0;n<r;++n)a[n]=e[s[n]];for(n=0;n<r;++n)e[n]=a[n]}}(),e){var s=+e[0][0],a=+e[0][1],u=+e[1][0],l=+e[1][1];!function(t,e,n,r){for(var i,o=Ql.length;o--;)Tl(i=Ql[o],t,e,n,r)&&Cl(i,t,e,n,r)&&(Math.abs(i[0][0]-i[1][0])>$l||Math.abs(i[0][1]-i[1][1])>$l)||delete Ql[o]}(s,a,u,l),function(t,e,n,r){var i,o,s,a,u,l,h,c,f,g,v,d,p=Jl.length,y=!0;for(i=0;i<p;++i)if(o=Jl[i]){for(s=o.site,a=(u=o.halfedges).length;a--;)Ql[u[a]]||u.splice(a,1);for(a=0,l=u.length;a<l;)v=(g=Al(o,Ql[u[a]]))[0],d=g[1],c=(h=Rl(o,Ql[u[++a%l]]))[0],f=h[1],(Math.abs(v-c)>$l||Math.abs(d-f)>$l)&&(u.splice(a,0,Ql.push(Ll(s,g,Math.abs(v-t)<$l&&r-d>$l?[t,Math.abs(c-t)<$l?f:r]:Math.abs(d-r)<$l&&n-v>$l?[Math.abs(f-r)<$l?c:n,r]:Math.abs(v-n)<$l&&d-e>$l?[n,Math.abs(c-n)<$l?f:e]:Math.abs(d-e)<$l&&v-t>$l?[Math.abs(f-e)<$l?c:t,e]:null))-1),++l);l&&(y=!1)}if(y){var m,_,x,E=1/0;for(i=0,y=null;i<p;++i)(o=Jl[i])&&(x=(m=(s=o.site)[0]-t)*m+(_=s[1]-e)*_)<E&&(E=x,y=o);if(y){var k=[t,e],w=[t,r],b=[n,r],I=[n,e];y.halfedges.push(Ql.push(Ll(s=y.site,k,w))-1,Ql.push(Ll(s,w,b))-1,Ql.push(Ll(s,b,I))-1,Ql.push(Ll(s,I,k))-1)}}for(i=0;i<p;++i)(o=Jl[i])&&(o.halfedges.length||delete Jl[i])}(s,a,u,l)}this.edges=Ql,this.cells=Jl,Wl=Kl=Ql=Jl=null}eh.prototype={constructor:eh,polygons:function(){var t=this.edges;return this.cells.map((function(e){var n=e.halfedges.map((function(n){return Rl(e,t[n])}));return n.data=e.site.data,n}))},triangles:function(){var t=[],e=this.edges;return this.cells.forEach((function(n,r){if(o=(i=n.halfedges).length)for(var i,o,s,a,u,l,h=n.site,c=-1,f=e[i[o-1]],g=f.left===h?f.right:f.left;++c<o;)s=g,g=(f=e[i[c]]).left===h?f.right:f.left,s&&g&&r<s.index&&r<g.index&&(u=s,l=g,((a=h)[0]-l[0])*(u[1]-a[1])-(a[0]-u[0])*(l[1]-a[1])<0)&&t.push([h.data,s.data,g.data])})),t},links:function(){return this.edges.filter((function(t){return t.right})).map((function(t){return{source:t.left.data,target:t.right.data}}))},find:function(t,e,n){for(var r,i,o=this,s=o._found||0,a=o.cells.length;!(i=o.cells[s]);)if(++s>=a)return null;var u=t-i.site[0],l=e-i.site[1],h=u*u+l*l;do{i=o.cells[r=s],s=null,i.halfedges.forEach((function(n){var r=o.edges[n],a=r.left;if(a!==i.site&&a||(a=r.right)){var u=t-a[0],l=e-a[1],c=u*u+l*l;c<h&&(h=c,s=a.index)}}))}while(null!==s);return o._found=r,null==n||h<=n*n?i.site:null}},t.along=function(t,e){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=rt(t).coordinates,i=0,o=0;o<r.length&&!(e>=i&&o===r.length-1);o++){if(i>=e){var s=e-i;if(s){var a=st(r[o],r[o-1])-180;return at(r[o],s,a,n)}return I(r[o])}i+=ut(r[o],r[o+1],n)}return I(r[r.length-1])},t.angle=function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(!Z(r))throw new Error("options is invalid");if(!t)throw new Error("startPoint is required");if(!e)throw new Error("midPoint is required");if(!n)throw new Error("endPoint is required");var i=t,o=e,s=n,a=B(!0!==r.mercator?st(o,i):lt(o,i)),u=B(!0!==r.mercator?st(o,s):lt(o,s));u<a&&(u+=360);var l=u-a;return!0===r.explementary?360-l:l},t.applyFilter=Xi,t.area=Lt,t.areaFactors=k,t.azimuthToBearing=Y,t.bbox=Rt,t.bboxClip=function(t,e){var n=rt(t),r=n.type,i="Feature"===t.type?t.properties:{},o=n.coordinates;switch(r){case"LineString":case"MultiLineString":var s=[];return"LineString"===r&&(o=[o]),o.forEach((function(t){!function(t,e,n){var r,i,o,s,a,u=t.length,l=Ft(t[0],e),h=[];for(n||(n=[]),r=1;r<u;r++){for(s=t[r-1],i=o=Ft(a=t[r],e);;){if(!(l|i)){h.push(s),i!==o?(h.push(a),r<u-1&&(n.push(h),h=[])):r===u-1&&h.push(a);break}if(l&i)break;l?l=Ft(s=Dt(s,a,l,e),e):i=Ft(a=Dt(s,a,i,e),e)}l=o}h.length&&n.push(h)}(t,e,s)})),1===s.length?L(s[0],i):T(s,i);case"Polygon":return S(qt(o,e),i);case"MultiPolygon":return R(o.map((function(t){return qt(t,e)})),i);default:throw new Error("geometry "+r+" not supported")}},t.bboxPolygon=Gt,t.bearing=st,t.bearingToAzimuth=B,t.bezierSpline=function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.resolution||1e4,r=e.sharpness||.85,i=[],o=rt(t).coordinates.map((function(t){return{x:t[0],y:t[1]}})),s=new Bt({duration:n,points:o,sharpness:r}),a=function(t){var e=s.pos(t);Math.floor(t/100)%2==0&&i.push([e.x,e.y])},u=0;u<s.duration;u+=10)a(u);return a(s.duration),L(i,e.properties)},t.booleanClockwise=Yt,t.booleanConcave=function(t){var e=rt(t).coordinates;if(e[0].length<=4)return!1;for(var n=!1,r=e[0].length-1,i=0;i<r;i++){var o=e[0][(i+2)%r][0]-e[0][(i+1)%r][0],s=e[0][(i+2)%r][1]-e[0][(i+1)%r][1],a=e[0][i][0]-e[0][(i+1)%r][0],u=o*(e[0][i][1]-e[0][(i+1)%r][1])-s*a;if(0===i)n=u>0;else if(n!==u>0)return!0}return!1},t.booleanContains=function(t,e){var n=rt(t),r=rt(e),i=n.type,o=r.type,s=n.coordinates,u=r.coordinates;switch(i){case"Point":if("Point"===o)return Ht(s,u);throw new Error("feature2 "+o+" geometry not supported");case"MultiPoint":switch(o){case"Point":return function(t,e){var n,r=!1;for(n=0;n<t.coordinates.length;n++)if(Ht(t.coordinates[n],e.coordinates)){r=!0;break}return r}(n,r);case"MultiPoint":return function(t,e){var n,r=a(e.coordinates);try{for(r.s();!(n=r.n()).done;){var i,o=n.value,s=!1,u=a(t.coordinates);try{for(u.s();!(i=u.n()).done;){if(Ht(o,i.value)){s=!0;break}}}catch(t){u.e(t)}finally{u.f()}if(!s)return!1}}catch(t){r.e(t)}finally{r.f()}return!0}(n,r);default:throw new Error("feature2 "+o+" geometry not supported")}case"LineString":switch(o){case"Point":return Xt(r,n,{ignoreEndVertices:!0});case"LineString":return function(t,e){var n,r=!1,i=a(e.coordinates);try{for(i.s();!(n=i.n()).done;){var o=n.value;if(Xt({type:"Point",coordinates:o},t,{ignoreEndVertices:!0})&&(r=!0),!Xt({type:"Point",coordinates:o},t,{ignoreEndVertices:!1}))return!1}}catch(t){i.e(t)}finally{i.f()}return r}(n,r);case"MultiPoint":return function(t,e){var n,r=!1,i=a(e.coordinates);try{for(i.s();!(n=i.n()).done;){var o=n.value;if(Xt(o,t,{ignoreEndVertices:!0})&&(r=!0),!Xt(o,t))return!1}}catch(t){i.e(t)}finally{i.f()}if(r)return!0;return!1}(n,r);default:throw new Error("feature2 "+o+" geometry not supported")}case"Polygon":switch(o){case"Point":return jt(r,n,{ignoreBoundary:!0});case"LineString":return function(t,e){var n=!1,r=0,i=Rt(t),o=Rt(e);if(!Zt(i,o))return!1;for(;r<e.coordinates.length-1;r++){if(jt({type:"Point",coordinates:Wt(e.coordinates[r],e.coordinates[r+1])},t,{ignoreBoundary:!0})){n=!0;break}}return n}(n,r);case"Polygon":return Vt(n,r);case"MultiPoint":return function(t,e){var n,r=a(e.coordinates);try{for(r.s();!(n=r.n()).done;){if(!jt(n.value,t,{ignoreBoundary:!0}))return!1}}catch(t){r.e(t)}finally{r.f()}return!0}(n,r);default:throw new Error("feature2 "+o+" geometry not supported")}case"MultiPolygon":if("Polygon"===o)return function(t,e){return t.coordinates.some((function(t){return Vt({type:"Polygon",coordinates:t},e)}))}(n,r);throw new Error("feature2 "+o+" geometry not supported");default:throw new Error("feature1 "+i+" geometry not supported")}},t.booleanCrosses=ce,t.booleanDisjoint=pe,t.booleanEqual=function(t,e){var n=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).precision;if("number"!=typeof(n=null==n||isNaN(n)?6:n)||!(n>=0))throw new Error("precision must be a positive number");return rt(t).type===rt(e).type&&Ne(Le(t),Le(e),{precision:n})},t.booleanIntersects=Te,t.booleanOverlap=function(t,e){var n=rt(t),r=rt(e),i=n.type,o=r.type;if("MultiPoint"===i&&"MultiPoint"!==o||("LineString"===i||"MultiLineString"===i)&&"LineString"!==o&&"MultiLineString"!==o||("Polygon"===i||"MultiPolygon"===i)&&"Polygon"!==o&&"MultiPolygon"!==o)throw new Error("features must be of the same type");if("Point"===i)throw new Error("Point geometry not supported");if(Ne(t,e,{precision:6}))return!1;var s=0;switch(i){case"MultiPoint":for(var a=0;a<n.coordinates.length;a++)for(var u=0;u<r.coordinates.length;u++){var l=n.coordinates[a],h=r.coordinates[u];if(l[0]===h[0]&&l[1]===h[1])return!0}return!1;case"LineString":case"MultiLineString":kt(t,(function(t){kt(e,(function(e){kn(t,e).features.length&&s++}))}));break;case"Polygon":case"MultiPolygon":kt(t,(function(t){kt(e,(function(e){ue(t,e).features.length&&s++}))}))}return s>0},t.booleanParallel=function(t,e){if(!t)throw new Error("line1 is required");if(!e)throw new Error("line2 is required");if("LineString"!==In(t,"line1"))throw new Error("line1 must be a LineString");if("LineString"!==In(e,"line2"))throw new Error("line2 must be a LineString");for(var n=Qe(Le(t)).features,r=Qe(Le(e)).features,i=0;i<n.length;i++){var o=n[i].geometry.coordinates;if(!r[i])break;if(!bn(o,r[i].geometry.coordinates))return!1}return!0},t.booleanPointInPolygon=jt,t.booleanPointOnLine=Xt,t.booleanTouches=function(t,e){var n=rt(t),r=rt(e),i=n.type,o=r.type;switch(i){case"Point":switch(o){case"LineString":return Nn(n,r);case"MultiLineString":for(var s=!1,a=0;a<r.coordinates.length;a++)Nn(n,{coordinates:r.coordinates[a]})&&(s=!0);return s;case"Polygon":for(var u=0;u<r.coordinates.length;u++)if(Xt(n,{type:"LineString",coordinates:r.coordinates[u]}))return!0;return!1;case"MultiPolygon":for(u=0;u<r.coordinates.length;u++)for(a=0;a<r.coordinates[u].length;a++)if(Xt(n,{type:"LineString",coordinates:r.coordinates[u][a]}))return!0;return!1;default:throw new Error("feature2 "+o+" geometry not supported")}case"MultiPoint":switch(o){case"LineString":for(s=!1,u=0;u<n.coordinates.length;u++)if(s||Nn({coordinates:n.coordinates[u]},r)&&(s=!0),Xt({type:"Point",coordinates:n.coordinates[u]},r,{ignoreEndVertices:!0}))return!1;return s;case"MultiLineString":for(s=!1,u=0;u<n.coordinates.length;u++)for(a=0;a<r.coordinates.length;a++)if(s||Nn({coordinates:n.coordinates[u]},{coordinates:r.coordinates[a]})&&(s=!0),Xt({type:"Point",coordinates:n.coordinates[u]},{type:"LineString",coordinates:r.coordinates[a]},{ignoreEndVertices:!0}))return!1;return s;case"Polygon":for(s=!1,u=0;u<n.coordinates.length;u++)if(s||Xt({type:"Point",coordinates:n.coordinates[u]},{type:"LineString",coordinates:r.coordinates[0]})&&(s=!0),jt({type:"Point",coordinates:n.coordinates[u]},r,{ignoreBoundary:!0}))return!1;return s;case"MultiPolygon":for(s=!1,u=0;u<n.coordinates.length;u++)for(a=0;a<r.coordinates.length;a++)if(s||Xt({type:"Point",coordinates:n.coordinates[u]},{type:"LineString",coordinates:r.coordinates[a][0]})&&(s=!0),jt({type:"Point",coordinates:n.coordinates[u]},{type:"Polygon",coordinates:r.coordinates[a]},{ignoreBoundary:!0}))return!1;return s;default:throw new Error("feature2 "+o+" geometry not supported")}case"LineString":switch(o){case"Point":return Nn(r,n);case"MultiPoint":for(s=!1,u=0;u<r.coordinates.length;u++)if(s||Nn({coordinates:r.coordinates[u]},n)&&(s=!0),Xt({type:"Point",coordinates:r.coordinates[u]},n,{ignoreEndVertices:!0}))return!1;return s;case"LineString":var l=!1;if(Nn({coordinates:n.coordinates[0]},r)&&(l=!0),Nn({coordinates:n.coordinates[n.coordinates.length-1]},r)&&(l=!0),!1===l)return!1;for(u=0;u<n.coordinates.length;u++)if(Xt({type:"Point",coordinates:n.coordinates[u]},r,{ignoreEndVertices:!0}))return!1;return l;case"MultiLineString":for(l=!1,u=0;u<r.coordinates.length;u++){Nn({coordinates:n.coordinates[0]},{coordinates:r.coordinates[u]})&&(l=!0),Nn({coordinates:n.coordinates[n.coordinates.length-1]},{coordinates:r.coordinates[u]})&&(l=!0);for(a=0;a<n.coordinates[u].length;a++)if(Xt({type:"Point",coordinates:n.coordinates[a]},{type:"LineString",coordinates:r.coordinates[u]},{ignoreEndVertices:!0}))return!1}return l;case"Polygon":for(s=!1,u=0;u<n.coordinates.length;u++)if(s||Xt({type:"Point",coordinates:n.coordinates[u]},{type:"LineString",coordinates:r.coordinates[0]})&&(s=!0),jt({type:"Point",coordinates:n.coordinates[u]},r,{ignoreBoundary:!0}))return!1;return s;case"MultiPolygon":for(s=!1,u=0;u<n.coordinates.length;u++){for(a=0;a<r.coordinates.length;a++)s||Xt({type:"Point",coordinates:n.coordinates[u]},{type:"LineString",coordinates:r.coordinates[a][0]})&&(s=!0);if(jt({type:"Point",coordinates:n.coordinates[u]},r,{ignoreBoundary:!0}))return!1}return s;default:throw new Error("feature2 "+o+" geometry not supported")}case"MultiLineString":switch(o){case"Point":for(u=0;u<n.coordinates.length;u++)if(Nn(r,{coordinates:n.coordinates[u]}))return!0;return!1;case"MultiPoint":for(s=!1,u=0;u<n.coordinates.length;u++)for(a=0;a<r.coordinates.length;a++)if(s||Nn({coordinates:r.coordinates[a]},{coordinates:n.coordinates[a]})&&(s=!0),Xt({type:"Point",coordinates:r.coordinates[a]},{type:"LineString",coordinates:n.coordinates[a]},{ignoreEndVertices:!0}))return!1;return s;case"LineString":for(l=!1,u=0;u<n.coordinates.length;u++){Nn({coordinates:n.coordinates[u][0]},r)&&(l=!0),Nn({coordinates:n.coordinates[u][n.coordinates[u].length-1]},r)&&(l=!0);for(a=0;a<r.coordinates.length;a++)if(Xt({type:"Point",coordinates:r.coordinates[a]},{type:"LineString",coordinates:n.coordinates[u]},{ignoreEndVertices:!0}))return!1}return l;case"MultiLineString":for(l=!1,u=0;u<n.coordinates.length;u++)for(a=0;a<r.coordinates.length;a++){Nn({coordinates:n.coordinates[u][0]},{coordinates:r.coordinates[a]})&&(l=!0),Nn({coordinates:n.coordinates[u][n.coordinates[u].length-1]},{coordinates:r.coordinates[a]})&&(l=!0);for(var h=0;h<n.coordinates[u].length;h++)if(Xt({type:"Point",coordinates:n.coordinates[u][h]},{type:"LineString",coordinates:r.coordinates[a]},{ignoreEndVertices:!0}))return!1}return l;case"Polygon":for(s=!1,u=0;u<n.coordinates.length;u++)for(a=0;a<n.coordinates.length;a++)if(s||Xt({type:"Point",coordinates:n.coordinates[u][a]},{type:"LineString",coordinates:r.coordinates[0]})&&(s=!0),jt({type:"Point",coordinates:n.coordinates[u][a]},r,{ignoreBoundary:!0}))return!1;return s;case"MultiPolygon":for(s=!1,u=0;u<r.coordinates[0].length;u++)for(a=0;a<n.coordinates.length;a++)for(h=0;h<n.coordinates[a].length;h++)if(s||Xt({type:"Point",coordinates:n.coordinates[a][h]},{type:"LineString",coordinates:r.coordinates[0][u]})&&(s=!0),jt({type:"Point",coordinates:n.coordinates[a][h]},{type:"Polygon",coordinates:[r.coordinates[0][u]]},{ignoreBoundary:!0}))return!1;return s;default:throw new Error("feature2 "+o+" geometry not supported")}case"Polygon":switch(o){case"Point":for(u=0;u<n.coordinates.length;u++)if(Xt(r,{type:"LineString",coordinates:n.coordinates[u]}))return!0;return!1;case"MultiPoint":for(s=!1,u=0;u<r.coordinates.length;u++)if(s||Xt({type:"Point",coordinates:r.coordinates[u]},{type:"LineString",coordinates:n.coordinates[0]})&&(s=!0),jt({type:"Point",coordinates:r.coordinates[u]},n,{ignoreBoundary:!0}))return!1;return s;case"LineString":for(s=!1,u=0;u<r.coordinates.length;u++)if(s||Xt({type:"Point",coordinates:r.coordinates[u]},{type:"LineString",coordinates:n.coordinates[0]})&&(s=!0),jt({type:"Point",coordinates:r.coordinates[u]},n,{ignoreBoundary:!0}))return!1;return s;case"MultiLineString":for(s=!1,u=0;u<r.coordinates.length;u++)for(a=0;a<r.coordinates[u].length;a++)if(s||Xt({type:"Point",coordinates:r.coordinates[u][a]},{type:"LineString",coordinates:n.coordinates[0]})&&(s=!0),jt({type:"Point",coordinates:r.coordinates[u][a]},n,{ignoreBoundary:!0}))return!1;return s;case"Polygon":for(s=!1,u=0;u<n.coordinates[0].length;u++)if(s||Xt({type:"Point",coordinates:n.coordinates[0][u]},{type:"LineString",coordinates:r.coordinates[0]})&&(s=!0),jt({type:"Point",coordinates:n.coordinates[0][u]},r,{ignoreBoundary:!0}))return!1;return s;case"MultiPolygon":for(s=!1,u=0;u<r.coordinates[0].length;u++)for(a=0;a<n.coordinates[0].length;a++)if(s||Xt({type:"Point",coordinates:n.coordinates[0][a]},{type:"LineString",coordinates:r.coordinates[0][u]})&&(s=!0),jt({type:"Point",coordinates:n.coordinates[0][a]},{type:"Polygon",coordinates:r.coordinates[0][u]},{ignoreBoundary:!0}))return!1;return s;default:throw new Error("feature2 "+o+" geometry not supported")}case"MultiPolygon":switch(o){case"Point":for(u=0;u<n.coordinates[0].length;u++)if(Xt(r,{type:"LineString",coordinates:n.coordinates[0][u]}))return!0;return!1;case"MultiPoint":for(s=!1,u=0;u<n.coordinates[0].length;u++)for(a=0;a<r.coordinates.length;a++)if(s||Xt({type:"Point",coordinates:r.coordinates[a]},{type:"LineString",coordinates:n.coordinates[0][u]})&&(s=!0),jt({type:"Point",coordinates:r.coordinates[a]},{type:"Polygon",coordinates:n.coordinates[0][u]},{ignoreBoundary:!0}))return!1;return s;case"LineString":for(s=!1,u=0;u<n.coordinates[0].length;u++)for(a=0;a<r.coordinates.length;a++)if(s||Xt({type:"Point",coordinates:r.coordinates[a]},{type:"LineString",coordinates:n.coordinates[0][u]})&&(s=!0),jt({type:"Point",coordinates:r.coordinates[a]},{type:"Polygon",coordinates:n.coordinates[0][u]},{ignoreBoundary:!0}))return!1;return s;case"MultiLineString":for(s=!1,u=0;u<n.coordinates.length;u++)for(a=0;a<r.coordinates.length;a++)for(h=0;h<r.coordinates[a].length;h++)if(s||Xt({type:"Point",coordinates:r.coordinates[a][h]},{type:"LineString",coordinates:n.coordinates[u][0]})&&(s=!0),jt({type:"Point",coordinates:r.coordinates[a][h]},{type:"Polygon",coordinates:[n.coordinates[u][0]]},{ignoreBoundary:!0}))return!1;return s;case"Polygon":for(s=!1,u=0;u<n.coordinates[0].length;u++)for(a=0;a<n.coordinates[0][u].length;a++)if(s||Xt({type:"Point",coordinates:n.coordinates[0][u][a]},{type:"LineString",coordinates:r.coordinates[0]})&&(s=!0),jt({type:"Point",coordinates:n.coordinates[0][u][a]},r,{ignoreBoundary:!0}))return!1;return s;case"MultiPolygon":for(s=!1,u=0;u<n.coordinates[0].length;u++)for(a=0;a<r.coordinates[0].length;a++)for(h=0;h<n.coordinates[0].length;h++)if(s||Xt({type:"Point",coordinates:n.coordinates[0][u][h]},{type:"LineString",coordinates:r.coordinates[0][a]})&&(s=!0),jt({type:"Point",coordinates:n.coordinates[0][u][h]},{type:"Polygon",coordinates:r.coordinates[0][a]},{ignoreBoundary:!0}))return!1;return s;default:throw new Error("feature2 "+o+" geometry not supported")}default:throw new Error("feature1 "+i+" geometry not supported")}},t.booleanValid=function(t){if(!t.type)return!1;var e=rt(t),n=e.type,r=e.coordinates;switch(n){case"Point":return r.length>1;case"MultiPoint":for(var i=0;i<r.length;i++)if(r[i].length<2)return!1;return!0;case"LineString":if(r.length<2)return!1;for(i=0;i<r.length;i++)if(r[i].length<2)return!1;return!0;case"MultiLineString":if(r.length<2)return!1;for(i=0;i<r.length;i++)if(r[i].length<2)return!1;return!0;case"Polygon":for(i=0;i<e.coordinates.length;i++){if(r[i].length<4)return!1;if(!Mn(r[i]))return!1;if(Ln(r[i]))return!1;if(i>0&&ue(S([r[0]]),S([r[i]])).features.length>1)return!1}return!0;case"MultiPolygon":for(i=0;i<e.coordinates.length;i++)for(var o=e.coordinates[i],s=0;s<o.length;s++){if(o[s].length<4)return!1;if(!Mn(o[s]))return!1;if(Ln(o[s]))return!1;if(0===s&&!Pn(o,e.coordinates,i))return!1;if(s>0&&ue(S([o[0]]),S([o[s]])).features.length>1)return!1}return!0;default:return!1}},t.booleanWithin=Cn,t.buffer=function(t,e,n){var r=(n=n||{}).units||"kilometers",i=n.steps||8;if(!t)throw new Error("geojson is required");if("object"!==m(n))throw new Error("options must be an object");if("number"!=typeof i)throw new Error("steps must be an number");if(void 0===e)throw new Error("radius is required");if(i<=0)throw new Error("steps must be greater than 0");var o=[];switch(t.type){case"GeometryCollection":return mt(t,(function(t){var n=ui(t,e,r,i);n&&o.push(n)})),C(o);case"FeatureCollection":return dt(t,(function(t){var n=ui(t,e,r,i);n&&dt(n,(function(t){t&&o.push(t)}))})),C(o)}return ui(t,e,r,i)},t.center=An,t.centerMean=fi,t.centerMedian=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!Z(e=e||{}))throw new Error("options is invalid");var n=e.counter||10;if(!V(n))throw new Error("counter must be a number");var r=e.weight,i=fi(t,{weight:e.weight}),o=C([]);dt(t,(function(t){var e;o.features.push(gi(t,{properties:{weight:null==(e=t.properties)?void 0:e[r]}}))}));var s={tolerance:e.tolerance,medianCandidates:[]};return vi(i.geometry.coordinates,[0,0],o,s,n)},t.centerOfMass=function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};switch(it(e)){case"Point":return I(K(e),n.properties);case"Polygon":var r=[];ct(e,(function(t){r.push(t)}));var i,o,s,a,u,l,h,c,f=gi(e,{properties:n.properties}),g=f.geometry.coordinates,v=0,d=0,p=0,y=r.map((function(t){return[t[0]-g[0],t[1]-g[1]]}));for(i=0;i<r.length-1;i++)a=(o=y[i])[0],l=o[1],u=(s=y[i+1])[0],p+=c=a*(h=s[1])-u*l,v+=(a+u)*c,d+=(l+h)*c;if(0===p)return f;var m=1/(6*(.5*p));return I([g[0]+m*v,g[1]+m*d],n.properties);default:var _=Oi(e);return _?t(_,{properties:n.properties}):gi(e,{properties:n.properties})}},t.centroid=gi,t.circle=Ri,t.cleanCoords=Le,t.clone=Ai,t.cloneProperties=Fi,t.clusterEach=Yi,t.clusterReduce=zi,t.clusters=$i,t.clustersDbscan=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!0!==n.mutate&&(t=Ai(t));var r=n.minPoints||3,i=G(e,n.units),o=new Fe(t.features.length),s=t.features.map((function(t){return!1})),a=t.features.map((function(t){return!1})),u=t.features.map((function(t){return!1})),l=t.features.map((function(t){return-1}));o.load(t.features.map((function(t,e){var n=d(t.geometry.coordinates,2),r=n[0],i=n[1];return{minX:r,minY:i,maxX:r,maxY:i,index:e}})));var h=function(n){var r=t.features[n],s=d(r.geometry.coordinates,2),a=s[0],u=s[1],l=Math.max(u-i,-90),h=Math.min(u+i,90),c=l<0&&h>0?i:Math.abs(l)<Math.abs(h)?i/Math.cos(j(h)):i/Math.cos(j(l)),f=Math.max(a-c,-360),g=Math.min(a+c,360),v={minX:f,minY:l,maxX:g,maxY:h};return o.search(v).filter((function(n){var i=n.index,o=t.features[i];return ut(r,o,{units:"kilometers"})<=e}))},c=0;return t.features.forEach((function(t,e){if(!s[e]){var n=h(e);if(n.length>=r){var i=c;c++,s[e]=!0,function(t,e){for(var n=0;n<e.length;n++){var i=e[n].index;if(!s[i]){s[i]=!0;var o=h(i);o.length>=r&&e.push.apply(e,p(o))}a[i]||(a[i]=!0,l[i]=t)}}(i,n)}else u[e]=!0}})),t.features.forEach((function(e,n){var r=t.features[n];r.properties||(r.properties={}),l[n]>=0?(r.properties.dbscan=u[n]?"edge":"core",r.properties.cluster=l[n]):r.properties.dbscan="noise"})),t},t.clustersKmeans=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.features.length;e.numberOfClusters=e.numberOfClusters||Math.round(Math.sqrt(n/2)),e.numberOfClusters>n&&(e.numberOfClusters=n),!0!==e.mutate&&(t=Ai(t));var r=yt(t),i=r.slice(0,e.numberOfClusters),o=no(r,e.numberOfClusters,i),s={};return o.centroids.forEach((function(t,e){s[e]=t})),dt(t,(function(t,e){var n=o.idxs[e];t.properties.cluster=n,t.properties.centroid=s[n]})),t},t.collect=function(t,e,n,r){var i=new Fe(6),o=e.features.map((function(t){var e;return{minX:t.geometry.coordinates[0],minY:t.geometry.coordinates[1],maxX:t.geometry.coordinates[0],maxY:t.geometry.coordinates[1],property:null==(e=t.properties)?void 0:e[n]}}));return i.load(o),t.features.forEach((function(t){t.properties||(t.properties={});var e=Rt(t),n=i.search({minX:e[0],minY:e[1],maxX:e[2],maxY:e[3]}),o=[];n.forEach((function(e){jt([e.minX,e.minY],t)&&o.push(e.property)})),t.properties[r]=o})),t},t.collectionOf=nt,t.combine=function(t){var e={MultiPoint:{coordinates:[],properties:[]},MultiLineString:{coordinates:[],properties:[]},MultiPolygon:{coordinates:[],properties:[]}};return dt(t,(function(t){var n,r,i,o;switch(null==(o=t.geometry)?void 0:o.type){case"Point":e.MultiPoint.coordinates.push(t.geometry.coordinates),e.MultiPoint.properties.push(t.properties);break;case"MultiPoint":(n=e.MultiPoint.coordinates).push.apply(n,p(t.geometry.coordinates)),e.MultiPoint.properties.push(t.properties);break;case"LineString":e.MultiLineString.coordinates.push(t.geometry.coordinates),e.MultiLineString.properties.push(t.properties);break;case"MultiLineString":(r=e.MultiLineString.coordinates).push.apply(r,p(t.geometry.coordinates)),e.MultiLineString.properties.push(t.properties);break;case"Polygon":e.MultiPolygon.coordinates.push(t.geometry.coordinates),e.MultiPolygon.properties.push(t.properties);break;case"MultiPolygon":(i=e.MultiPolygon.coordinates).push.apply(i,p(t.geometry.coordinates)),e.MultiPolygon.properties.push(t.properties)}})),C(Object.keys(e).filter((function(t){return e[t].coordinates.length})).sort().map((function(t){return w({type:t,coordinates:e[t].coordinates},{collectedProperties:e[t].properties})})))},t.concave=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.maxEdge||1/0,r=function(t){var e=[],n={};return dt(t,(function(t){if(t.geometry){var r=t.geometry.coordinates.join("-");Object.prototype.hasOwnProperty.call(n,r)||(e.push(t),n[r]=!0)}})),C(e)}(t),i=ro(r);if(i.features=i.features.filter((function(t){var r=t.geometry.coordinates[0][0],i=t.geometry.coordinates[0][1],o=t.geometry.coordinates[0][2],s=ut(r,i,e),a=ut(i,o,e),u=ut(r,o,e);return s<=n&&a<=n&&u<=n})),i.features.length<1)return null;var o=To(i);return 1===o.coordinates.length&&(o.coordinates=o.coordinates[0],o.type="Polygon"),w(o)},t.containsNumber=$,t.convertArea=U,t.convertLength=X,t.convex=Oi,t.coordAll=yt,t.coordEach=ct,t.coordReduce=ft,t.createBins=ji,t.degreesToRadians=j,t.destination=at,t.difference=function(t){var e=[];if(mt(t,(function(t){e.push(t.coordinates)})),e.length<2)throw new Error("Must have at least two features");var n=t.features[0].properties||{},r=Os.apply(As,[e[0]].concat(p(e.slice(1))));return 0===r.length?null:1===r.length?S(r[0],n):R(r,n)},t.dissolve=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!Z(e=e||{}))throw new Error("options is invalid");var n=e.propertyName;nt(t,"Polygon","dissolve");var r=[];if(!n)return Ds(R(Cs.apply(null,t.features.map((function(t){return t.geometry.coordinates})))));var i={};dt(t,(function(t){t.properties&&(Object.prototype.hasOwnProperty.call(i,t.properties[n])||(i[t.properties[n]]=[]),i[t.properties[n]].push(t))}));for(var o=Object.keys(i),s=0;s<o.length;s++){var a=R(Cs.apply(null,i[o[s]].map((function(t){return t.geometry.coordinates}))));a&&a.properties&&(a.properties[n]=o[s],r.push(a))}return Ds(C(r))},t.distance=ut,t.distanceWeight=qs,t.earthRadius=x,t.ellipse=zs,t.envelope=js,t.explode=Xs,t.factors=E,t.feature=w,t.featureCollection=C,t.featureEach=dt,t.featureOf=et,t.featureReduce=pt,t.filterProperties=Vi,t.findPoint=St,t.findSegment=Nt,t.flatten=Ds,t.flattenEach=xt,t.flattenReduce=Et,t.flip=function(t,e){var n;if(!Z(e=e||{}))throw new Error("options is invalid");var r=null!=(n=e.mutate)&&n;if(!t)throw new Error("geojson is required");return!1!==r&&void 0!==r||(t=Ai(t)),ct(t,(function(t){var e=t[0],n=t[1];t[0]=n,t[1]=e})),t},t.geojsonRbush=Ke,t.geojsonType=tt,t.geomEach=mt,t.geomReduce=_t,t.geometry=b,t.geometryCollection=A,t.getCluster=Bi,t.getCoord=K,t.getCoords=Q,t.getGeom=rt,t.getType=it,t.greatCircle=function(t,e,n){if("object"!==m(n=n||{}))throw new Error("options is invalid");var r=n.properties,i=n.npoints,o=n.offset;if(t=K(t),e=K(e),r=r||{},i=i||100,t[0]===e[0]&&t[1]===e[1]){var s=Array(i);return s.fill([t[0],t[1]]),L(s,r)}return o=o||10,new Js({x:t[0],y:t[1]},{x:e[0],y:e[1]},r).Arc(i,{offset:o}).json()},t.helpers=J,t.hexGrid=Qs,t.interpolate=function(t,e,n){if("object"!==m(n=n||{}))throw new Error("options is invalid");var r,i=n.gridType,o=n.property,s=n.weight,a=n.bbox;if(!t)throw new Error("points is required");if(nt(t,"Point","input must contain Points"),!e)throw new Error("cellSize is required");if(void 0!==s&&"number"!=typeof s)throw new Error("weight must be a number");switch(o=o||"elevation",i=i||"square",s=s||1,H(a=null!=a?a:Rt(t)),i){case"point":case"points":r=ea(a,e,n);break;case"square":case"squares":r=ra(a,e,n);break;case"hex":case"hexes":r=Qs(a,e,n);break;case"triangle":case"triangles":r=ia(a,e,n);break;default:throw new Error("invalid gridType")}var u=[];return dt(r,(function(e){var r=0,a=0;dt(t,(function(t){var u,l=ut("point"===i?e:gi(e),t,n);if(void 0!==o&&(u=t.properties[o]),void 0===u&&(u=t.geometry.coordinates[2]),void 0===u)throw new Error("zValue is missing");0===l&&(r=u);var h=1/Math.pow(l,s);a+=h,r+=h*u}));var l=Ai(e);l.properties[o]=r/a,u.push(l)})),C(u)},t.intersect=Ks,t.invariant=ot,t.isNumber=V,t.isObject=Z,t.isobands=function(t,e,n){if(!Z(n=n||{}))throw new Error("options is invalid");var r=n.zProperty||"elevation",i=n.commonProperties||{},o=n.breaksProperties||[];if(nt(t,"Point","Input must contain Points"),!e)throw new Error("breaks is required");if(!Array.isArray(e))throw new Error("breaks is not an Array");if(!Z(i))throw new Error("commonProperties is not an Object");if(!Array.isArray(o))throw new Error("breaksProperties is not an Array");var s=ca(t,{zProperty:r,flip:!0}),a=s[0].length;if(s.length<2||a<2)throw new Error("Matrix of points must be at least 2x2");for(var l=1;l<s.length;l++)if(s[l].length!==a)throw new Error("Matrix of points is not uniform in the x dimension");var h=function(t,e,n){for(var r,i=[],o=1;o<e.length;o++){1===o&&(r=fa(t,+e[0]));var s=+e[o],a=+e[o-1],l=fa(t,s),h=l.map((function(t){return t.map((function(t){return[t[0],t[1]]})).reverse()})),c=da(va(ga(r.concat(h),t)));if(0===c.length&&t[0][0]<s&&t[0][0]>=a){var f=t[0].length,g=t.length;c.push([[[0,0],[f-1,0],[f-1,g-1],[0,g-1],[0,0]]])}i.push(u({groupedRings:c},n,a+"-"+s)),r=l}return i}(s,e,r);h=function(t,e,n){var r=Rt(n),i=r[2]-r[0],o=r[3]-r[1],s=r[0],a=r[1],u=e[0].length-1,l=e.length-1,h=i/u,c=o/l;return t.map((function(t){return t.groupedRings=t.groupedRings.map((function(t){return t.map((function(t){return t.map((function(t){return[t[0]*h+s,t[1]*c+a]}))}))})),t}))}(h,s,t);var c=h.map((function(t,e){if(o[e]&&!Z(o[e]))throw new Error("Each mappedProperty is required to be an Object");var n=ha(ha({},i),o[e]);return n[r]=t[r],R(t.groupedRings,n)}));return C(c)},t.isolines=function(t,e,n){if(!Z(n=n||{}))throw new Error("options is invalid");var r=n.zProperty||"elevation",i=n.commonProperties||{},o=n.breaksProperties||[];if(nt(t,"Point","Input must contain Points"),!e)throw new Error("breaks is required");if(!Array.isArray(e))throw new Error("breaks must be an Array");if(!Z(i))throw new Error("commonProperties must be an Object");if(!Array.isArray(o))throw new Error("breaksProperties must be an Array");var s=Ia(t,{zProperty:r,flip:!0}),a=s[0].length;if(s.length<2||a<2)throw new Error("Matrix of points must be at least 2x2");for(var u=1;u<s.length;u++)if(s[u].length!==a)throw new Error("Matrix of points is not uniform in the x dimension");var l=function(t,e,n){var r=Rt(n),i=r[2]-r[0],o=r[3]-r[1],s=r[0],a=r[1],u=e[0].length-1,l=e.length-1,h=i/u,c=o/l,f=function(t){t[0]=t[0]*h+s,t[1]=t[1]*c+a};return t.forEach((function(t){ct(t,f)})),t}(function(t,e,n,r,i){for(var o=[],s=0;s<e.length;s++){var a=+e[s],u=ba(ba({},r),i[s]);u[n]=a;var l=T(Na(t,a),u);o.push(l)}return o}(s,e,r,i,o),s,t);return C(l)},t.kinks=function(t){var e,n,r={type:"FeatureCollection",features:[]};if("LineString"===(n="Feature"===t.type?t.geometry:t).type)e=[n.coordinates];else if("MultiLineString"===n.type)e=n.coordinates;else if("MultiPolygon"===n.type){var i;e=(i=[]).concat.apply(i,p(n.coordinates))}else{if("Polygon"!==n.type)throw new Error("Input must be a LineString, MultiLineString, Polygon, or MultiPolygon Feature or Geometry");e=n.coordinates}return e.forEach((function(t){e.forEach((function(e){for(var n=0;n<t.length-1;n++)for(var i=n;i<e.length-1;i++){if(t===e){if(1===Math.abs(n-i))continue;if(0===n&&i===t.length-2&&t[n][0]===t[t.length-1][0]&&t[n][1]===t[t.length-1][1])continue}var o=Sa(t[n][0],t[n][1],t[n+1][0],t[n+1][1],e[i][0],e[i][1],e[i+1][0],e[i+1][1]);o&&r.features.push(I([o[0],o[1]]))}}))})),r},t.length=Ma,t.lengthToDegrees=G,t.lengthToRadians=q,t.lineArc=La,t.lineChunk=function(t,e,n){if(!Z(n=n||{}))throw new Error("options is invalid");var r=n.units,i=n.reverse;if(!t)throw new Error("geojson is required");if(e<=0)throw new Error("segmentLength must be greater than 0");var o=[];return xt(t,(function(t){i&&(t.geometry.coordinates=t.geometry.coordinates.reverse()),function(t,e,n,r){var i=Ma(t,{units:n});if(i<=e)return r(t);var o=i/e;Number.isInteger(o)||(o=Math.floor(o)+1);for(var s=0;s<o;s++){r(Ca(t,e*s,e*(s+1),{units:n}),s)}}(t,e,r,(function(t){o.push(t)}))})),C(o)},t.lineEach=bt,t.lineIntersect=ue,t.lineOffset=function(t,e,n){if(!Z(n=n||{}))throw new Error("options is invalid");var r=n.units;if(!t)throw new Error("geojson is required");if(null==e||isNaN(e))throw new Error("distance is required");var i=it(t),o=t.properties;switch(i){case"LineString":return Aa(t,e,r);case"MultiLineString":var s=[];return xt(t,(function(t){s.push(Aa(t,e,r).geometry.coordinates)})),T(s,o);default:throw new Error("geometry "+i+" is not supported")}},t.lineOverlap=kn,t.lineReduce=It,t.lineSegment=Qe,t.lineSlice=function(t,e,n){var r=Q(n);if("LineString"!==it(n))throw new Error("line must be a LineString");for(var i,o=cn(n,t),s=cn(n,e),a=[(i=o.properties.index<=s.properties.index?[o,s]:[s,o])[0].geometry.coordinates],u=i[0].properties.index+1;u<i[1].properties.index+1;u++)a.push(r[u]);return a.push(i[1].geometry.coordinates),L(a,n.properties)},t.lineSliceAlong=Ca,t.lineSplit=function(t,e){if(!t)throw new Error("line is required");if(!e)throw new Error("splitter is required");var n=it(t),r=it(e);if("LineString"!==n)throw new Error("line must be LineString");if("FeatureCollection"===r)throw new Error("splitter cannot be a FeatureCollection");if("GeometryCollection"===r)throw new Error("splitter cannot be a GeometryCollection");var i=Da(e,{precision:7});switch(r){case"Point":return qa(t,i);case"MultiPoint":return Fa(t,i);case"LineString":case"MultiLineString":case"Polygon":case"MultiPolygon":return Fa(t,ue(t,i,{ignoreSelfIntersections:!0}))}},t.lineString=L,t.lineStrings=P,t.lineToPolygon=function(t){var e,n,r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=i.properties,s=null==(e=i.autoComplete)||e,a=null==(n=i.orderCoords)||n;if(null!=(r=i.mutate)&&r||(t=Ai(t)),"FeatureCollection"===t.type){var u=[];return t.features.forEach((function(t){u.push(Q(Ya(t,{},s,a)))})),R(u,o)}return Ya(t,o,s,a)},t.mask=function(t,e,n){var r,i=null!=(r=null==n?void 0:n.mutate)&&r,o=e;e&&!1===i&&(o=Ai(e));var s,a=Xa(o);return("FeatureCollection"===t.type?ja(2===(s=t).features.length?Cs(s.features[0].geometry.coordinates,s.features[1].geometry.coordinates):Cs.apply(As,s.features.map((function(t){return t.geometry.coordinates})))):"Feature"===t.type?ja(Cs(t.geometry.coordinates)):ja(Cs(t.coordinates))).geometry.coordinates.forEach((function(t){a.geometry.coordinates.push(t[0])})),a},t.meta=Mt,t.midpoint=function(t,e){return at(t,ut(t,e)/2,st(t,e))},t.moranIndex=function(t,e){var n,r,i=e.inputField,o=e.threshold||1e5,s=e.p||2,u=null!=(n=e.binary)&&n,l=qs(t,{alpha:e.alpha||-1,binary:u,p:s,standardization:null==(r=e.standardization)||r,threshold:o}),h=[];dt(t,(function(t){var e=t.properties||{};h.push(e[i])}));for(var c=Ua(h),f=function(t){var e,n=Ua(t),r=0,i=a(t);try{for(i.s();!(e=i.n()).done;){var o=e.value;r+=Math.pow(o-n,2)}}catch(t){i.e(t)}finally{i.f()}return r/t.length}(h),g=0,v=0,d=0,p=0,y=l.length,m=0;m<y;m++){for(var _=0,x=0;x<y;x++)g+=l[m][x]*(h[m]-c)*(h[x]-c),v+=l[m][x],d+=Math.pow(l[m][x]+l[x][m],2),_+=l[m][x]+l[x][m];p+=Math.pow(_,2)}var E=g/v/f,k=-1/(y-1),w=(y*y*(d*=.5)-y*p+v*v*3)/((y-1)*(y+1)*(v*v))-k*k,b=Math.sqrt(w);return{expectedMoranIndex:k,moranIndex:E,stdNorm:b,zNorm:(E-k)/b}},t.multiLineString=T,t.multiPoint=O,t.multiPolygon=R,t.nearestNeighborAnalysis=function(t,e){var n=(e=e||{}).studyArea||Gt(Rt(t)),r=e.properties||{},i=e.units||"kilometers",o=[];dt(t,(function(t){o.push(gi(t))}));var s=o.length,a=o.map((function(t,e){return ut(t,eu(t,C(o.filter((function(t,n){return n!==e})))).geometry.coordinates,{units:i})})).reduce((function(t,e){return t+e}),0)/s,u=s/U(Lt(n),"meters",i),l=1/(2*Math.sqrt(u)),h=.26136/Math.sqrt(s*u);return r.nearestNeighborAnalysis={units:i,arealUnits:i+"²",observedMeanDistance:a,expectedMeanDistance:l,nearestNeighborIndex:a/l,numberOfPoints:s,zScore:(a-l)/h},n.properties=r,n},t.nearestPoint=eu,t.nearestPointOnLine=cn,t.nearestPointToLine=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.units,i=n.properties||{},o=function(t){var e=[];switch(t.geometry?t.geometry.type:t.type){case"GeometryCollection":return mt(t,(function(t){"Point"===t.type&&e.push({type:"Feature",properties:{},geometry:t})})),{type:"FeatureCollection",features:e};case"FeatureCollection":return t.features=t.features.filter((function(t){return"Point"===t.geometry.type})),t;default:throw new Error("points must be a Point Collection")}}(t);if(!o.features.length)throw new Error("points must contain features");if(!e)throw new Error("line is required");if("LineString"!==it(e))throw new Error("line must be a LineString");var s=1/0,a=null;return dt(o,(function(t){var n=nu(t,e,{units:r});n<s&&(s=n,a=t)})),a&&(a.properties=lu(lu(lu({},{dist:s}),a.properties),i)),a},t.planepoint=function(t,e){var n=K(t),r=rt(e).coordinates[0];if(r.length<4)throw new Error("OuterRing of a Polygon must have 4 or more Positions.");var i="Feature"===e.type&&e.properties||{},o=i.a,s=i.b,a=i.c,u=n[0],l=n[1],h=r[0][0],c=r[0][1],f=void 0!==o?o:r[0][2],g=r[1][0],v=r[1][1],d=void 0!==s?s:r[1][2],p=r[2][0],y=r[2][1],m=void 0!==a?a:r[2][2];return(m*(u-h)*(l-v)+f*(u-g)*(l-y)+d*(u-p)*(l-c)-d*(u-h)*(l-y)-m*(u-g)*(l-c)-f*(u-p)*(l-v))/((u-h)*(l-v)+(u-g)*(l-y)+(u-p)*(l-c)-(u-h)*(l-y)-(u-g)*(l-c)-(u-p)*(l-v))},t.point=I,t.pointGrid=ea,t.pointOnFeature=function(t){for(var e=function(t){if("FeatureCollection"!==t.type)return"Feature"!==t.type?C([w(t)]):C([t]);return t}(t),n=An(e),r=!1,i=0;!r&&i<e.features.length;){var o=e.features[i].geometry,s=!1;if("Point"===o.type)n.geometry.coordinates[0]===o.coordinates[0]&&n.geometry.coordinates[1]===o.coordinates[1]&&(r=!0);else if("MultiPoint"===o.type)for(var a=!1,u=0;!a&&u<o.coordinates.length;)n.geometry.coordinates[0]===o.coordinates[u][0]&&n.geometry.coordinates[1]===o.coordinates[u][1]&&(r=!0,a=!0),u++;else if("LineString"===o.type)for(var l=0;!s&&l<o.coordinates.length-1;)hu(n.geometry.coordinates[0],n.geometry.coordinates[1],o.coordinates[l][0],o.coordinates[l][1],o.coordinates[l+1][0],o.coordinates[l+1][1])&&(s=!0,r=!0),l++;else if("MultiLineString"===o.type)for(var h=0;h<o.coordinates.length;){s=!1;for(var c=0,f=o.coordinates[h];!s&&c<f.length-1;)hu(n.geometry.coordinates[0],n.geometry.coordinates[1],f[c][0],f[c][1],f[c+1][0],f[c+1][1])&&(s=!0,r=!0),c++;h++}else"Polygon"!==o.type&&"MultiPolygon"!==o.type||jt(n,o)&&(r=!0);i++}if(r)return n;for(var g=C([]),v=0;v<e.features.length;v++)g.features=g.features.concat(Xs(e.features[v]).features);return I(eu(n,g).geometry.coordinates)},t.pointToLineDistance=nu,t.pointToPolygonDistance=function t(e,r){var i,o,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=null!=(i=s.method)?i:"geodesic",u=null!=(o=s.units)?o:"kilometers";if(!e)throw new Error("point is required");if(!r)throw new Error("polygon or multi-polygon is required");var l,h=rt(r);if("MultiPolygon"===h.type){var c=h.coordinates.map((function(n){return t(e,S(n),{method:a,units:u})}));return Math.min.apply(Math,p(c.map(Math.abs)))*(jt(e,r)?-1:1)}if(h.coordinates.length>1){var v=h.coordinates.map((function(n){return t(e,S([n]),{method:a,units:u})})),d=n(l=v)||f(l)||_(l)||g(),y=d[0],m=d.slice(1);if(y>=0)return y;var x=Math.min.apply(Math,p(m));return x<0?Math.abs(x):Math.max(-1*x,y)}var E=le(h),k=1/0;return xt(E,(function(t){k=Math.min(k,nu(e,t,{method:a,units:u}))})),jt(e,h)?-k:k},t.points=N,t.pointsWithinPolygon=cu,t.polygon=S,t.polygonSmooth=function(t,e){(e=e||{}).iterations=e.iterations||1;var n=e.iterations,r=[];if(!t)throw new Error("inputPolys is required");return mt(t,(function(t,e,i){if("Polygon"===t.type){for(var o=[[]],s=0;s<n;s++){var a=[],u=t;s>0&&(u=S(o).geometry),mu(u,a),o=a.slice(0)}r.push(S(o,i))}else{if("MultiPolygon"!==t.type)throw new Error("geometry is invalid, must be Polygon or MultiPolygon");for(var l=[[[]]],h=0;h<n;h++){var c=[],f=t;h>0&&(f=R(l).geometry),_u(f,c),l=c.slice(0)}r.push(R(l,i))}})),C(r)},t.polygonTangents=function(t,e){var n,r=Q(t),i=Q(e),o=[],s=[],a=Rt(e),u=0,l=null;switch(r[0]>a[0]&&r[0]<a[2]&&r[1]>a[1]&&r[1]<a[3]&&(u=(l=eu(t,Xs(e))).properties.featureIndex),it(e)){case"Polygon":o=i[0][u],s=i[0][0],null!==l&&l.geometry.coordinates[1]<r[1]&&(s=i[0][u]),n=ku(i[0][0],i[0][i[0].length-1],r);var h=d(xu(i[0],r,n,o,s),2);o=h[0],s=h[1];break;case"MultiPolygon":for(var c=0,f=0,g=0,v=0;v<i[0].length;v++){c=v;for(var p=!1,y=0;y<i[0][v].length;y++){if(f=y,g===u){p=!0;break}g++}if(p)break}o=i[0][c][f],s=i[0][c][f],n=ku(i[0][0][0],i[0][0][i[0][0].length-1],r),i.forEach((function(t){var e=d(xu(t[0],r,n,o,s),2);o=e[0],s=e[1]}))}return C([I(o),I(s)])},t.polygonToLine=le,t.polygonize=function(t){var e=yu.fromGeoJson(t);e.deleteDangles(),e.deleteCutEdges();var n=[],r=[];return e.getEdgeRings().filter((function(t){return t.isValid()})).forEach((function(t){t.isHole()?n.push(t):r.push(t)})),n.forEach((function(t){pu.findEdgeRingContaining(t,r)&&r.push(t)})),C(r.map((function(t){return t.toPolygon()})))},t.polygons=M,t.projection=Mu,t.propEach=gt,t.propReduce=vt,t.propertiesContainsFilter=Ui,t.quadratAnalysis=function(t,e){for(var n=(e=e||{}).studyBbox||Rt(t),r=e.confidenceLevel||20,i=t.features,o=i.length,s=Lt(Gt(n)),u=ra(n,Math.sqrt(s/o*2),{units:"meters"}).features,l={},h=0;h<u.length;h++)l[h]={box:Rt(u[h]),cnt:0};var c,f=0,g=a(i);try{for(g.s();!(c=g.n()).done;)for(var v=c.value,d=0,p=Object.keys(l);d<p.length;d++){var y=p[d],m=l[y].box;if(Pu(K(v),m)){l[y].cnt+=1,f+=1;break}}}catch(t){g.e(t)}finally{g.f()}for(var _=0,x=0,E=Object.keys(l);x<E.length;x++){var k=l[E[x]].cnt;k>_&&(_=k)}for(var w=[],b=Object.keys(l).length,I=f/b,N=0,S=0;S<_+1;S++)N+=Math.exp(-I)*Math.pow(I,S)/Cu(S),w.push(N);for(var M=[],L=0,P=0;P<_+1;P++){for(var C=0,T=Object.keys(l);C<T.length;C++){l[T[C]].cnt===P&&(L+=1)}var O=L/b;M.push(O)}for(var R=0,A=0;A<_+1;A++){var D=Math.abs(w[A]-M[A]);D>R&&(R=D)}var F=Lu[r]/Math.sqrt(b),q={criticalValue:F,isRandom:!0,maxAbsoluteDifference:R,observedDistribution:M};return R>F&&(q.isRandom=!1),q},t.radiansToDegrees=z,t.radiansToLength=F,t.random=Bu,t.randomLineString=Fu,t.randomPoint=Au,t.randomPolygon=Du,t.randomPosition=Tu,t.rectangleGrid=na,t.rewind=function(t){var e,n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!Z(r=r||{}))throw new Error("options is invalid");var i=null!=(e=r.mutate)&&e,o=null!=(n=r.reverse)&&n;if(!t)throw new Error("<geojson> is required");if("boolean"!=typeof o)throw new Error("<reverse> must be a boolean");if("boolean"!=typeof i)throw new Error("<mutate> must be a boolean");i||"Point"===t.type||"MultiPoint"===t.type||(t=Ai(t));var s=[];switch(t.type){case"GeometryCollection":return mt(t,(function(t){Yu(t,o)})),t;case"FeatureCollection":return dt(t,(function(t){dt(Yu(t,o),(function(t){s.push(t)}))})),C(s)}return Yu(t,o)},t.rhumbBearing=lt,t.rhumbDestination=Bs,t.rhumbDistance=Gs,t.round=D,t.sample=function(t,e){if(!t)throw new Error("fc is required");if(null==e)throw new Error("num is required");if("number"!=typeof e)throw new Error("num must be a number");var n=C(function(t,e){var n,r,i=t.slice(0),o=t.length,s=o-e;for(;o-- >s;)n=i[r=Math.floor((o+1)*Math.random())],i[r]=i[o],i[o]=n;return i.slice(s)}(t.features,e));return n},t.sector=function(t,e,n,r){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};if(!Z(i=i||{}))throw new Error("options is invalid");var o=i.properties;if(!t)throw new Error("center is required");if(null==n)throw new Error("bearing1 is required");if(null==r)throw new Error("bearing2 is required");if(!e)throw new Error("radius is required");if("object"!==m(i))throw new Error("options must be an object");if(Xu(n)===Xu(r))return Ri(t,e,i);var s=Q(t),a=La(t,e,n,r,i),u=[[s]];return ct(a,(function(t){u[0].push(t)})),u[0].push(s),S(u,o)},t.segmentEach=kt,t.segmentReduce=wt,t.shortestPath=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!Z(n=n||{}))throw new Error("options is invalid");var r=n.obstacles||C([]),i=n.resolution||100;if(!t)throw new Error("start is required");if(!e)throw new Error("end is required");if(!V(i)||i<=0)throw new Error("options.resolution must be a number, greater than 0");var o=K(t),s=K(e);if(t=I(o),e=I(s),"FeatureCollection"===r.type){if(0===r.features.length)return L([o,s])}else if("Feature"===r.type&&"Polygon"===r.geometry.type)r=C([r]);else{if("Polygon"!==r.type)throw new Error("invalid obstacles");r=C([w(rt(r))])}var a=r;a.features.push(t),a.features.push(e);var u=d(Rt(Uu(Gt(Rt(a)),1.15)),4),l=u[0],h=u[1],c=u[2],f=u[3];a.features.pop(),a.features.pop();for(var g,v,p=ut([l,h],[c,h],n)/i,y=(c-l)/p,m=ut([l,h],[l,f],n)/i,_=(f-h)/m,x=p%1*y/2,E=[],k=[],b=1/0,N=1/0,S=f-m%1*_/2,M=0;S>=h;){for(var P=[],T=[],O=l+x,R=0;O<=c;){var A=I([O,S]),D=Qu(A,r);P.push(D?0:1),T.push(O+"|"+S);var F=ut(A,t);!D&&F<b&&(b=F,g={x:R,y:M});var q=ut(A,e);!D&&q<N&&(N=q,v={x:R,y:M}),O+=y,R++}k.push(P),E.push(T),S-=_,M++}var G=new Wu(k,{diagonal:!0}),B=G.grid[g.y][g.x],Y=G.grid[v.y][v.x],z=Hu.search(G,B,Y),j=[o];return z.forEach((function(t){var e=E[t.x][t.y].split("|");j.push([+e[0],+e[1]])})),j.push(s),Le(L(j))},t.simplify=function(t){var e,n,r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!Z(i=null!=i?i:{}))throw new Error("options is invalid");var o=null!=(e=i.tolerance)?e:1,s=null!=(n=i.highQuality)&&n,a=null!=(r=i.mutate)&&r;if(!t)throw new Error("geojson is required");if(o&&o<0)throw new Error("invalid tolerance");return!0!==a&&(t=Ai(t)),mt(t,(function(t){!function(t,e,n){var r=t.type;if("Point"===r||"MultiPoint"===r)return t;if(Le(t,{mutate:!0}),"GeometryCollection"!==r)switch(r){case"LineString":t.coordinates=nl(t.coordinates,e,n);break;case"MultiLineString":t.coordinates=t.coordinates.map((function(t){return nl(t,e,n)}));break;case"Polygon":t.coordinates=rl(t.coordinates,e,n);break;case"MultiPolygon":t.coordinates=t.coordinates.map((function(t){return rl(t,e,n)}))}}(t,o,s)})),t},t.square=function(t){var e=t[0],n=t[1],r=t[2],i=t[3];if(ut(t.slice(0,2),[r,n])>=ut(t.slice(0,2),[e,i])){var o=(n+i)/2;return[e,o-(r-e)/2,r,o+(r-e)/2]}var s=(e+r)/2;return[s-(i-n)/2,n,s+(i-n)/2,i]},t.squareGrid=ra,t.standardDeviationalEllipse=function(t,e){var n;if(!Z(e=e||{}))throw new Error("options is invalid");var r=e.steps||64,i=e.weight,o=e.properties||{};if(!V(r))throw new Error("steps must be a number");if(!Z(o))throw new Error("properties must be a number");var s=yt(t).length,a=fi(t,{weight:i}),u=0,l=0,h=0;dt(t,(function(t){var e,n=i&&(null==(e=t.properties)?void 0:e[i])||1,r=ol(Q(t),Q(a));u+=Math.pow(r.x,2)*n,l+=Math.pow(r.y,2)*n,h+=r.x*r.y*n}));var c=u-l,f=Math.sqrt(Math.pow(c,2)+4*Math.pow(h,2)),g=2*h,v=Math.atan((c+f)/g),d=180*v/Math.PI,p=0,y=0,m=0;dt(t,(function(t){var e,n=i&&(null==(e=t.properties)?void 0:e[i])||1,r=ol(Q(t),Q(a));p+=Math.pow(r.x*Math.cos(v)-r.y*Math.sin(v),2)*n,y+=Math.pow(r.x*Math.sin(v)+r.y*Math.cos(v),2)*n,m+=n}));var _=Math.sqrt(2*p/m),x=Math.sqrt(2*y/m),E=zs(a,_,x,{units:"degrees",angle:d,steps:r,properties:o}),k=cu(t,C([E])),w={meanCenterCoordinates:Q(a),semiMajorAxis:_,semiMinorAxis:x,numberOfFeatures:s,angle:d,percentageWithinEllipse:100*yt(k).length/s};return E.properties=null!=(n=E.properties)?n:{},E.properties.standardDeviationalEllipse=w,E},t.tag=function(t,e,n,r){return t=Ai(t),e=Ai(e),dt(t,(function(t){t.properties||(t.properties={}),dt(e,(function(e){t.properties&&e.properties&&void 0===t.properties[r]&&jt(t,e)&&(t.properties[r]=e.properties[n])}))})),t},t.tesselate=function(t){if(!t.geometry||"Polygon"!==t.geometry.type&&"MultiPolygon"!==t.geometry.type)throw new Error("input must be a Polygon or MultiPolygon");var e={type:"FeatureCollection",features:[]};return"Polygon"===t.geometry.type?e.features=hl(t.geometry.coordinates):t.geometry.coordinates.forEach((function(t){e.features=e.features.concat(hl(t))})),e},t.tin=ro,t.toMercator=wu,t.toWgs84=bu,t.transformRotate=Ys,t.transformScale=Uu,t.transformTranslate=function(t,e,n,r){if(!Z(r=r||{}))throw new Error("options is invalid");var i=r.units,o=r.zTranslation,s=r.mutate;if(!t)throw new Error("geojson is required");if(null==e||isNaN(e))throw new Error("distance is required");if(o&&"number"!=typeof o&&isNaN(o))throw new Error("zTranslation is not a number");if(o=void 0!==o?o:0,0===e&&0===o)return t;if(null==n||isNaN(n))throw new Error("direction is required");return e<0&&(e=-e,n+=180),!1!==s&&void 0!==s||(t=Ai(t)),ct(t,(function(t){var r=Q(Bs(t,e,n,{units:i}));t[0]=r[0],t[1]=r[1],o&&3===t.length&&(t[2]+=o)})),t},t.triangleGrid=ia,t.truncate=Da,t.union=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=[];if(mt(t,(function(t){n.push(t.coordinates)})),n.length<2)throw new Error("Must have at least 2 geometries");var r=Cs.apply(As,[n[0]].concat(p(n.slice(1))));return 0===r.length?null:1===r.length?S(r[0],e.properties):R(r,e.properties)},t.unkinkPolygon=function(t){var e=[];return xt(t,(function(t){"Polygon"===t.geometry.type&&dt(gl(t),(function(n){e.push(S(n.geometry.coordinates,t.properties))}))})),C(e)},t.validateBBox=H,t.validateId=W,t.voronoi=function(t,e){if(!Z(e=e||{}))throw new Error("options is invalid");var n=e.bbox||[-180,-85,180,85];if(!t)throw new Error("points is required");if(!Array.isArray(n))throw new Error("bbox is invalid");return nt(t,"Point","points"),C(function(){var t=El,e=kl,n=null;function r(r){return new eh(r.map((function(n,i){var o=[Math.round(t(n,i,r)/$l)*$l,Math.round(e(n,i,r)/$l)*$l];return o.index=i,o.data=n,o})),n)}return r.polygons=function(t){return r(t).polygons()},r.links=function(t){return r(t).links()},r.triangles=function(t){return r(t).triangles()},r.x=function(e){return arguments.length?(t="function"==typeof e?e:xl(+e),r):t},r.y=function(t){return arguments.length?(e="function"==typeof t?t:xl(+t),r):e},r.extent=function(t){return arguments.length?(n=null==t?null:[[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]],r):n&&[[n[0][0],n[0][1]],[n[1][0],n[1][1]]]},r.size=function(t){return arguments.length?(n=null==t?null:[[0,0],[+t[0],+t[1]]],r):n&&[n[1][0]-n[0][0],n[1][1]-n[0][1]]},r}().x((function(t){return t.geometry.coordinates[0]})).y((function(t){return t.geometry.coordinates[1]})).extent([[n[0],n[1]],[n[2],n[3]]]).polygons(t.features).map((function(e,n){return Object.assign(function(t){return(t=t.slice()).push(t[0]),S([t])}(e),{properties:Fi(t.features[n].properties)})})))}}));
|