forked from perliedman/geojson-path-finder
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgeojson_path_finder.js
1 lines (1 loc) · 80.2 KB
/
geojson_path_finder.js
1
var geojsonPathFinder;geojsonPathFinder=(()=>{var e={6:e=>{"use strict";function r(e,r,t,n,o,i,a){a=a||{};var u=r[e];return Object.keys(u).reduce((function(u,s){var c=function(e,r,t,n,o,i,a,u){var s=t[e][r],c=t[r][e],l=[],f=[],d=u.edgeDataSeed;for(u.edgeDataReduceFn&&(d=u.edgeDataReduceFn(d,i[r][e]));!n[r];){var h=t[r];if(!h)break;var g=Object.keys(h).filter((function(r){return r!==e}))[0];if(s+=h[g],a){if(c+=t[g][r],f.indexOf(r)>=0){n[r]=t[r];break}f.push(r)}u.edgeDataReduceFn&&(d=u.edgeDataReduceFn(d,i[r][g])),l.push(o[r]),e=r,r=g}return{vertex:r,weight:s,reverseWeight:c,coordinates:l,reducedEdge:d}}(e,s,r,t,n,o,i,a),l=c.weight,f=c.reverseWeight;if(c.vertex!==e&&((!u.edges[c.vertex]||u.edges[c.vertex]>l)&&(u.edges[c.vertex]=l,u.coordinates[c.vertex]=[n[e]].concat(c.coordinates),u.reducedEdges[c.vertex]=c.reducedEdge),i&&!isNaN(f)&&(!u.incomingEdges[c.vertex]||u.incomingEdges[c.vertex]>f))){u.incomingEdges[c.vertex]=f;var d=[n[e]].concat(c.coordinates);d.reverse(),u.incomingCoordinates[c.vertex]=d}return u}),{edges:{},incomingEdges:{},coordinates:{},incomingCoordinates:{},reducedEdges:{}})}e.exports={compactNode:r,compactGraph:function(e,t,n,o){var i=(o=o||{}).progress,a=Object.keys(e).reduce((function(r,t,n,a){var u=e[t],s=Object.keys(u),c=s.length;return!(void 0!==o.compact&&!o.compact)&&(1===c?!e[s[0]][t]:2===c&&s.filter((function(r){return e[r][t]})).length===c)||(r[t]=u),n%1e3==0&&i&&i("compact:ends",n,a.length),r}),{});return Object.keys(a).reduce((function(u,s,c,l){var f=r(s,e,a,t,n,!1,o);return u.graph[s]=f.edges,u.coordinates[s]=f.coordinates,o.edgeDataReduceFn&&(u.reducedEdges[s]=f.reducedEdges),c%1e3==0&&i&&i("compact:nodes",c,l.length),u}),{graph:{},coordinates:{},reducedEdges:{}})}}},82:(e,r,t)=>{let n=t(842);"function"!=typeof n&&n.default&&"function"==typeof n.default&&(n=n.default),e.exports=function(e,r,t){var o={};o[r]=0;for(var i=new n([[0,[r],r]],(function(e,r){return e[0]-r[0]}));i.length;){var a=i.pop(),u=a[0],s=a[2];if(s===t)return a.slice(0,2);var c=e[s];Object.keys(c).forEach((function(e){var r=u+c[e];if(!(e in o)||r<o[e]){o[e]=r;var t=[r,a[1].concat([e]),e];i.push(t)}}))}return null}},10:(e,r,t)=>{"use strict";const n=t(82),o=t(154),i=t(771),a=t(6),u=t(633),s=t(229),c=t(131).Z,l=t(384),f=t(102),d=t(538).default;function h(e,r){if(r=r||{},e.compactedVertices||(e=i(e,r)),this._graph=e,this._keyFn=r.keyFn||function(e){return e.join(",")},this._precision=r.precision||1e-5,this._options=r,0===Object.keys(this._graph.compactedVertices).filter((function(e){return"edgeData"!==e})).length)throw new Error("Compacted graph contains no forks (topology has no intersections).")}e.exports={PathFinder:h,WeightFunctions:u},h.prototype={findPointsAround:function(e,r){const t=this._keyFn(s(e.geometry.coordinates,this._precision));if(!this._graph.vertices[t])return null;const n=o(this._graph.vertices,t,r);return Object.keys(n).map((e=>e.split(",").map((e=>parseFloat(e)))))},getIsoDistanceConvexHull:function(e,r){const t=this.findPointsAround(e,r);return f.featureCollection(t.map((e=>l(e)))),null},getIsoDistanceConcaveHull:function(e,r){const t=this.findPointsAround(e,r),n=f.featureCollection(t.map((e=>l(e))));return d(n,{units:"kilometers",maxEdge:10})},findPath:function(e,r){var t=this._keyFn(s(e.geometry.coordinates,this._precision)),o=this._keyFn(s(r.geometry.coordinates,this._precision));if(!this._graph.vertices[t]||!this._graph.vertices[o])return null;this._createPhantom(t),this._createPhantom(o);var i=n(this._graph.compactedVertices,t,o);if(i){var a=i[0];return{path:(i=i[1]).reduce(function(e,r,t,n){return t>0&&(e=e.concat(this._graph.compactedCoordinates[n[t-1]][r])),e}.bind(this),[]).concat([this._graph.sourceVertices[o]]),weight:a,edgeDatas:this._graph.compactedEdges?i.reduce(function(e,r,t,n){return t>0&&e.push({reducedEdge:this._graph.compactedEdges[n[t-1]][r]}),e}.bind(this),[]):void 0}}return null},serialize:function(){return this._graph},findNearestJunction:function(e){var r=[null,Number.MAX_VALUE];return Object.keys(this._graph.vertices).filter(function(e){var r=Object.keys(this._graph.vertices[e]).length;return r>=3||1==r}.bind(this)).forEach(function(t){const n=c(l(e),l(this._graph.sourceVertices[t]));n<r[1]&&(r[1]=n,r[0]=this._graph.sourceVertices[t].slice(0))}.bind(this)),r},_createPhantom:function(e){if(this._graph.compactedVertices[e])return null;var r=a.compactNode(e,this._graph.vertices,this._graph.compactedVertices,this._graph.sourceVertices,this._graph.edgeData,!0,this._options);return this._graph.compactedVertices[e]=r.edges,this._graph.compactedCoordinates[e]=r.coordinates,this._graph.compactedEdges&&(this._graph.compactedEdges[e]=r.reducedEdges),Object.keys(r.incomingEdges).forEach(function(t){this._graph.compactedVertices[t][e]=r.incomingEdges[t],this._graph.compactedCoordinates[t][e]=[this._graph.sourceVertices[t]].concat(r.incomingCoordinates[t].slice(0,-1)),this._graph.compactedEdges&&(this._graph.compactedEdges[t][e]=r.reducedEdges[t])}.bind(this)),e},_removePhantom:function(e){e&&(Object.keys(this._graph.compactedVertices[e]).forEach(function(r){delete this._graph.compactedVertices[r][e]}.bind(this)),Object.keys(this._graph.compactedCoordinates[e]).forEach(function(r){delete this._graph.compactedCoordinates[r][e]}.bind(this)),this._graph.compactedEdges&&Object.keys(this._graph.compactedEdges[e]).forEach(function(r){delete this._graph.compactedEdges[r][e]}.bind(this)),delete this._graph.compactedVertices[e],delete this._graph.compactedCoordinates[e],this._graph.compactedEdges&&delete this._graph.compactedEdges[e])}}},154:(e,r,t)=>{let n=t(842);"function"!=typeof n&&n.default&&"function"==typeof n.default&&(n=n.default),e.exports=function(e,r,t){var o={};o[r]=0;for(var i=new n([[0,[r],r]],(function(e,r){return e[0]-r[0]})),a={};i.length;){var u=i.pop(),s=u[0],c=u[2];a[c]=1;var l=e[c];l&&Object.keys(l).forEach((function(e){var r=s+l[e];if(r<t&&(!(e in o)||r<o[e])&&(o[e]=r,!a[e])){var n=[r,u[1].concat([e]),e];i.push(n)}}))}return o}},565:(e,r)=>{"use strict";function t(e){var r={type:"Feature"};return Object.keys(e).forEach((function(t){switch(t){case"type":case"properties":case"geometry":return;default:r[t]=e[t]}})),r.properties=n(e.properties),r.geometry=o(e.geometry),r}function n(e){var r={};return e?(Object.keys(e).forEach((function(t){var o=e[t];"object"==typeof o?null===o?r[t]=null:Array.isArray(o)?r[t]=o.map((function(e){return e})):r[t]=n(o):r[t]=o})),r):r}function o(e){var r={type:e.type};return e.bbox&&(r.bbox=e.bbox),"GeometryCollection"===e.type?(r.geometries=e.geometries.map((function(e){return o(e)})),r):(r.coordinates=i(e.coordinates),r)}function i(e){var r=e;return"object"!=typeof r[0]?r.slice():r.map((function(e){return i(e)}))}Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){if(!e)throw new Error("geojson is required");switch(e.type){case"Feature":return t(e);case"FeatureCollection":return function(e){var r={type:"FeatureCollection"};return Object.keys(e).forEach((function(t){switch(t){case"type":case"features":return;default:r[t]=e[t]}})),r.features=e.features.map((function(e){return t(e)})),r}(e);case"Point":case"LineString":case"Polygon":case"MultiPoint":case"MultiLineString":case"MultiPolygon":case"GeometryCollection":return o(e);default:throw new Error("unknown GeoJSON type")}}},538:function(e,r,t){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0});var o=n(t(591)),i=t(884),a=t(773),u=n(t(829)),s=n(t(878));r.default=function(e,r){void 0===r&&(r={});var t=r.maxEdge||1/0,n=function(e){var r=[],t={};return a.featureEach(e,(function(e){if(e.geometry){var n=e.geometry.coordinates.join("-");t.hasOwnProperty(n)||(r.push(e),t[n]=!0)}})),i.featureCollection(r)}(e),c=u.default(n);if(c.features=c.features.filter((function(e){var n=e.geometry.coordinates[0][0],i=e.geometry.coordinates[0][1],a=e.geometry.coordinates[0][2],u=o.default(n,i,r),s=o.default(i,a,r),c=o.default(n,a,r);return u<=t&&s<=t&&c<=t})),c.features.length<1)return null;var l=s.default(c);return 1===l.coordinates.length&&(l.coordinates=l.coordinates[0],l.type="Polygon"),i.feature(l)}},878:function(e,r,t){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0});var o=n(t(565)),i=t(884),a=t(136),u=t(773),s=n(t(692)),c=n(t(387));r.default=function(e,r){if(void 0===r&&(r={}),r=r||{},!i.isObject(r))throw new Error("options is invalid");var t=r.mutate;if("FeatureCollection"!==a.getType(e))throw new Error("geojson must be a FeatureCollection");if(!e.features.length)throw new Error("geojson is empty");!1!==t&&void 0!==t||(e=o.default(e));var n=function(e){var r={};u.flattenEach(e,(function(e){r[e.geometry.type]=!0}));var t=Object.keys(r);return 1===t.length?t[0]:null}(e);if(!n)throw new Error("geojson must be homogenous");var l=e;switch(n){case"LineString":return s.default(l,r);case"Polygon":return c.default(l,r);default:throw new Error(n+" is not supported")}}},692:function(e,r,t){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0});var o=n(t(565)),i=t(884),a=t(136),u=t(773);function s(e){return e[0].toString()+","+e[1].toString()}r.default=function(e,r){if(void 0===r&&(r={}),r=r||{},!i.isObject(r))throw new Error("options is invalid");var t=r.mutate;if("FeatureCollection"!==a.getType(e))throw new Error("geojson must be a FeatureCollection");if(!e.features.length)throw new Error("geojson is empty");!1!==t&&void 0!==t||(e=o.default(e));var n=[],c=u.lineReduce(e,(function(e,r){return function(e,r){var t,n=e.geometry.coordinates,o=r.geometry.coordinates,a=s(n[0]),u=s(n[n.length-1]),c=s(o[0]),l=s(o[o.length-1]);if(a===l)t=o.concat(n.slice(1));else if(c===u)t=n.concat(o.slice(1));else if(a===c)t=n.slice(1).reverse().concat(o);else{if(u!==l)return null;t=n.concat(o.reverse().slice(1))}return i.lineString(t)}(e,r)||(n.push(e),r)}));return c&&n.push(c),n.length?1===n.length?n[0]:i.multiLineString(n.map((function(e){return e.coordinates}))):null}},387:function(e,r,t){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(r,"__esModule",{value:!0});var o=n(t(565)),i=t(884),a=t(136),u=t(773),s=t(76);r.default=function(e,r){if(void 0===r&&(r={}),"FeatureCollection"!==a.getType(e))throw new Error("geojson must be a FeatureCollection");if(!e.features.length)throw new Error("geojson is empty");!1!==r.mutate&&void 0!==r.mutate||(e=o.default(e));var t=[];u.flattenEach(e,(function(e){t.push(e.geometry)}));var n=s.topology({geoms:i.geometryCollection(t).geometry});return s.merge(n,n.objects.geoms.geometries)}},591:(e,r,t)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=t(136),o=t(884);r.default=function(e,r,t){void 0===t&&(t={});var i=n.getCoord(e),a=n.getCoord(r),u=o.degreesToRadians(a[1]-i[1]),s=o.degreesToRadians(a[0]-i[0]),c=o.degreesToRadians(i[1]),l=o.degreesToRadians(a[1]),f=Math.pow(Math.sin(u/2),2)+Math.pow(Math.sin(s/2),2)*Math.cos(c)*Math.cos(l);return o.radiansToLength(2*Math.atan2(Math.sqrt(f),Math.sqrt(1-f)),t.units)}},884:(e,r)=>{"use strict";function t(e,r,t){void 0===t&&(t={});var n={type:"Feature"};return(0===t.id||t.id)&&(n.id=t.id),t.bbox&&(n.bbox=t.bbox),n.properties=r||{},n.geometry=e,n}function n(e,r,n){if(void 0===n&&(n={}),!e)throw new Error("coordinates is required");if(!Array.isArray(e))throw new Error("coordinates must be an Array");if(e.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!h(e[0])||!h(e[1]))throw new Error("coordinates must contain numbers");return t({type:"Point",coordinates:e},r,n)}function o(e,r,n){void 0===n&&(n={});for(var o=0,i=e;o<i.length;o++){var a=i[o];if(a.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var u=0;u<a[a.length-1].length;u++)if(a[a.length-1][u]!==a[0][u])throw new Error("First and last Position are not equivalent.")}return t({type:"Polygon",coordinates:e},r,n)}function i(e,r,n){if(void 0===n&&(n={}),e.length<2)throw new Error("coordinates must be an array of two or more positions");return t({type:"LineString",coordinates:e},r,n)}function a(e,r){void 0===r&&(r={});var t={type:"FeatureCollection"};return r.id&&(t.id=r.id),r.bbox&&(t.bbox=r.bbox),t.features=e,t}function u(e,r,n){return void 0===n&&(n={}),t({type:"MultiLineString",coordinates:e},r,n)}function s(e,r,n){return void 0===n&&(n={}),t({type:"MultiPoint",coordinates:e},r,n)}function c(e,r,n){return void 0===n&&(n={}),t({type:"MultiPolygon",coordinates:e},r,n)}function l(e,t){void 0===t&&(t="kilometers");var n=r.factors[t];if(!n)throw new Error(t+" units is invalid");return e*n}function f(e,t){void 0===t&&(t="kilometers");var n=r.factors[t];if(!n)throw new Error(t+" units is invalid");return e/n}function d(e){return e%(2*Math.PI)*180/Math.PI}function h(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.earthRadius=6371008.8,r.factors={centimeters:100*r.earthRadius,centimetres:100*r.earthRadius,degrees:r.earthRadius/111325,feet:3.28084*r.earthRadius,inches:39.37*r.earthRadius,kilometers:r.earthRadius/1e3,kilometres:r.earthRadius/1e3,meters:r.earthRadius,metres:r.earthRadius,miles:r.earthRadius/1609.344,millimeters:1e3*r.earthRadius,millimetres:1e3*r.earthRadius,nauticalmiles:r.earthRadius/1852,radians:1,yards:r.earthRadius/1.0936},r.unitsFactors={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:.001,kilometres:.001,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/r.earthRadius,yards:1/1.0936},r.areaFactors={acres:247105e-9,centimeters:1e4,centimetres:1e4,feet:10.763910417,hectares:1e-4,inches:1550.003100006,kilometers:1e-6,kilometres:1e-6,meters:1,metres:1,miles:386e-9,millimeters:1e6,millimetres:1e6,yards:1.195990046},r.feature=t,r.geometry=function(e,r,t){switch(void 0===t&&(t={}),e){case"Point":return n(r).geometry;case"LineString":return i(r).geometry;case"Polygon":return o(r).geometry;case"MultiPoint":return s(r).geometry;case"MultiLineString":return u(r).geometry;case"MultiPolygon":return c(r).geometry;default:throw new Error(e+" is invalid")}},r.point=n,r.points=function(e,r,t){return void 0===t&&(t={}),a(e.map((function(e){return n(e,r)})),t)},r.polygon=o,r.polygons=function(e,r,t){return void 0===t&&(t={}),a(e.map((function(e){return o(e,r)})),t)},r.lineString=i,r.lineStrings=function(e,r,t){return void 0===t&&(t={}),a(e.map((function(e){return i(e,r)})),t)},r.featureCollection=a,r.multiLineString=u,r.multiPoint=s,r.multiPolygon=c,r.geometryCollection=function(e,r,n){return void 0===n&&(n={}),t({type:"GeometryCollection",geometries:e},r,n)},r.round=function(e,r){if(void 0===r&&(r=0),r&&!(r>=0))throw new Error("precision must be a positive number");var t=Math.pow(10,r||0);return Math.round(e*t)/t},r.radiansToLength=l,r.lengthToRadians=f,r.lengthToDegrees=function(e,r){return d(f(e,r))},r.bearingToAzimuth=function(e){var r=e%360;return r<0&&(r+=360),r},r.radiansToDegrees=d,r.degreesToRadians=function(e){return e%360*Math.PI/180},r.convertLength=function(e,r,t){if(void 0===r&&(r="kilometers"),void 0===t&&(t="kilometers"),!(e>=0))throw new Error("length must be a positive number");return l(f(e,r),t)},r.convertArea=function(e,t,n){if(void 0===t&&(t="meters"),void 0===n&&(n="kilometers"),!(e>=0))throw new Error("area must be a positive number");var o=r.areaFactors[t];if(!o)throw new Error("invalid original units");var i=r.areaFactors[n];if(!i)throw new Error("invalid final units");return e/o*i},r.isNumber=h,r.isObject=function(e){return!!e&&e.constructor===Object},r.validateBBox=function(e){if(!e)throw new Error("bbox is required");if(!Array.isArray(e))throw new Error("bbox must be an Array");if(4!==e.length&&6!==e.length)throw new Error("bbox must be an Array of 4 or 6 numbers");e.forEach((function(e){if(!h(e))throw new Error("bbox must only contain numbers")}))},r.validateId=function(e){if(!e)throw new Error("id is required");if(-1===["string","number"].indexOf(typeof e))throw new Error("id must be a number or a string")}},136:(e,r,t)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=t(884);r.getCoord=function(e){if(!e)throw new Error("coord is required");if(!Array.isArray(e)){if("Feature"===e.type&&null!==e.geometry&&"Point"===e.geometry.type)return e.geometry.coordinates;if("Point"===e.type)return e.coordinates}if(Array.isArray(e)&&e.length>=2&&!Array.isArray(e[0])&&!Array.isArray(e[1]))return e;throw new Error("coord must be GeoJSON Point or an Array of numbers")},r.getCoords=function(e){if(Array.isArray(e))return e;if("Feature"===e.type){if(null!==e.geometry)return e.geometry.coordinates}else if(e.coordinates)return e.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")},r.containsNumber=function e(r){if(r.length>1&&n.isNumber(r[0])&&n.isNumber(r[1]))return!0;if(Array.isArray(r[0])&&r[0].length)return e(r[0]);throw new Error("coordinates must only contain numbers")},r.geojsonType=function(e,r,t){if(!r||!t)throw new Error("type and name required");if(!e||e.type!==r)throw new Error("Invalid input to "+t+": must be a "+r+", given "+e.type)},r.featureOf=function(e,r,t){if(!e)throw new Error("No feature passed");if(!t)throw new Error(".featureOf() requires a name");if(!e||"Feature"!==e.type||!e.geometry)throw new Error("Invalid input to "+t+", Feature with geometry required");if(!e.geometry||e.geometry.type!==r)throw new Error("Invalid input to "+t+": must be a "+r+", given "+e.geometry.type)},r.collectionOf=function(e,r,t){if(!e)throw new Error("No featureCollection passed");if(!t)throw new Error(".collectionOf() requires a name");if(!e||"FeatureCollection"!==e.type)throw new Error("Invalid input to "+t+", FeatureCollection required");for(var n=0,o=e.features;n<o.length;n++){var i=o[n];if(!i||"Feature"!==i.type||!i.geometry)throw new Error("Invalid input to "+t+", Feature with geometry required");if(!i.geometry||i.geometry.type!==r)throw new Error("Invalid input to "+t+": must be a "+r+", given "+i.geometry.type)}},r.getGeom=function(e){return"Feature"===e.type?e.geometry:e},r.getType=function(e,r){return"FeatureCollection"===e.type?"FeatureCollection":"GeometryCollection"===e.type?"GeometryCollection":"Feature"===e.type&&null!==e.geometry?e.geometry.type:e.type}},773:(e,r,t)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=t(884);function o(e,r,t){if(null!==e)for(var n,i,a,u,s,c,l,f,d=0,h=0,g=e.type,m="FeatureCollection"===g,p="Feature"===g,y=m?e.features.length:1,v=0;v<y;v++){s=(f=!!(l=m?e.features[v].geometry:p?e.geometry:e)&&"GeometryCollection"===l.type)?l.geometries.length:1;for(var b=0;b<s;b++){var w=0,E=0;if(null!==(u=f?l.geometries[b]:l)){c=u.coordinates;var P=u.type;switch(d=!t||"Polygon"!==P&&"MultiPolygon"!==P?0:1,P){case null:break;case"Point":if(!1===r(c,h,v,w,E))return!1;h++,w++;break;case"LineString":case"MultiPoint":for(n=0;n<c.length;n++){if(!1===r(c[n],h,v,w,E))return!1;h++,"MultiPoint"===P&&w++}"LineString"===P&&w++;break;case"Polygon":case"MultiLineString":for(n=0;n<c.length;n++){for(i=0;i<c[n].length-d;i++){if(!1===r(c[n][i],h,v,w,E))return!1;h++}"MultiLineString"===P&&w++,"Polygon"===P&&E++}"Polygon"===P&&w++;break;case"MultiPolygon":for(n=0;n<c.length;n++){for(E=0,i=0;i<c[n].length;i++){for(a=0;a<c[n][i].length-d;a++){if(!1===r(c[n][i][a],h,v,w,E))return!1;h++}E++}w++}break;case"GeometryCollection":for(n=0;n<u.geometries.length;n++)if(!1===o(u.geometries[n],r,t))return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function i(e,r){var t;switch(e.type){case"FeatureCollection":for(t=0;t<e.features.length&&!1!==r(e.features[t].properties,t);t++);break;case"Feature":r(e.properties,0)}}function a(e,r){if("Feature"===e.type)r(e,0);else if("FeatureCollection"===e.type)for(var t=0;t<e.features.length&&!1!==r(e.features[t],t);t++);}function u(e,r){var t,n,o,i,a,u,s,c,l,f,d=0,h="FeatureCollection"===e.type,g="Feature"===e.type,m=h?e.features.length:1;for(t=0;t<m;t++){for(u=h?e.features[t].geometry:g?e.geometry:e,c=h?e.features[t].properties:g?e.properties:{},l=h?e.features[t].bbox:g?e.bbox:void 0,f=h?e.features[t].id:g?e.id:void 0,a=(s=!!u&&"GeometryCollection"===u.type)?u.geometries.length:1,o=0;o<a;o++)if(null!==(i=s?u.geometries[o]:u))switch(i.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":if(!1===r(i,d,c,l,f))return!1;break;case"GeometryCollection":for(n=0;n<i.geometries.length;n++)if(!1===r(i.geometries[n],d,c,l,f))return!1;break;default:throw new Error("Unknown Geometry Type")}else if(!1===r(null,d,c,l,f))return!1;d++}}function s(e,r){u(e,(function(e,t,o,i,a){var u,s=null===e?null:e.type;switch(s){case null:case"Point":case"LineString":case"Polygon":return!1!==r(n.feature(e,o,{bbox:i,id:a}),t,0)&&void 0}switch(s){case"MultiPoint":u="Point";break;case"MultiLineString":u="LineString";break;case"MultiPolygon":u="Polygon"}for(var c=0;c<e.coordinates.length;c++){var l={type:u,coordinates:e.coordinates[c]};if(!1===r(n.feature(l,o),t,c))return!1}}))}function c(e,r){s(e,(function(e,t,i){var a=0;if(e.geometry){var u=e.geometry.type;if("Point"!==u&&"MultiPoint"!==u){var s,c=0,l=0,f=0;return!1!==o(e,(function(o,u,d,h,g){if(void 0===s||t>c||h>l||g>f)return s=o,c=t,l=h,f=g,void(a=0);var m=n.lineString([s,o],e.properties);if(!1===r(m,t,i,g,a))return!1;a++,s=o}))&&void 0}}}))}function l(e,r){if(!e)throw new Error("geojson is required");s(e,(function(e,t,o){if(null!==e.geometry){var i=e.geometry.type,a=e.geometry.coordinates;switch(i){case"LineString":if(!1===r(e,t,o,0,0))return!1;break;case"Polygon":for(var u=0;u<a.length;u++)if(!1===r(n.lineString(a[u],e.properties),t,o,u))return!1}}}))}r.coordEach=o,r.coordReduce=function(e,r,t,n){var i=t;return o(e,(function(e,n,o,a,u){i=0===n&&void 0===t?e:r(i,e,n,o,a,u)}),n),i},r.propEach=i,r.propReduce=function(e,r,t){var n=t;return i(e,(function(e,o){n=0===o&&void 0===t?e:r(n,e,o)})),n},r.featureEach=a,r.featureReduce=function(e,r,t){var n=t;return a(e,(function(e,o){n=0===o&&void 0===t?e:r(n,e,o)})),n},r.coordAll=function(e){var r=[];return o(e,(function(e){r.push(e)})),r},r.geomEach=u,r.geomReduce=function(e,r,t){var n=t;return u(e,(function(e,o,i,a,u){n=0===o&&void 0===t?e:r(n,e,o,i,a,u)})),n},r.flattenEach=s,r.flattenReduce=function(e,r,t){var n=t;return s(e,(function(e,o,i){n=0===o&&0===i&&void 0===t?e:r(n,e,o,i)})),n},r.segmentEach=c,r.segmentReduce=function(e,r,t){var n=t,o=!1;return c(e,(function(e,i,a,u,s){n=!1===o&&void 0===t?e:r(n,e,i,a,u,s),o=!0})),n},r.lineEach=l,r.lineReduce=function(e,r,t){var n=t;return l(e,(function(e,o,i,a){n=0===o&&void 0===t?e:r(n,e,o,i,a)})),n},r.findSegment=function(e,r){if(r=r||{},!n.isObject(r))throw new Error("options is invalid");var t,o=r.featureIndex||0,i=r.multiFeatureIndex||0,a=r.geometryIndex||0,u=r.segmentIndex||0,s=r.properties;switch(e.type){case"FeatureCollection":o<0&&(o=e.features.length+o),s=s||e.features[o].properties,t=e.features[o].geometry;break;case"Feature":s=s||e.properties,t=e.geometry;break;case"Point":case"MultiPoint":return null;case"LineString":case"Polygon":case"MultiLineString":case"MultiPolygon":t=e;break;default:throw new Error("geojson is invalid")}if(null===t)return null;var c=t.coordinates;switch(t.type){case"Point":case"MultiPoint":return null;case"LineString":return u<0&&(u=c.length+u-1),n.lineString([c[u],c[u+1]],s,r);case"Polygon":return a<0&&(a=c.length+a),u<0&&(u=c[a].length+u-1),n.lineString([c[a][u],c[a][u+1]],s,r);case"MultiLineString":return i<0&&(i=c.length+i),u<0&&(u=c[i].length+u-1),n.lineString([c[i][u],c[i][u+1]],s,r);case"MultiPolygon":return i<0&&(i=c.length+i),a<0&&(a=c[i].length+a),u<0&&(u=c[i][a].length-u-1),n.lineString([c[i][a][u],c[i][a][u+1]],s,r)}throw new Error("geojson is invalid")},r.findPoint=function(e,r){if(r=r||{},!n.isObject(r))throw new Error("options is invalid");var t,o=r.featureIndex||0,i=r.multiFeatureIndex||0,a=r.geometryIndex||0,u=r.coordIndex||0,s=r.properties;switch(e.type){case"FeatureCollection":o<0&&(o=e.features.length+o),s=s||e.features[o].properties,t=e.features[o].geometry;break;case"Feature":s=s||e.properties,t=e.geometry;break;case"Point":case"MultiPoint":return null;case"LineString":case"Polygon":case"MultiLineString":case"MultiPolygon":t=e;break;default:throw new Error("geojson is invalid")}if(null===t)return null;var c=t.coordinates;switch(t.type){case"Point":return n.point(c,s,r);case"MultiPoint":return i<0&&(i=c.length+i),n.point(c[i],s,r);case"LineString":return u<0&&(u=c.length+u),n.point(c[u],s,r);case"Polygon":return a<0&&(a=c.length+a),u<0&&(u=c[a].length+u),n.point(c[a][u],s,r);case"MultiLineString":return i<0&&(i=c.length+i),u<0&&(u=c[i].length+u),n.point(c[i][u],s,r);case"MultiPolygon":return i<0&&(i=c.length+i),a<0&&(a=c[i].length+a),u<0&&(u=c[i][a].length-u),n.point(c[i][a][u],s,r)}throw new Error("geojson is invalid")}},131:(e,r,t)=>{"use strict";var n=t(963),o=t(975);r.Z=function(e,r,t){void 0===t&&(t={});var i=n.getCoord(e),a=n.getCoord(r),u=o.degreesToRadians(a[1]-i[1]),s=o.degreesToRadians(a[0]-i[0]),c=o.degreesToRadians(i[1]),l=o.degreesToRadians(a[1]),f=Math.pow(Math.sin(u/2),2)+Math.pow(Math.sin(s/2),2)*Math.cos(c)*Math.cos(l);return o.radiansToLength(2*Math.atan2(Math.sqrt(f),Math.sqrt(1-f)),t.units)}},975:(e,r)=>{"use strict";function t(e,r,t){void 0===t&&(t={});var n={type:"Feature"};return(0===t.id||t.id)&&(n.id=t.id),t.bbox&&(n.bbox=t.bbox),n.properties=r||{},n.geometry=e,n}function n(e,r,n){return void 0===n&&(n={}),t({type:"Point",coordinates:e},r,n)}function o(e,r,n){void 0===n&&(n={});for(var o=0,i=e;o<i.length;o++){var a=i[o];if(a.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var u=0;u<a[a.length-1].length;u++)if(a[a.length-1][u]!==a[0][u])throw new Error("First and last Position are not equivalent.")}return t({type:"Polygon",coordinates:e},r,n)}function i(e,r,n){if(void 0===n&&(n={}),e.length<2)throw new Error("coordinates must be an array of two or more positions");return t({type:"LineString",coordinates:e},r,n)}function a(e,r){void 0===r&&(r={});var t={type:"FeatureCollection"};return r.id&&(t.id=r.id),r.bbox&&(t.bbox=r.bbox),t.features=e,t}function u(e,r,n){return void 0===n&&(n={}),t({type:"MultiLineString",coordinates:e},r,n)}function s(e,r,n){return void 0===n&&(n={}),t({type:"MultiPoint",coordinates:e},r,n)}function c(e,r,n){return void 0===n&&(n={}),t({type:"MultiPolygon",coordinates:e},r,n)}function l(e,t){void 0===t&&(t="kilometers");var n=r.factors[t];if(!n)throw new Error(t+" units is invalid");return e*n}function f(e,t){void 0===t&&(t="kilometers");var n=r.factors[t];if(!n)throw new Error(t+" units is invalid");return e/n}function d(e){return e%(2*Math.PI)*180/Math.PI}function h(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)&&!/^\s*$/.test(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.earthRadius=6371008.8,r.factors={centimeters:100*r.earthRadius,centimetres:100*r.earthRadius,degrees:r.earthRadius/111325,feet:3.28084*r.earthRadius,inches:39.37*r.earthRadius,kilometers:r.earthRadius/1e3,kilometres:r.earthRadius/1e3,meters:r.earthRadius,metres:r.earthRadius,miles:r.earthRadius/1609.344,millimeters:1e3*r.earthRadius,millimetres:1e3*r.earthRadius,nauticalmiles:r.earthRadius/1852,radians:1,yards:r.earthRadius/1.0936},r.unitsFactors={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:.001,kilometres:.001,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/r.earthRadius,yards:1/1.0936},r.areaFactors={acres:247105e-9,centimeters:1e4,centimetres:1e4,feet:10.763910417,inches:1550.003100006,kilometers:1e-6,kilometres:1e-6,meters:1,metres:1,miles:386e-9,millimeters:1e6,millimetres:1e6,yards:1.195990046},r.feature=t,r.geometry=function(e,r,t){switch(void 0===t&&(t={}),e){case"Point":return n(r).geometry;case"LineString":return i(r).geometry;case"Polygon":return o(r).geometry;case"MultiPoint":return s(r).geometry;case"MultiLineString":return u(r).geometry;case"MultiPolygon":return c(r).geometry;default:throw new Error(e+" is invalid")}},r.point=n,r.points=function(e,r,t){return void 0===t&&(t={}),a(e.map((function(e){return n(e,r)})),t)},r.polygon=o,r.polygons=function(e,r,t){return void 0===t&&(t={}),a(e.map((function(e){return o(e,r)})),t)},r.lineString=i,r.lineStrings=function(e,r,t){return void 0===t&&(t={}),a(e.map((function(e){return i(e,r)})),t)},r.featureCollection=a,r.multiLineString=u,r.multiPoint=s,r.multiPolygon=c,r.geometryCollection=function(e,r,n){return void 0===n&&(n={}),t({type:"GeometryCollection",geometries:e},r,n)},r.round=function(e,r){if(void 0===r&&(r=0),r&&!(r>=0))throw new Error("precision must be a positive number");var t=Math.pow(10,r||0);return Math.round(e*t)/t},r.radiansToLength=l,r.lengthToRadians=f,r.lengthToDegrees=function(e,r){return d(f(e,r))},r.bearingToAzimuth=function(e){var r=e%360;return r<0&&(r+=360),r},r.radiansToDegrees=d,r.degreesToRadians=function(e){return e%360*Math.PI/180},r.convertLength=function(e,r,t){if(void 0===r&&(r="kilometers"),void 0===t&&(t="kilometers"),!(e>=0))throw new Error("length must be a positive number");return l(f(e,r),t)},r.convertArea=function(e,t,n){if(void 0===t&&(t="meters"),void 0===n&&(n="kilometers"),!(e>=0))throw new Error("area must be a positive number");var o=r.areaFactors[t];if(!o)throw new Error("invalid original units");var i=r.areaFactors[n];if(!i)throw new Error("invalid final units");return e/o*i},r.isNumber=h,r.isObject=function(e){return!!e&&e.constructor===Object},r.validateBBox=function(e){if(!e)throw new Error("bbox is required");if(!Array.isArray(e))throw new Error("bbox must be an Array");if(4!==e.length&&6!==e.length)throw new Error("bbox must be an Array of 4 or 6 numbers");e.forEach((function(e){if(!h(e))throw new Error("bbox must only contain numbers")}))},r.validateId=function(e){if(!e)throw new Error("id is required");if(-1===["string","number"].indexOf(typeof e))throw new Error("id must be a number or a string")},r.radians2degrees=function(){throw new Error("method has been renamed to `radiansToDegrees`")},r.degrees2radians=function(){throw new Error("method has been renamed to `degreesToRadians`")},r.distanceToDegrees=function(){throw new Error("method has been renamed to `lengthToDegrees`")},r.distanceToRadians=function(){throw new Error("method has been renamed to `lengthToRadians`")},r.radiansToDistance=function(){throw new Error("method has been renamed to `radiansToLength`")},r.bearingToAngle=function(){throw new Error("method has been renamed to `bearingToAzimuth`")},r.convertDistance=function(){throw new Error("method has been renamed to `convertLength`")}},922:(e,r,t)=>{"use strict";var n=t(540),o=t(102);e.exports=function(e){var r=[];return"FeatureCollection"===e.type?n.featureEach(e,(function(e){n.coordEach(e,(function(t){r.push(o.point(t,e.properties))}))})):n.coordEach(e,(function(t){r.push(o.point(t,e.properties))})),o.featureCollection(r)}},102:(e,r)=>{"use strict";function t(e,r,t){void 0===t&&(t={});var n={type:"Feature"};return(0===t.id||t.id)&&(n.id=t.id),t.bbox&&(n.bbox=t.bbox),n.properties=r||{},n.geometry=e,n}function n(e,r,n){if(void 0===n&&(n={}),!e)throw new Error("coordinates is required");if(!Array.isArray(e))throw new Error("coordinates must be an Array");if(e.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!h(e[0])||!h(e[1]))throw new Error("coordinates must contain numbers");return t({type:"Point",coordinates:e},r,n)}function o(e,r,n){void 0===n&&(n={});for(var o=0,i=e;o<i.length;o++){var a=i[o];if(a.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var u=0;u<a[a.length-1].length;u++)if(a[a.length-1][u]!==a[0][u])throw new Error("First and last Position are not equivalent.")}return t({type:"Polygon",coordinates:e},r,n)}function i(e,r,n){if(void 0===n&&(n={}),e.length<2)throw new Error("coordinates must be an array of two or more positions");return t({type:"LineString",coordinates:e},r,n)}function a(e,r){void 0===r&&(r={});var t={type:"FeatureCollection"};return r.id&&(t.id=r.id),r.bbox&&(t.bbox=r.bbox),t.features=e,t}function u(e,r,n){return void 0===n&&(n={}),t({type:"MultiLineString",coordinates:e},r,n)}function s(e,r,n){return void 0===n&&(n={}),t({type:"MultiPoint",coordinates:e},r,n)}function c(e,r,n){return void 0===n&&(n={}),t({type:"MultiPolygon",coordinates:e},r,n)}function l(e,t){void 0===t&&(t="kilometers");var n=r.factors[t];if(!n)throw new Error(t+" units is invalid");return e*n}function f(e,t){void 0===t&&(t="kilometers");var n=r.factors[t];if(!n)throw new Error(t+" units is invalid");return e/n}function d(e){return e%(2*Math.PI)*180/Math.PI}function h(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.earthRadius=6371008.8,r.factors={centimeters:100*r.earthRadius,centimetres:100*r.earthRadius,degrees:r.earthRadius/111325,feet:3.28084*r.earthRadius,inches:39.37*r.earthRadius,kilometers:r.earthRadius/1e3,kilometres:r.earthRadius/1e3,meters:r.earthRadius,metres:r.earthRadius,miles:r.earthRadius/1609.344,millimeters:1e3*r.earthRadius,millimetres:1e3*r.earthRadius,nauticalmiles:r.earthRadius/1852,radians:1,yards:r.earthRadius/1.0936},r.unitsFactors={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:.001,kilometres:.001,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/r.earthRadius,yards:1/1.0936},r.areaFactors={acres:247105e-9,centimeters:1e4,centimetres:1e4,feet:10.763910417,hectares:1e-4,inches:1550.003100006,kilometers:1e-6,kilometres:1e-6,meters:1,metres:1,miles:386e-9,millimeters:1e6,millimetres:1e6,yards:1.195990046},r.feature=t,r.geometry=function(e,r,t){switch(void 0===t&&(t={}),e){case"Point":return n(r).geometry;case"LineString":return i(r).geometry;case"Polygon":return o(r).geometry;case"MultiPoint":return s(r).geometry;case"MultiLineString":return u(r).geometry;case"MultiPolygon":return c(r).geometry;default:throw new Error(e+" is invalid")}},r.point=n,r.points=function(e,r,t){return void 0===t&&(t={}),a(e.map((function(e){return n(e,r)})),t)},r.polygon=o,r.polygons=function(e,r,t){return void 0===t&&(t={}),a(e.map((function(e){return o(e,r)})),t)},r.lineString=i,r.lineStrings=function(e,r,t){return void 0===t&&(t={}),a(e.map((function(e){return i(e,r)})),t)},r.featureCollection=a,r.multiLineString=u,r.multiPoint=s,r.multiPolygon=c,r.geometryCollection=function(e,r,n){return void 0===n&&(n={}),t({type:"GeometryCollection",geometries:e},r,n)},r.round=function(e,r){if(void 0===r&&(r=0),r&&!(r>=0))throw new Error("precision must be a positive number");var t=Math.pow(10,r||0);return Math.round(e*t)/t},r.radiansToLength=l,r.lengthToRadians=f,r.lengthToDegrees=function(e,r){return d(f(e,r))},r.bearingToAzimuth=function(e){var r=e%360;return r<0&&(r+=360),r},r.radiansToDegrees=d,r.degreesToRadians=function(e){return e%360*Math.PI/180},r.convertLength=function(e,r,t){if(void 0===r&&(r="kilometers"),void 0===t&&(t="kilometers"),!(e>=0))throw new Error("length must be a positive number");return l(f(e,r),t)},r.convertArea=function(e,t,n){if(void 0===t&&(t="meters"),void 0===n&&(n="kilometers"),!(e>=0))throw new Error("area must be a positive number");var o=r.areaFactors[t];if(!o)throw new Error("invalid original units");var i=r.areaFactors[n];if(!i)throw new Error("invalid final units");return e/o*i},r.isNumber=h,r.isObject=function(e){return!!e&&e.constructor===Object},r.validateBBox=function(e){if(!e)throw new Error("bbox is required");if(!Array.isArray(e))throw new Error("bbox must be an Array");if(4!==e.length&&6!==e.length)throw new Error("bbox must be an Array of 4 or 6 numbers");e.forEach((function(e){if(!h(e))throw new Error("bbox must only contain numbers")}))},r.validateId=function(e){if(!e)throw new Error("id is required");if(-1===["string","number"].indexOf(typeof e))throw new Error("id must be a number or a string")}},963:(e,r,t)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=t(890);r.getCoord=function(e){if(!e)throw new Error("coord is required");if(!Array.isArray(e)){if("Feature"===e.type&&null!==e.geometry&&"Point"===e.geometry.type)return e.geometry.coordinates;if("Point"===e.type)return e.coordinates}if(Array.isArray(e)&&e.length>=2&&!Array.isArray(e[0])&&!Array.isArray(e[1]))return e;throw new Error("coord must be GeoJSON Point or an Array of numbers")},r.getCoords=function(e){if(Array.isArray(e))return e;if("Feature"===e.type){if(null!==e.geometry)return e.geometry.coordinates}else if(e.coordinates)return e.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")},r.containsNumber=function e(r){if(r.length>1&&n.isNumber(r[0])&&n.isNumber(r[1]))return!0;if(Array.isArray(r[0])&&r[0].length)return e(r[0]);throw new Error("coordinates must only contain numbers")},r.geojsonType=function(e,r,t){if(!r||!t)throw new Error("type and name required");if(!e||e.type!==r)throw new Error("Invalid input to "+t+": must be a "+r+", given "+e.type)},r.featureOf=function(e,r,t){if(!e)throw new Error("No feature passed");if(!t)throw new Error(".featureOf() requires a name");if(!e||"Feature"!==e.type||!e.geometry)throw new Error("Invalid input to "+t+", Feature with geometry required");if(!e.geometry||e.geometry.type!==r)throw new Error("Invalid input to "+t+": must be a "+r+", given "+e.geometry.type)},r.collectionOf=function(e,r,t){if(!e)throw new Error("No featureCollection passed");if(!t)throw new Error(".collectionOf() requires a name");if(!e||"FeatureCollection"!==e.type)throw new Error("Invalid input to "+t+", FeatureCollection required");for(var n=0,o=e.features;n<o.length;n++){var i=o[n];if(!i||"Feature"!==i.type||!i.geometry)throw new Error("Invalid input to "+t+", Feature with geometry required");if(!i.geometry||i.geometry.type!==r)throw new Error("Invalid input to "+t+": must be a "+r+", given "+i.geometry.type)}},r.getGeom=function(e){return"Feature"===e.type?e.geometry:e},r.getType=function(e,r){return"FeatureCollection"===e.type?"FeatureCollection":"GeometryCollection"===e.type?"GeometryCollection":"Feature"===e.type&&null!==e.geometry?e.geometry.type:e.type}},890:(e,r)=>{"use strict";function t(e,r,t){void 0===t&&(t={});var n={type:"Feature"};return(0===t.id||t.id)&&(n.id=t.id),t.bbox&&(n.bbox=t.bbox),n.properties=r||{},n.geometry=e,n}function n(e,r,n){return void 0===n&&(n={}),t({type:"Point",coordinates:e},r,n)}function o(e,r,n){void 0===n&&(n={});for(var o=0,i=e;o<i.length;o++){var a=i[o];if(a.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var u=0;u<a[a.length-1].length;u++)if(a[a.length-1][u]!==a[0][u])throw new Error("First and last Position are not equivalent.")}return t({type:"Polygon",coordinates:e},r,n)}function i(e,r,n){if(void 0===n&&(n={}),e.length<2)throw new Error("coordinates must be an array of two or more positions");return t({type:"LineString",coordinates:e},r,n)}function a(e,r){void 0===r&&(r={});var t={type:"FeatureCollection"};return r.id&&(t.id=r.id),r.bbox&&(t.bbox=r.bbox),t.features=e,t}function u(e,r,n){return void 0===n&&(n={}),t({type:"MultiLineString",coordinates:e},r,n)}function s(e,r,n){return void 0===n&&(n={}),t({type:"MultiPoint",coordinates:e},r,n)}function c(e,r,n){return void 0===n&&(n={}),t({type:"MultiPolygon",coordinates:e},r,n)}function l(e,t){void 0===t&&(t="kilometers");var n=r.factors[t];if(!n)throw new Error(t+" units is invalid");return e*n}function f(e,t){void 0===t&&(t="kilometers");var n=r.factors[t];if(!n)throw new Error(t+" units is invalid");return e/n}function d(e){return e%(2*Math.PI)*180/Math.PI}function h(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)&&!/^\s*$/.test(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.earthRadius=6371008.8,r.factors={centimeters:100*r.earthRadius,centimetres:100*r.earthRadius,degrees:r.earthRadius/111325,feet:3.28084*r.earthRadius,inches:39.37*r.earthRadius,kilometers:r.earthRadius/1e3,kilometres:r.earthRadius/1e3,meters:r.earthRadius,metres:r.earthRadius,miles:r.earthRadius/1609.344,millimeters:1e3*r.earthRadius,millimetres:1e3*r.earthRadius,nauticalmiles:r.earthRadius/1852,radians:1,yards:r.earthRadius/1.0936},r.unitsFactors={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:.001,kilometres:.001,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/r.earthRadius,yards:1/1.0936},r.areaFactors={acres:247105e-9,centimeters:1e4,centimetres:1e4,feet:10.763910417,inches:1550.003100006,kilometers:1e-6,kilometres:1e-6,meters:1,metres:1,miles:386e-9,millimeters:1e6,millimetres:1e6,yards:1.195990046},r.feature=t,r.geometry=function(e,r,t){switch(void 0===t&&(t={}),e){case"Point":return n(r).geometry;case"LineString":return i(r).geometry;case"Polygon":return o(r).geometry;case"MultiPoint":return s(r).geometry;case"MultiLineString":return u(r).geometry;case"MultiPolygon":return c(r).geometry;default:throw new Error(e+" is invalid")}},r.point=n,r.points=function(e,r,t){return void 0===t&&(t={}),a(e.map((function(e){return n(e,r)})),t)},r.polygon=o,r.polygons=function(e,r,t){return void 0===t&&(t={}),a(e.map((function(e){return o(e,r)})),t)},r.lineString=i,r.lineStrings=function(e,r,t){return void 0===t&&(t={}),a(e.map((function(e){return i(e,r)})),t)},r.featureCollection=a,r.multiLineString=u,r.multiPoint=s,r.multiPolygon=c,r.geometryCollection=function(e,r,n){return void 0===n&&(n={}),t({type:"GeometryCollection",geometries:e},r,n)},r.round=function(e,r){if(void 0===r&&(r=0),r&&!(r>=0))throw new Error("precision must be a positive number");var t=Math.pow(10,r||0);return Math.round(e*t)/t},r.radiansToLength=l,r.lengthToRadians=f,r.lengthToDegrees=function(e,r){return d(f(e,r))},r.bearingToAzimuth=function(e){var r=e%360;return r<0&&(r+=360),r},r.radiansToDegrees=d,r.degreesToRadians=function(e){return e%360*Math.PI/180},r.convertLength=function(e,r,t){if(void 0===r&&(r="kilometers"),void 0===t&&(t="kilometers"),!(e>=0))throw new Error("length must be a positive number");return l(f(e,r),t)},r.convertArea=function(e,t,n){if(void 0===t&&(t="meters"),void 0===n&&(n="kilometers"),!(e>=0))throw new Error("area must be a positive number");var o=r.areaFactors[t];if(!o)throw new Error("invalid original units");var i=r.areaFactors[n];if(!i)throw new Error("invalid final units");return e/o*i},r.isNumber=h,r.isObject=function(e){return!!e&&e.constructor===Object},r.validateBBox=function(e){if(!e)throw new Error("bbox is required");if(!Array.isArray(e))throw new Error("bbox must be an Array");if(4!==e.length&&6!==e.length)throw new Error("bbox must be an Array of 4 or 6 numbers");e.forEach((function(e){if(!h(e))throw new Error("bbox must only contain numbers")}))},r.validateId=function(e){if(!e)throw new Error("id is required");if(-1===["string","number"].indexOf(typeof e))throw new Error("id must be a number or a string")},r.radians2degrees=function(){throw new Error("method has been renamed to `radiansToDegrees`")},r.degrees2radians=function(){throw new Error("method has been renamed to `degreesToRadians`")},r.distanceToDegrees=function(){throw new Error("method has been renamed to `lengthToDegrees`")},r.distanceToRadians=function(){throw new Error("method has been renamed to `lengthToRadians`")},r.radiansToDistance=function(){throw new Error("method has been renamed to `radiansToLength`")},r.bearingToAngle=function(){throw new Error("method has been renamed to `bearingToAzimuth`")},r.convertDistance=function(){throw new Error("method has been renamed to `convertLength`")}},540:(e,r,t)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=t(102);function o(e,r,t){if(null!==e)for(var n,i,a,u,s,c,l,f,d=0,h=0,g=e.type,m="FeatureCollection"===g,p="Feature"===g,y=m?e.features.length:1,v=0;v<y;v++){s=(f=!!(l=m?e.features[v].geometry:p?e.geometry:e)&&"GeometryCollection"===l.type)?l.geometries.length:1;for(var b=0;b<s;b++){var w=0,E=0;if(null!==(u=f?l.geometries[b]:l)){c=u.coordinates;var P=u.type;switch(d=!t||"Polygon"!==P&&"MultiPolygon"!==P?0:1,P){case null:break;case"Point":if(!1===r(c,h,v,w,E))return!1;h++,w++;break;case"LineString":case"MultiPoint":for(n=0;n<c.length;n++){if(!1===r(c[n],h,v,w,E))return!1;h++,"MultiPoint"===P&&w++}"LineString"===P&&w++;break;case"Polygon":case"MultiLineString":for(n=0;n<c.length;n++){for(i=0;i<c[n].length-d;i++){if(!1===r(c[n][i],h,v,w,E))return!1;h++}"MultiLineString"===P&&w++,"Polygon"===P&&E++}"Polygon"===P&&w++;break;case"MultiPolygon":for(n=0;n<c.length;n++){for(E=0,i=0;i<c[n].length;i++){for(a=0;a<c[n][i].length-d;a++){if(!1===r(c[n][i][a],h,v,w,E))return!1;h++}E++}w++}break;case"GeometryCollection":for(n=0;n<u.geometries.length;n++)if(!1===o(u.geometries[n],r,t))return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function i(e,r){var t;switch(e.type){case"FeatureCollection":for(t=0;t<e.features.length&&!1!==r(e.features[t].properties,t);t++);break;case"Feature":r(e.properties,0)}}function a(e,r){if("Feature"===e.type)r(e,0);else if("FeatureCollection"===e.type)for(var t=0;t<e.features.length&&!1!==r(e.features[t],t);t++);}function u(e,r){var t,n,o,i,a,u,s,c,l,f,d=0,h="FeatureCollection"===e.type,g="Feature"===e.type,m=h?e.features.length:1;for(t=0;t<m;t++){for(u=h?e.features[t].geometry:g?e.geometry:e,c=h?e.features[t].properties:g?e.properties:{},l=h?e.features[t].bbox:g?e.bbox:void 0,f=h?e.features[t].id:g?e.id:void 0,a=(s=!!u&&"GeometryCollection"===u.type)?u.geometries.length:1,o=0;o<a;o++)if(null!==(i=s?u.geometries[o]:u))switch(i.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":if(!1===r(i,d,c,l,f))return!1;break;case"GeometryCollection":for(n=0;n<i.geometries.length;n++)if(!1===r(i.geometries[n],d,c,l,f))return!1;break;default:throw new Error("Unknown Geometry Type")}else if(!1===r(null,d,c,l,f))return!1;d++}}function s(e,r){u(e,(function(e,t,o,i,a){var u,s=null===e?null:e.type;switch(s){case null:case"Point":case"LineString":case"Polygon":return!1!==r(n.feature(e,o,{bbox:i,id:a}),t,0)&&void 0}switch(s){case"MultiPoint":u="Point";break;case"MultiLineString":u="LineString";break;case"MultiPolygon":u="Polygon"}for(var c=0;c<e.coordinates.length;c++){var l={type:u,coordinates:e.coordinates[c]};if(!1===r(n.feature(l,o),t,c))return!1}}))}function c(e,r){s(e,(function(e,t,i){var a=0;if(e.geometry){var u=e.geometry.type;if("Point"!==u&&"MultiPoint"!==u){var s,c=0,l=0,f=0;return!1!==o(e,(function(o,u,d,h,g){if(void 0===s||t>c||h>l||g>f)return s=o,c=t,l=h,f=g,void(a=0);var m=n.lineString([s,o],e.properties);if(!1===r(m,t,i,g,a))return!1;a++,s=o}))&&void 0}}}))}function l(e,r){if(!e)throw new Error("geojson is required");s(e,(function(e,t,o){if(null!==e.geometry){var i=e.geometry.type,a=e.geometry.coordinates;switch(i){case"LineString":if(!1===r(e,t,o,0,0))return!1;break;case"Polygon":for(var u=0;u<a.length;u++)if(!1===r(n.lineString(a[u],e.properties),t,o,u))return!1}}}))}r.coordEach=o,r.coordReduce=function(e,r,t,n){var i=t;return o(e,(function(e,n,o,a,u){i=0===n&&void 0===t?e:r(i,e,n,o,a,u)}),n),i},r.propEach=i,r.propReduce=function(e,r,t){var n=t;return i(e,(function(e,o){n=0===o&&void 0===t?e:r(n,e,o)})),n},r.featureEach=a,r.featureReduce=function(e,r,t){var n=t;return a(e,(function(e,o){n=0===o&&void 0===t?e:r(n,e,o)})),n},r.coordAll=function(e){var r=[];return o(e,(function(e){r.push(e)})),r},r.geomEach=u,r.geomReduce=function(e,r,t){var n=t;return u(e,(function(e,o,i,a,u){n=0===o&&void 0===t?e:r(n,e,o,i,a,u)})),n},r.flattenEach=s,r.flattenReduce=function(e,r,t){var n=t;return s(e,(function(e,o,i){n=0===o&&0===i&&void 0===t?e:r(n,e,o,i)})),n},r.segmentEach=c,r.segmentReduce=function(e,r,t){var n=t,o=!1;return c(e,(function(e,i,a,u,s){n=!1===o&&void 0===t?e:r(n,e,i,a,u,s),o=!0})),n},r.lineEach=l,r.lineReduce=function(e,r,t){var n=t;return l(e,(function(e,o,i,a){n=0===o&&void 0===t?e:r(n,e,o,i,a)})),n},r.findSegment=function(e,r){if(r=r||{},!n.isObject(r))throw new Error("options is invalid");var t,o=r.featureIndex||0,i=r.multiFeatureIndex||0,a=r.geometryIndex||0,u=r.segmentIndex||0,s=r.properties;switch(e.type){case"FeatureCollection":o<0&&(o=e.features.length+o),s=s||e.features[o].properties,t=e.features[o].geometry;break;case"Feature":s=s||e.properties,t=e.geometry;break;case"Point":case"MultiPoint":return null;case"LineString":case"Polygon":case"MultiLineString":case"MultiPolygon":t=e;break;default:throw new Error("geojson is invalid")}if(null===t)return null;var c=t.coordinates;switch(t.type){case"Point":case"MultiPoint":return null;case"LineString":return u<0&&(u=c.length+u-1),n.lineString([c[u],c[u+1]],s,r);case"Polygon":return a<0&&(a=c.length+a),u<0&&(u=c[a].length+u-1),n.lineString([c[a][u],c[a][u+1]],s,r);case"MultiLineString":return i<0&&(i=c.length+i),u<0&&(u=c[i].length+u-1),n.lineString([c[i][u],c[i][u+1]],s,r);case"MultiPolygon":return i<0&&(i=c.length+i),a<0&&(a=c[i].length+a),u<0&&(u=c[i][a].length-u-1),n.lineString([c[i][a][u],c[i][a][u+1]],s,r)}throw new Error("geojson is invalid")},r.findPoint=function(e,r){if(r=r||{},!n.isObject(r))throw new Error("options is invalid");var t,o=r.featureIndex||0,i=r.multiFeatureIndex||0,a=r.geometryIndex||0,u=r.coordIndex||0,s=r.properties;switch(e.type){case"FeatureCollection":o<0&&(o=e.features.length+o),s=s||e.features[o].properties,t=e.features[o].geometry;break;case"Feature":s=s||e.properties,t=e.geometry;break;case"Point":case"MultiPoint":return null;case"LineString":case"Polygon":case"MultiLineString":case"MultiPolygon":t=e;break;default:throw new Error("geojson is invalid")}if(null===t)return null;var c=t.coordinates;switch(t.type){case"Point":return n.point(c,s,r);case"MultiPoint":return i<0&&(i=c.length+i),n.point(c[i],s,r);case"LineString":return u<0&&(u=c.length+u),n.point(c[u],s,r);case"Polygon":return a<0&&(a=c.length+a),u<0&&(u=c[a].length+u),n.point(c[a][u],s,r);case"MultiLineString":return i<0&&(i=c.length+i),u<0&&(u=c[i].length+u),n.point(c[i][u],s,r);case"MultiPolygon":return i<0&&(i=c.length+i),a<0&&(a=c[i].length+a),u<0&&(u=c[i][a].length-u),n.point(c[i][a][u],s,r)}throw new Error("geojson is invalid")}},829:(e,r,t)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=t(172);r.default=function(e,r){var t=!1;return n.featureCollection(function(e){if(e.length<3)return[];e.sort(i);for(var r,t,n,u,s,c,l=e.length-1,f=e[l].x,d=e[0].x,h=e[l].y,g=h;l--;)e[l].y<h&&(h=e[l].y),e[l].y>g&&(g=e[l].y);var m,p=d-f,y=g-h,v=p>y?p:y,b=.5*(d+f),w=.5*(g+h),E=[new o({__sentinel:!0,x:b-20*v,y:w-v},{__sentinel:!0,x:b,y:w+20*v},{__sentinel:!0,x:b+20*v,y:w-v})],P=[],M=[];for(l=e.length;l--;){for(M.length=0,m=E.length;m--;)(p=e[l].x-E[m].x)>0&&p*p>E[m].r?(P.push(E[m]),E.splice(m,1)):p*p+(y=e[l].y-E[m].y)*y>E[m].r||(M.push(E[m].a,E[m].b,E[m].b,E[m].c,E[m].c,E[m].a),E.splice(m,1));for(a(M),m=M.length;m;)t=M[--m],r=M[--m],n=e[l],u=t.x-r.x,s=t.y-r.y,c=2*(u*(n.y-t.y)-s*(n.x-t.x)),Math.abs(c)>1e-12&&E.push(new o(r,t,n))}for(Array.prototype.push.apply(P,E),l=P.length;l--;)(P[l].a.__sentinel||P[l].b.__sentinel||P[l].c.__sentinel)&&P.splice(l,1);return P}(e.features.map((function(e){var n={x:e.geometry.coordinates[0],y:e.geometry.coordinates[1]};return r?n.z=e.properties[r]:3===e.geometry.coordinates.length&&(t=!0,n.z=e.geometry.coordinates[2]),n}))).map((function(e){var r=[e.a.x,e.a.y],o=[e.b.x,e.b.y],i=[e.c.x,e.c.y],a={};return t?(r.push(e.a.z),o.push(e.b.z),i.push(e.c.z)):a={a:e.a.z,b:e.b.z,c:e.c.z},n.polygon([[r,o,i,r]],a)})))};var o=function(e,r,t){this.a=e,this.b=r,this.c=t;var n,o,i=r.x-e.x,a=r.y-e.y,u=t.x-e.x,s=t.y-e.y,c=i*(e.x+r.x)+a*(e.y+r.y),l=u*(e.x+t.x)+s*(e.y+t.y),f=2*(i*(t.y-r.y)-a*(t.x-r.x));this.x=(s*c-a*l)/f,this.y=(i*l-u*c)/f,n=this.x-e.x,o=this.y-e.y,this.r=n*n+o*o};function i(e,r){return r.x-e.x}function a(e){var r,t,n,o,i,a=e.length;e:for(;a;)for(t=e[--a],r=e[--a],n=a;n;)if(i=e[--n],r===(o=e[--n])&&t===i||r===i&&t===o){e.splice(a,2),e.splice(n,2),a-=2;continue e}}},172:(e,r)=>{"use strict";function t(e,r,t){void 0===t&&(t={});var n={type:"Feature"};return(0===t.id||t.id)&&(n.id=t.id),t.bbox&&(n.bbox=t.bbox),n.properties=r||{},n.geometry=e,n}function n(e,r,n){if(void 0===n&&(n={}),!e)throw new Error("coordinates is required");if(!Array.isArray(e))throw new Error("coordinates must be an Array");if(e.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!h(e[0])||!h(e[1]))throw new Error("coordinates must contain numbers");return t({type:"Point",coordinates:e},r,n)}function o(e,r,n){void 0===n&&(n={});for(var o=0,i=e;o<i.length;o++){var a=i[o];if(a.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var u=0;u<a[a.length-1].length;u++)if(a[a.length-1][u]!==a[0][u])throw new Error("First and last Position are not equivalent.")}return t({type:"Polygon",coordinates:e},r,n)}function i(e,r,n){if(void 0===n&&(n={}),e.length<2)throw new Error("coordinates must be an array of two or more positions");return t({type:"LineString",coordinates:e},r,n)}function a(e,r){void 0===r&&(r={});var t={type:"FeatureCollection"};return r.id&&(t.id=r.id),r.bbox&&(t.bbox=r.bbox),t.features=e,t}function u(e,r,n){return void 0===n&&(n={}),t({type:"MultiLineString",coordinates:e},r,n)}function s(e,r,n){return void 0===n&&(n={}),t({type:"MultiPoint",coordinates:e},r,n)}function c(e,r,n){return void 0===n&&(n={}),t({type:"MultiPolygon",coordinates:e},r,n)}function l(e,t){void 0===t&&(t="kilometers");var n=r.factors[t];if(!n)throw new Error(t+" units is invalid");return e*n}function f(e,t){void 0===t&&(t="kilometers");var n=r.factors[t];if(!n)throw new Error(t+" units is invalid");return e/n}function d(e){return e%(2*Math.PI)*180/Math.PI}function h(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.earthRadius=6371008.8,r.factors={centimeters:100*r.earthRadius,centimetres:100*r.earthRadius,degrees:r.earthRadius/111325,feet:3.28084*r.earthRadius,inches:39.37*r.earthRadius,kilometers:r.earthRadius/1e3,kilometres:r.earthRadius/1e3,meters:r.earthRadius,metres:r.earthRadius,miles:r.earthRadius/1609.344,millimeters:1e3*r.earthRadius,millimetres:1e3*r.earthRadius,nauticalmiles:r.earthRadius/1852,radians:1,yards:r.earthRadius/1.0936},r.unitsFactors={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:.001,kilometres:.001,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/r.earthRadius,yards:1/1.0936},r.areaFactors={acres:247105e-9,centimeters:1e4,centimetres:1e4,feet:10.763910417,hectares:1e-4,inches:1550.003100006,kilometers:1e-6,kilometres:1e-6,meters:1,metres:1,miles:386e-9,millimeters:1e6,millimetres:1e6,yards:1.195990046},r.feature=t,r.geometry=function(e,r,t){switch(void 0===t&&(t={}),e){case"Point":return n(r).geometry;case"LineString":return i(r).geometry;case"Polygon":return o(r).geometry;case"MultiPoint":return s(r).geometry;case"MultiLineString":return u(r).geometry;case"MultiPolygon":return c(r).geometry;default:throw new Error(e+" is invalid")}},r.point=n,r.points=function(e,r,t){return void 0===t&&(t={}),a(e.map((function(e){return n(e,r)})),t)},r.polygon=o,r.polygons=function(e,r,t){return void 0===t&&(t={}),a(e.map((function(e){return o(e,r)})),t)},r.lineString=i,r.lineStrings=function(e,r,t){return void 0===t&&(t={}),a(e.map((function(e){return i(e,r)})),t)},r.featureCollection=a,r.multiLineString=u,r.multiPoint=s,r.multiPolygon=c,r.geometryCollection=function(e,r,n){return void 0===n&&(n={}),t({type:"GeometryCollection",geometries:e},r,n)},r.round=function(e,r){if(void 0===r&&(r=0),r&&!(r>=0))throw new Error("precision must be a positive number");var t=Math.pow(10,r||0);return Math.round(e*t)/t},r.radiansToLength=l,r.lengthToRadians=f,r.lengthToDegrees=function(e,r){return d(f(e,r))},r.bearingToAzimuth=function(e){var r=e%360;return r<0&&(r+=360),r},r.radiansToDegrees=d,r.degreesToRadians=function(e){return e%360*Math.PI/180},r.convertLength=function(e,r,t){if(void 0===r&&(r="kilometers"),void 0===t&&(t="kilometers"),!(e>=0))throw new Error("length must be a positive number");return l(f(e,r),t)},r.convertArea=function(e,t,n){if(void 0===t&&(t="meters"),void 0===n&&(n="kilometers"),!(e>=0))throw new Error("area must be a positive number");var o=r.areaFactors[t];if(!o)throw new Error("invalid original units");var i=r.areaFactors[n];if(!i)throw new Error("invalid final units");return e/o*i},r.isNumber=h,r.isObject=function(e){return!!e&&e.constructor===Object},r.validateBBox=function(e){if(!e)throw new Error("bbox is required");if(!Array.isArray(e))throw new Error("bbox must be an Array");if(4!==e.length&&6!==e.length)throw new Error("bbox must be an Array of 4 or 6 numbers");e.forEach((function(e){if(!h(e))throw new Error("bbox must only contain numbers")}))},r.validateId=function(e){if(!e)throw new Error("id is required");if(-1===["string","number"].indexOf(typeof e))throw new Error("id must be a number or a string")}},842:(e,r,t)=>{"use strict";t.r(r),t.d(r,{default:()=>n});class n{constructor(e=[],r=o){if(this.data=e,this.length=this.data.length,this.compare=r,this.length>0)for(let e=(this.length>>1)-1;e>=0;e--)this._down(e)}push(e){this.data.push(e),this.length++,this._up(this.length-1)}pop(){if(0===this.length)return;const e=this.data[0];return this.length--,this.length>0&&(this.data[0]=this.data[this.length],this._down(0)),this.data.pop(),e}peek(){return this.data[0]}_up(e){const{data:r,compare:t}=this,n=r[e];for(;e>0;){const o=e-1>>1,i=r[o];if(t(n,i)>=0)break;r[e]=i,e=o}r[e]=n}_down(e){const{data:r,compare:t}=this,n=this.length>>1,o=r[e];for(;e<n;){let n=1+(e<<1),i=r[n];const a=n+1;if(a<this.length&&t(r[a],i)<0&&(n=a,i=r[a]),t(i,o)>=0)break;r[e]=i,e=n}r[e]=o}}function o(e,r){return e<r?-1:e>r?1:0}},76:(e,r,t)=>{"use strict";function n(e){return e}function o(e){if(null==e)return n;var r,t,o=e.scale[0],i=e.scale[1],a=e.translate[0],u=e.translate[1];return function(e,n){n||(r=t=0);var s=2,c=e.length,l=new Array(c);for(l[0]=(r+=e[0])*o+a,l[1]=(t+=e[1])*i+u;s<c;)l[s]=e[s],++s;return l}}function i(e){var r,t=o(e.transform),n=1/0,i=n,a=-n,u=-n;function s(e){(e=t(e))[0]<n&&(n=e[0]),e[0]>a&&(a=e[0]),e[1]<i&&(i=e[1]),e[1]>u&&(u=e[1])}function c(e){switch(e.type){case"GeometryCollection":e.geometries.forEach(c);break;case"Point":s(e.coordinates);break;case"MultiPoint":e.coordinates.forEach(s)}}for(r in e.arcs.forEach((function(e){for(var r,o=-1,s=e.length;++o<s;)(r=t(e[o],o))[0]<n&&(n=r[0]),r[0]>a&&(a=r[0]),r[1]<i&&(i=r[1]),r[1]>u&&(u=r[1])})),e.objects)c(e.objects[r]);return[n,i,a,u]}function a(e,r){return"GeometryCollection"===r.type?{type:"FeatureCollection",features:r.geometries.map((function(r){return u(e,r)}))}:u(e,r)}function u(e,r){var t=r.id,n=r.bbox,o=null==r.properties?{}:r.properties,i=s(e,r);return null==t&&null==n?{type:"Feature",properties:o,geometry:i}:null==n?{type:"Feature",id:t,properties:o,geometry:i}:{type:"Feature",id:t,bbox:n,properties:o,geometry:i}}function s(e,r){var t=o(e.transform),n=e.arcs;function i(e,r){r.length&&r.pop();for(var o=n[e<0?~e:e],i=0,a=o.length;i<a;++i)r.push(t(o[i],i));e<0&&function(e,r){for(var t,n=e.length,o=n-r;o<--n;)t=e[o],e[o++]=e[n],e[n]=t}(r,a)}function a(e){return t(e)}function u(e){for(var r=[],t=0,n=e.length;t<n;++t)i(e[t],r);return r.length<2&&r.push(r[0]),r}function s(e){for(var r=u(e);r.length<4;)r.push(r[0]);return r}function c(e){return e.map(s)}return function e(r){var t,n=r.type;switch(n){case"GeometryCollection":return{type:n,geometries:r.geometries.map(e)};case"Point":t=a(r.coordinates);break;case"MultiPoint":t=r.coordinates.map(a);break;case"LineString":t=u(r.arcs);break;case"MultiLineString":t=r.arcs.map(u);break;case"Polygon":t=c(r.arcs);break;case"MultiPolygon":t=r.arcs.map(c);break;default:return null}return{type:n,coordinates:t}}(r)}function c(e,r){var t={},n={},o={},i=[],a=-1;function u(e,r){for(var n in e){var o=e[n];delete r[o.start],delete o.start,delete o.end,o.forEach((function(e){t[e<0?~e:e]=1})),i.push(o)}}return r.forEach((function(t,n){var o,i=e.arcs[t<0?~t:t];i.length<3&&!i[1][0]&&!i[1][1]&&(o=r[++a],r[a]=t,r[n]=o)})),r.forEach((function(r){var t,i,a=function(r){var t,n=e.arcs[r<0?~r:r],o=n[0];return e.transform?(t=[0,0],n.forEach((function(e){t[0]+=e[0],t[1]+=e[1]}))):t=n[n.length-1],r<0?[t,o]:[o,t]}(r),u=a[0],s=a[1];if(t=o[u])if(delete o[t.end],t.push(r),t.end=s,i=n[s]){delete n[i.start];var c=i===t?t:t.concat(i);n[c.start=t.start]=o[c.end=i.end]=c}else n[t.start]=o[t.end]=t;else if(t=n[s])if(delete n[t.start],t.unshift(r),t.start=u,i=o[u]){delete o[i.end];var l=i===t?t:i.concat(t);n[l.start=i.start]=o[l.end=t.end]=l}else n[t.start]=o[t.end]=t;else n[(t=[r]).start=u]=o[t.end=s]=t})),u(o,n),u(n,o),r.forEach((function(e){t[e<0?~e:e]||i.push([e])})),i}function l(e){return s(e,f.apply(this,arguments))}function f(e,r,t){var n,o,i;if(arguments.length>1)n=d(0,r,t);else for(o=0,n=new Array(i=e.arcs.length);o<i;++o)n[o]=o;return{type:"MultiLineString",arcs:c(e,n)}}function d(e,r,t){var n,o=[],i=[];function a(e){var r=e<0?~e:e;(i[r]||(i[r]=[])).push({i:e,g:n})}function u(e){e.forEach(a)}function s(e){e.forEach(u)}return function e(r){switch(n=r,r.type){case"GeometryCollection":r.geometries.forEach(e);break;case"LineString":u(r.arcs);break;case"MultiLineString":case"Polygon":s(r.arcs);break;case"MultiPolygon":!function(e){e.forEach(s)}(r.arcs)}}(r),i.forEach(null==t?function(e){o.push(e[0].i)}:function(e){t(e[0].g,e[e.length-1].g)&&o.push(e[0].i)}),o}function h(e){return s(e,g.apply(this,arguments))}function g(e,r){var t={},n=[],o=[];function i(e){e.forEach((function(r){r.forEach((function(r){(t[r=r<0?~r:r]||(t[r]=[])).push(e)}))})),n.push(e)}function a(r){return function(e){for(var r,t=-1,n=e.length,o=e[n-1],i=0;++t<n;)r=o,o=e[t],i+=r[0]*o[1]-r[1]*o[0];return Math.abs(i)}(s(e,{type:"Polygon",arcs:[r]}).coordinates[0])}return r.forEach((function e(r){switch(r.type){case"GeometryCollection":r.geometries.forEach(e);break;case"Polygon":i(r.arcs);break;case"MultiPolygon":r.arcs.forEach(i)}})),n.forEach((function(e){if(!e._){var r=[],n=[e];for(e._=1,o.push(r);e=n.pop();)r.push(e),e.forEach((function(e){e.forEach((function(e){t[e<0?~e:e].forEach((function(e){e._||(e._=1,n.push(e))}))}))}))}})),n.forEach((function(e){delete e._})),{type:"MultiPolygon",arcs:o.map((function(r){var n,o=[];if(r.forEach((function(e){e.forEach((function(e){e.forEach((function(e){t[e<0?~e:e].length<2&&o.push(e)}))}))})),(n=(o=c(e,o)).length)>1)for(var i,u,s=1,l=a(o[0]);s<n;++s)(i=a(o[s]))>l&&(u=o[0],o[0]=o[s],o[s]=u,l=i);return o}))}}function m(e,r){for(var t=0,n=e.length;t<n;){var o=t+n>>>1;e[o]<r?t=o+1:n=o}return t}function p(e){var r={},t=e.map((function(){return[]}));function n(e,t){e.forEach((function(e){e<0&&(e=~e);var n=r[e];n?n.push(t):r[e]=[t]}))}function o(e,r){e.forEach((function(e){n(e,r)}))}var i={LineString:n,MultiLineString:o,Polygon:o,MultiPolygon:function(e,r){e.forEach((function(e){o(e,r)}))}};for(var a in e.forEach((function e(r,t){"GeometryCollection"===r.type?r.geometries.forEach((function(r){e(r,t)})):r.type in i&&i[r.type](r.arcs,t)})),r)for(var u=r[a],s=u.length,c=0;c<s;++c)for(var l=c+1;l<s;++l){var f,d=u[c],h=u[l];(f=t[d])[a=m(f,h)]!==h&&f.splice(a,0,h),(f=t[h])[a=m(f,d)]!==d&&f.splice(a,0,d)}return t}function y(e){if(null==e)return n;var r,t,o=e.scale[0],i=e.scale[1],a=e.translate[0],u=e.translate[1];return function(e,n){n||(r=t=0);var s=2,c=e.length,l=new Array(c),f=Math.round((e[0]-a)/o),d=Math.round((e[1]-u)/i);for(l[0]=f-r,r=f,l[1]=d-t,t=d;s<c;)l[s]=e[s],++s;return l}}function v(e,r){if(e.transform)throw new Error("already quantized");if(r&&r.scale)s=e.bbox;else{if(!((t=Math.floor(r))>=2))throw new Error("n must be ≥2");var t,n=(s=e.bbox||i(e))[0],o=s[1],a=s[2],u=s[3];r={scale:[a-n?(a-n)/(t-1):1,u-o?(u-o)/(t-1):1],translate:[n,o]}}var s,c,l=y(r),f=e.objects,d={};function h(e){return l(e)}function g(e){var r;switch(e.type){case"GeometryCollection":r={type:"GeometryCollection",geometries:e.geometries.map(g)};break;case"Point":r={type:"Point",coordinates:h(e.coordinates)};break;case"MultiPoint":r={type:"MultiPoint",coordinates:e.coordinates.map(h)};break;default:return e}return null!=e.id&&(r.id=e.id),null!=e.bbox&&(r.bbox=e.bbox),null!=e.properties&&(r.properties=e.properties),r}for(c in f)d[c]=g(f[c]);return{type:"Topology",bbox:s,transform:r,objects:d,arcs:e.arcs.map((function(e){var r,t=0,n=1,o=e.length,i=new Array(o);for(i[0]=l(e[0],0);++t<o;)((r=l(e[t],t))[0]||r[1])&&(i[n++]=r);return 1===n&&(i[n++]=[0,0]),i.length=n,i}))}}function b(e,r,t,n,o,i){3===arguments.length&&(n=i=Array,o=null);for(var a=new n(e=1<<Math.max(4,Math.ceil(Math.log(e)/Math.LN2))),u=new i(e),s=e-1,c=0;c<e;++c)a[c]=o;function l(n,i){for(var c=r(n)&s,l=a[c],f=0;l!=o;){if(t(l,n))return u[c]=i;if(++f>=e)throw new Error("full hashmap");l=a[c=c+1&s]}return a[c]=n,u[c]=i,i}function f(n,i){for(var c=r(n)&s,l=a[c],f=0;l!=o;){if(t(l,n))return u[c];if(++f>=e)throw new Error("full hashmap");l=a[c=c+1&s]}return a[c]=n,u[c]=i,i}function d(n,i){for(var c=r(n)&s,l=a[c],f=0;l!=o;){if(t(l,n))return u[c];if(++f>=e)break;l=a[c=c+1&s]}return i}function h(){for(var e=[],r=0,t=a.length;r<t;++r){var n=a[r];n!=o&&e.push(n)}return e}return{set:l,maybeSet:f,get:d,keys:h}}function w(e,r){return e[0]===r[0]&&e[1]===r[1]}t.r(r),t.d(r,{bbox:()=>i,feature:()=>a,filter:()=>L,filterAttached:()=>I,filterAttachedWeight:()=>q,filterWeight:()=>N,merge:()=>h,mergeArcs:()=>g,mesh:()=>l,meshArcs:()=>f,neighbors:()=>p,planarRingArea:()=>D,planarTriangleArea:()=>G,presimplify:()=>B,quantile:()=>U,quantize:()=>v,simplify:()=>W,sphericalRingArea:()=>te,sphericalTriangleArea:()=>ne,topology:()=>S,transform:()=>o,untransform:()=>y});var E=new ArrayBuffer(16),P=new Float64Array(E),M=new Uint32Array(E);function x(e){P[0]=e[0],P[1]=e[1];var r=M[0]^M[1];return 2147483647&(r<<5^r>>7^M[2]^M[3])}function k(e,r,t){for(var n,o=r+(t---r>>1);r<o;++r,--t)n=e[r],e[r]=e[t],e[t]=n}function _(e){var r={type:"GeometryCollection",geometries:e.features.map(F)};return null!=e.bbox&&(r.bbox=e.bbox),r}function F(e){var r,t=R(e.geometry);for(r in null!=e.id&&(t.id=e.id),null!=e.bbox&&(t.bbox=e.bbox),e.properties){t.properties=e.properties;break}return t}function R(e){if(null==e)return{type:null};var r="GeometryCollection"===e.type?{type:"GeometryCollection",geometries:e.geometries.map(R)}:"Point"===e.type||"MultiPoint"===e.type?{type:e.type,coordinates:e.coordinates}:{type:e.type,arcs:e.coordinates};return null!=e.bbox&&(r.bbox=e.bbox),r}function S(e,r){var t=function(e){var r=1/0,t=1/0,n=-1/0,o=-1/0;function i(e){null!=e&&a.hasOwnProperty(e.type)&&a[e.type](e)}var a={GeometryCollection:function(e){e.geometries.forEach(i)},Point:function(e){u(e.coordinates)},MultiPoint:function(e){e.coordinates.forEach(u)},LineString:function(e){s(e.arcs)},MultiLineString:function(e){e.arcs.forEach(s)},Polygon:function(e){e.arcs.forEach(s)},MultiPolygon:function(e){e.arcs.forEach(c)}};function u(e){var i=e[0],a=e[1];i<r&&(r=i),i>n&&(n=i),a<t&&(t=a),a>o&&(o=a)}function s(e){e.forEach(u)}function c(e){e.forEach(s)}for(var l in e)i(e[l]);return n>=r&&o>=t?[r,t,n,o]:void 0}(e=function(e){var r,t,n={};for(r in e)n[r]=null==(t=e[r])?{type:null}:("FeatureCollection"===t.type?_:"Feature"===t.type?F:R)(t);return n}(e)),n=r>0&&t&&function(e,r,t){var n=r[0],o=r[1],i=r[2],a=r[3],u=i-n?(t-1)/(i-n):1,s=a-o?(t-1)/(a-o):1;function c(e){return[Math.round((e[0]-n)*u),Math.round((e[1]-o)*s)]}function l(e,r){for(var t,i,a,c,l,f=-1,d=0,h=e.length,g=new Array(h);++f<h;)t=e[f],c=Math.round((t[0]-n)*u),l=Math.round((t[1]-o)*s),c===i&&l===a||(g[d++]=[i=c,a=l]);for(g.length=d;d<r;)d=g.push([g[0][0],g[0][1]]);return g}function f(e){return l(e,2)}function d(e){return l(e,4)}function h(e){return e.map(d)}function g(e){null!=e&&m.hasOwnProperty(e.type)&&m[e.type](e)}var m={GeometryCollection:function(e){e.geometries.forEach(g)},Point:function(e){e.coordinates=c(e.coordinates)},MultiPoint:function(e){e.coordinates=e.coordinates.map(c)},LineString:function(e){e.arcs=f(e.arcs)},MultiLineString:function(e){e.arcs=e.arcs.map(f)},Polygon:function(e){e.arcs=h(e.arcs)},MultiPolygon:function(e){e.arcs=e.arcs.map(h)}};for(var p in e)g(e[p]);return{scale:[1/u,1/s],translate:[n,o]}}(e,t,r),o=function(e){var r,t,n,o,i=e.coordinates,a=e.lines,u=e.rings,s=a.length+u.length;for(delete e.lines,delete e.rings,n=0,o=a.length;n<o;++n)for(r=a[n];r=r.next;)++s;for(n=0,o=u.length;n<o;++n)for(t=u[n];t=t.next;)++s;var c=b(2*s*1.4,x,w),l=e.arcs=[];for(n=0,o=a.length;n<o;++n){r=a[n];do{f(r)}while(r=r.next)}for(n=0,o=u.length;n<o;++n)if((t=u[n]).next)do{f(t)}while(t=t.next);else d(t);function f(e){var r,t,n,o,a,u,s,f;if(n=c.get(r=i[e[0]]))for(s=0,f=n.length;s<f;++s)if(h(o=n[s],e))return e[0]=o[0],void(e[1]=o[1]);if(a=c.get(t=i[e[1]]))for(s=0,f=a.length;s<f;++s)if(g(u=a[s],e))return e[1]=u[0],void(e[0]=u[1]);n?n.push(e):c.set(r,[e]),a?a.push(e):c.set(t,[e]),l.push(e)}function d(e){var r,t,n,o,a;if(t=c.get(i[e[0]]))for(o=0,a=t.length;o<a;++o){if(m(n=t[o],e))return e[0]=n[0],void(e[1]=n[1]);if(p(n,e))return e[0]=n[1],void(e[1]=n[0])}if(t=c.get(r=i[e[0]+y(e)]))for(o=0,a=t.length;o<a;++o){if(m(n=t[o],e))return e[0]=n[0],void(e[1]=n[1]);if(p(n,e))return e[0]=n[1],void(e[1]=n[0])}t?t.push(e):c.set(r,[e]),l.push(e)}function h(e,r){var t=e[0],n=r[0],o=e[1];if(t-o!=n-r[1])return!1;for(;t<=o;++t,++n)if(!w(i[t],i[n]))return!1;return!0}function g(e,r){var t=e[0],n=r[0],o=e[1],a=r[1];if(t-o!=n-a)return!1;for(;t<=o;++t,--a)if(!w(i[t],i[a]))return!1;return!0}function m(e,r){var t=e[0],n=r[0],o=e[1]-t;if(o!==r[1]-n)return!1;for(var a=y(e),u=y(r),s=0;s<o;++s)if(!w(i[t+(s+a)%o],i[n+(s+u)%o]))return!1;return!0}function p(e,r){var t=e[0],n=r[0],o=e[1],a=r[1],u=o-t;if(u!==a-n)return!1;for(var s=y(e),c=u-y(r),l=0;l<u;++l)if(!w(i[t+(l+s)%u],i[a-(l+c)%u]))return!1;return!0}function y(e){for(var r=e[0],t=e[1],n=r,o=n,a=i[n];++n<t;){var u=i[n];(u[0]<a[0]||u[0]===a[0]&&u[1]<a[1])&&(o=n,a=u)}return o-r}return e}(function(e){var r,t,n,o,i,a,u,s=function(e){var r,t,n,o,i=e.coordinates,a=e.lines,u=e.rings,s=function(){for(var e=b(1.4*i.length,M,k,Int32Array,-1,Int32Array),r=new Int32Array(i.length),t=0,n=i.length;t<n;++t)r[t]=e.maybeSet(t,t);return r}(),c=new Int32Array(i.length),l=new Int32Array(i.length),f=new Int32Array(i.length),d=new Int8Array(i.length),h=0;for(r=0,t=i.length;r<t;++r)c[r]=l[r]=f[r]=-1;for(r=0,t=a.length;r<t;++r){var g=a[r],m=g[0],p=g[1];for(n=s[m],o=s[++m],++h,d[n]=1;++m<=p;)P(r,n,n=o,o=s[m]);++h,d[o]=1}for(r=0,t=i.length;r<t;++r)c[r]=-1;for(r=0,t=u.length;r<t;++r){var y=u[r],v=y[0]+1,E=y[1];for(P(r,s[E-1],n=s[v-1],o=s[v]);++v<=E;)P(r,n,n=o,o=s[v])}function P(e,r,t,n){if(c[t]!==e){c[t]=e;var o=l[t];if(o>=0){var i=f[t];o===r&&i===n||o===n&&i===r||(++h,d[t]=1)}else l[t]=r,f[t]=n}}function M(e){return x(i[e])}function k(e,r){return w(i[e],i[r])}c=l=f=null;var _,F=function(e,r,t,n,o){3===arguments.length&&(n=Array,o=null);for(var i=new n(e=1<<Math.max(4,Math.ceil(Math.log(e)/Math.LN2))),a=e-1,u=0;u<e;++u)i[u]=o;function s(n){for(var u=r(n)&a,s=i[u],c=0;s!=o;){if(t(s,n))return!0;if(++c>=e)throw new Error("full hashset");s=i[u=u+1&a]}return i[u]=n,!0}function c(n){for(var u=r(n)&a,s=i[u],c=0;s!=o;){if(t(s,n))return!0;if(++c>=e)break;s=i[u=u+1&a]}return!1}function l(){for(var e=[],r=0,t=i.length;r<t;++r){var n=i[r];n!=o&&e.push(n)}return e}return{add:s,has:c,values:l}}(1.4*h,x,w);for(r=0,t=i.length;r<t;++r)d[_=s[r]]&&F.add(i[_]);return F}(e),c=e.coordinates,l=e.lines,f=e.rings;for(t=0,n=l.length;t<n;++t)for(var d=l[t],h=d[0],g=d[1];++h<g;)s.has(c[h])&&(r={0:h,1:d[1]},d[1]=h,d=d.next=r);for(t=0,n=f.length;t<n;++t)for(var m=f[t],p=m[0],y=p,v=m[1],E=s.has(c[p]);++y<v;)s.has(c[y])&&(E?(r={0:y,1:m[1]},m[1]=y,m=m.next=r):(u=v-y,k(o=c,i=p,a=v),k(o,i,i+u),k(o,i+u,a),c[v]=c[p],E=!0,y=p));return e}(function(e){var r=-1,t=[],n=[],o=[];function i(e){e&&a.hasOwnProperty(e.type)&&a[e.type](e)}var a={GeometryCollection:function(e){e.geometries.forEach(i)},LineString:function(e){e.arcs=u(e.arcs)},MultiLineString:function(e){e.arcs=e.arcs.map(u)},Polygon:function(e){e.arcs=e.arcs.map(s)},MultiPolygon:function(e){e.arcs=e.arcs.map(c)}};function u(e){for(var n=0,i=e.length;n<i;++n)o[++r]=e[n];var a={0:r-i+1,1:r};return t.push(a),a}function s(e){for(var t=0,i=e.length;t<i;++t)o[++r]=e[t];var a={0:r-i+1,1:r};return n.push(a),a}function c(e){return e.map(s)}for(var l in e)i(e[l]);return{type:"Topology",coordinates:o,lines:t,rings:n,objects:e}}(e))),i=o.coordinates,a=b(1.4*o.arcs.length,A,C);function u(e){e&&s.hasOwnProperty(e.type)&&s[e.type](e)}e=o.objects,o.bbox=t,o.arcs=o.arcs.map((function(e,r){return a.set(e,r),i.slice(e[0],e[1]+1)})),delete o.coordinates,i=null;var s={GeometryCollection:function(e){e.geometries.forEach(u)},LineString:function(e){e.arcs=c(e.arcs)},MultiLineString:function(e){e.arcs=e.arcs.map(c)},Polygon:function(e){e.arcs=e.arcs.map(c)},MultiPolygon:function(e){e.arcs=e.arcs.map(l)}};function c(e){var r=[];do{var t=a.get(e);r.push(e[0]<e[1]?t:~t)}while(e=e.next);return r}function l(e){return e.map(c)}for(var f in e)u(e[f]);return n&&(o.transform=n,o.arcs=function(e){for(var r=-1,t=e.length;++r<t;){for(var n,o,i=e[r],a=0,u=1,s=i.length,c=i[0],l=c[0],f=c[1];++a<s;)n=(c=i[a])[0],o=c[1],n===l&&o===f||(i[u++]=[n-l,o-f],l=n,f=o);1===u&&(i[u++]=[0,0]),i.length=u}return e}(o.arcs)),o}function A(e){var r,t=e[0],n=e[1];return n<t&&(r=t,t=n,n=r),t+31*n}function C(e,r){var t,n=e[0],o=e[1],i=r[0],a=r[1];return o<n&&(t=n,n=o,o=t),a<i&&(t=i,i=a,a=t),n===i&&o===a}function L(e,r){var t,n=e.objects,o={};function i(e){var r,t;switch(e.type){case"Polygon":r=(t=a(e.arcs))?{type:"Polygon",arcs:t}:{type:null};break;case"MultiPolygon":r=(t=e.arcs.map(a).filter(O)).length?{type:"MultiPolygon",arcs:t}:{type:null};break;case"GeometryCollection":r=(t=e.geometries.map(i).filter(T)).length?{type:"GeometryCollection",geometries:t}:{type:null};break;default:return e}return null!=e.id&&(r.id=e.id),null!=e.bbox&&(r.bbox=e.bbox),null!=e.properties&&(r.properties=e.properties),r}function a(e){return e.length&&(t=e[0],r(t,!1))?[e[0]].concat(e.slice(1).filter(u)):null;var t}function u(e){return r(e,!0)}for(t in null==r&&(r=j),n)o[t]=i(n[t]);return function(e){var r,t,n=e.objects,o={},i=e.arcs,a=i.length,u=-1,s=new Array(a),c=0,l=-1;function f(e){switch(e.type){case"GeometryCollection":e.geometries.forEach(f);break;case"LineString":h(e.arcs);break;case"MultiLineString":case"Polygon":e.arcs.forEach(h);break;case"MultiPolygon":e.arcs.forEach(g)}}function d(e){e<0&&(e=~e),s[e]||(s[e]=1,++c)}function h(e){e.forEach(d)}function g(e){e.forEach(h)}function m(e){var r;switch(e.type){case"GeometryCollection":r={type:"GeometryCollection",geometries:e.geometries.map(m)};break;case"LineString":r={type:"LineString",arcs:y(e.arcs)};break;case"MultiLineString":r={type:"MultiLineString",arcs:e.arcs.map(y)};break;case"Polygon":r={type:"Polygon",arcs:e.arcs.map(y)};break;case"MultiPolygon":r={type:"MultiPolygon",arcs:e.arcs.map(v)};break;default:return e}return null!=e.id&&(r.id=e.id),null!=e.bbox&&(r.bbox=e.bbox),null!=e.properties&&(r.properties=e.properties),r}function p(e){return e<0?~s[~e]:s[e]}function y(e){return e.map(p)}function v(e){return e.map(y)}for(t in n)f(n[t]);for(r=new Array(c);++u<a;)s[u]&&(s[u]=++l,r[l]=i[u]);for(t in n)o[t]=m(n[t]);return{type:"Topology",bbox:e.bbox,transform:e.transform,objects:o,arcs:r}}({type:"Topology",bbox:e.bbox,transform:e.transform,objects:o,arcs:e.arcs})}function j(){return!0}function O(e){return e}function T(e){return null!=e.type}function I(e){var r,t=new Array(e.arcs.length),n=0;function o(e){switch(e.type){case"GeometryCollection":e.geometries.forEach(o);break;case"Polygon":i(e.arcs);break;case"MultiPolygon":e.arcs.forEach(i)}}function i(e){for(var r=0,o=e.length;r<o;++r,++n)for(var i=e[r],a=0,u=i.length;a<u;++a){var s=i[a];s<0&&(s=~s);var c=t[s];null==c?t[s]=n:c!==n&&(t[s]=-1)}}for(r in e.objects)o(e.objects[r]);return function(e){for(var r,n=0,o=e.length;n<o;++n)if(-1===t[(r=e[n])<0?~r:r])return!0;return!1}}function G(e){var r=e[0],t=e[1],n=e[2];return Math.abs((r[0]-n[0])*(t[1]-r[1])-(r[0]-t[0])*(n[1]-r[1]))/2}function D(e){for(var r,t=-1,n=e.length,o=e[n-1],i=0;++t<n;)r=o,o=e[t],i+=r[0]*o[1]-r[1]*o[0];return Math.abs(i)/2}function N(e,r,t){return r=null==r?Number.MIN_VALUE:+r,null==t&&(t=D),function(n,o){return t(a(e,{type:"Polygon",arcs:[n]}).geometry.coordinates[0],o)>=r}}function q(e,r,t){var n=I(e),o=N(e,r,t);return function(e,r){return n(e,r)||o(e,r)}}function V(e,r){return e[1][2]-r[1][2]}function z(e){return[e[0],e[1],0]}function B(e,r){var t=e.transform?o(e.transform):z,n=function(){var e={},r=[],t=0;function n(e,t){for(;t>0;){var n=(t+1>>1)-1,o=r[n];if(V(e,o)>=0)break;r[o._=t]=o,r[e._=t=n]=e}}function o(e,n){for(;;){var o=n+1<<1,i=o-1,a=n,u=r[a];if(i<t&&V(r[i],u)<0&&(u=r[a=i]),o<t&&V(r[o],u)<0&&(u=r[a=o]),a===n)break;r[u._=n]=u,r[e._=n=a]=e}}return e.push=function(e){return n(r[e._=t]=e,t++),t},e.pop=function(){if(!(t<=0)){var e,n=r[0];return--t>0&&(e=r[t],o(r[e._=0]=e,0)),n}},e.remove=function(e){var i,a=e._;if(r[a]===e)return a!==--t&&(V(i=r[t],e)<0?n:o)(r[i._=a]=i,a),a},e}();null==r&&(r=G);var i=e.arcs.map((function(e){var o,i,u,s=[],c=0;for(i=1,u=(e=e.map(t)).length-1;i<u;++i)(o=[e[i-1],e[i],e[i+1]])[1][2]=r(o),s.push(o),n.push(o);for(e[0][2]=e[u][2]=1/0,i=0,u=s.length;i<u;++i)(o=s[i]).previous=s[i-1],o.next=s[i+1];for(;o=n.pop();){var l=o.previous,f=o.next;o[1][2]<c?o[1][2]=c:c=o[1][2],l&&(l.next=f,l[2]=o[2],a(l)),f&&(f.previous=l,f[0]=o[0],a(f))}return e}));function a(e){n.remove(e),e[1][2]=r(e),n.push(e)}return{type:"Topology",bbox:e.bbox,objects:e.objects,arcs:i}}function U(e,r){var t=[];return e.arcs.forEach((function(e){e.forEach((function(e){isFinite(e[2])&&t.push(e[2])}))})),t.length&&function(e,r){if(t=e.length){if((r=+r)<=0||t<2)return e[0];if(r>=1)return e[t-1];var t,n=(t-1)*r,o=Math.floor(n),i=e[o];return i+(e[o+1]-i)*(n-o)}}(t.sort(J),r)}function J(e,r){return r-e}function W(e,r){r=null==r?Number.MIN_VALUE:+r;var t=e.arcs.map((function(e){for(var t,n=-1,o=0,i=e.length,a=new Array(i);++n<i;)(t=e[n])[2]>=r&&(a[o++]=[t[0],t[1]]);return a.length=o,a}));return{type:"Topology",transform:e.transform,bbox:e.bbox,objects:e.objects,arcs:t}}var Z=Math.PI,H=2*Z,$=Z/4,X=Z/180,K=Math.abs,Q=Math.atan2,Y=Math.cos,ee=Math.sin;function re(e,r){for(var t,n,o=0,i=e.length,a=0,u=e[r?o++:i-1],s=u[0]*X,c=u[1]*X/2+$,l=Y(c),f=ee(c);o<i;++o){t=s,s=(u=e[o])[0]*X,c=u[1]*X/2+$,n=l,l=Y(c);var d=s-t,h=d>=0?1:-1,g=h*d,m=f*(f=ee(c)),p=n*l+m*Y(g),y=m*h*ee(g);a+=Q(y,p)}return a}function te(e,r){var t=re(e,!0);return r&&(t*=-1),2*(t<0?H+t:t)}function ne(e){return 2*K(re(e,!1))}},384:e=>{var r=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};e.exports=function(e,t){if(!r(e))throw new Error("Coordinates must be an array");if(e.length<2)throw new Error("Coordinates must be at least 2 numbers long");return{type:"Feature",geometry:{type:"Point",coordinates:e},properties:t||{}}}},771:(e,r,t)=>{"use strict";const n=t(879),o=t(6),i=t(131).Z,a=(t(229),t(384));e.exports=function(e,r){var t,u=(r=r||{}).weightFn||function(e,r){return i(a(e),a(r))};"FeatureCollection"===e.type?t=n(e,r):e.edges&&(t=e),e=t.edges.reduce((function(e,n,o,i){var a=n[0],s=n[1],c=n[2],l=u(t.vertices[a],t.vertices[s],c),f=function(t){e.vertices[t]||(e.vertices[t]={},r.edgeDataReduceFn&&(e.edgeData[t]={}))},d=function(t,n,o){e.vertices[t][n]=o,r.edgeDataReduceFn&&(e.edgeData[t][n]=r.edgeDataReduceFn(r.edgeDataSeed,c))};return l&&(f(a),f(s),l instanceof Object?(l.forward&&d(a,s,l.forward),l.backward&&d(s,a,l.backward)):(d(a,s,l),d(s,a,l))),o%1e3==0&&r.progress&&r.progress("edgeweights",o,i.length),e}),{edgeData:{},vertices:{}});var s=o.compactGraph(e.vertices,t.vertices,e.edgeData,r);return{vertices:e.vertices,edgeData:e.edgeData,sourceVertices:t.vertices,compactedVertices:s.graph,compactedCoordinates:s.coordinates,compactedEdges:r.edgeDataReduceFn?s.reducedEdges:null}}},229:e=>{e.exports=function(e,r){return[Math.round(e[0]/r)*r,Math.round(e[1]/r)*r]}},879:(e,r,t)=>{"use strict";let n=t(922);const o=t(229);function i(e,r,t){return"FeatureCollection"===e.type?e.features.reduce((function(e,t){return i(t,r,e)}),t):r(t,e)}function a(e){return"LineString"===e.geometry.type}"function"!=typeof n&&n.default&&"function"==typeof n.default&&(n=n.default),e.exports=function(e,r){var t=(r=r||{}).keyFn||function(e){return e.join(",")},u=r.precision||1e-5,s=function(e,r){var t=[];return"FeatureCollection"===e.type&&(t=t.concat(e.features.filter(r))),{type:"FeatureCollection",features:t}}(e,a);return{vertices:n(s).features.reduce((function(e,n,i,a){var s=o(n.geometry.coordinates,u);return e[t(s)]=n.geometry.coordinates,i%1e3==0&&r.progress&&r.progress("topo:vertices",i,a.length),e}),{}),edges:i(s,(function(e,n,i,a){return n.geometry.coordinates.forEach((function(r,i,a){if(i>0){var s=t(o(a[i-1],u)),c=t(o(r,u));e.push([s,c,n.properties])}})),i%1e3==0&&r.progress&&r.progress("topo:edges",i,a.length),e}),[])}}},633:(e,r,t)=>{"use strict";const n=t(384),o=t(131).Z;e.exports={travelTimeWeightFn:function(e,r,t){const i={motorway:110,trunk:90,primary:80,secondary:70,tertiary:50,unclassified:50,road:50,residential:30,service:30,living_street:20},a={};let u,s,c=1e3*o(n(e),n(r)),l=.9,f=t.highway;if(t.maxspeed)u=s=Number(t.maxspeed);else{let e=f.indexOf("_link");e>=0&&(f=f.substring(0,e),l*=.7),u=s=i[f]*l,u||(a[f]=!0)}return(t.oneway&&"no"!==t.oneway||t.junction&&"roundabout"===t.junction)&&(s=null),{forward:u&&c/(u/3.6),backward:s&&c/(s/3.6)}}}}},r={};function t(n){if(r[n])return r[n].exports;var o=r[n]={exports:{}};return e[n].call(o.exports,o,o.exports,t),o.exports}return t.d=(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t(10)})();