You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

12 lines
49 KiB

4 years ago
{
"version": 3,
"sources": [
"terraformer.js"
],
"names": [],
"mappings": ";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC
"file": "index.js",
"sourcesContent": [
"(function (root, factory) {\r\n\r\n // Node.\r\n if(typeof module === 'object' && typeof module.exports === 'object') {\r\n exports = module.exports = factory();\r\n }\r\n\r\n // Browser Global.\r\n if(typeof window === \"object\") {\r\n root.Terraformer = factory();\r\n }\r\n\r\n}(this, function(){\r\n \r\n\r\n var exports = {},\r\n EarthRadius = 6378137,\r\n DegreesPerRadian = 57.295779513082320,\r\n RadiansPerDegree = 0.017453292519943,\r\n MercatorCRS = {\r\n \"type\": \"link\",\r\n \"properties\": {\r\n \"href\": \"http://spatialreference.org/ref/sr-org/6928/ogcwkt/\",\r\n \"type\": \"ogcwkt\"\r\n }\r\n },\r\n GeographicCRS = {\r\n \"type\": \"link\",\r\n \"properties\": {\r\n \"href\": \"http://spatialreference.org/ref/epsg/4326/ogcwkt/\",\r\n \"type\": \"ogcwkt\"\r\n }\r\n };\r\n\r\n /*\r\n Internal: isArray function\r\n */\r\n function isArray(obj) {\r\n return Object.prototype.toString.call(obj) === \"[object Array]\";\r\n }\r\n\r\n /*\r\n Internal: safe warning\r\n */\r\n function warn() {\r\n var args = Array.prototype.slice.apply(arguments);\r\n\r\n if (typeof console !== undefined && console.warn) {\r\n console.warn.apply(console, args);\r\n }\r\n }\r\n\r\n /*\r\n Internal: Extend one object with another.\r\n */\r\n function extend(destination, source) {\r\n for (var k in source) {\r\n if (source.hasOwnProperty(k)) {\r\n destination[k] = source[k];\r\n }\r\n }\r\n return destination;\r\n }\r\n\r\n /*\r\n Public: Calculate an bounding box for a geojson object\r\n */\r\n function calculateBounds (geojson) {\r\n if(geojson.type){\r\n switch (geojson.type) {\r\n case 'Point':\r\n return [ geojson.coordinates[0], geojson.coordinates[1], geojson.coordinates[0], geojson.coordinates[1]];\r\n\r\n case 'MultiPoint':\r\n return calculateBoundsFromArray(geojson.coordinates);\r\n\r\n case 'LineString':\r\n return calculateBoundsFromArray(geojson.coordinates);\r\n\r\n case 'MultiLineString':\r\n return calculateBoundsFromNestedArrays(geojson.coordinates);\r\n\r\n case 'Polygon':\r\n return calculateBoundsFromNestedArrays(geojson.coordinates);\r\n\r\n case 'MultiPolygon':\r\n return calculateBoundsFromNestedArrayOfArrays(geojson.coordinates);\r\n\r\n case 'Feature':\r\n return geojson.geometry? calculateBounds(geojson.geometry) : null;\r\n\r\n case 'FeatureCollection':\r\n return calculateBoundsForFeatureCollection(geojson);\r\n\r\n case 'GeometryCollection':\r\n return calculateBoundsForGeometryCollection(geojson);\r\n\r\n default:\r\n throw new Error(\"Unknown type: \" + geojson.type);\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /*\r\n Internal: Calculate an bounding box from an nested array of positions\r\n [\r\n [\r\n [ [lng, lat],[lng, lat],[lng, lat] ]\r\n ]\r\n [\r\n [lng, lat],[lng, lat],[lng, lat]\r\n ]\r\n [\r\n [lng, lat],[lng, lat],[lng, lat]\r\n ]\r\n ]\r\n */\r\n function calculateBoundsFromNestedArrays (array) {\r\n var x1 = null, x2 = null, y1 = null, y2 = null;\r\n\r\n for (var i = 0; i < array.length; i++) {\r\n var inner = array[i];\r\n\r\n for (var j = 0; j < inner.length; j++) {\r\n var lonlat = inner[j];\r\n\r\n var lon = lonlat[0];\r\n var lat = lonlat[1];\r\n\r\n if (x1 === null) {\r\n x1 = lon;\r\n } else if (lon < x1) {\r\n x1 = lon;\r\n }\r\n\r\n if (x2 === null) {\r\n x2 = lon;\r\n } else if (lon > x2) {\r\n x2 = lon;\r\n }\r\n\r\n if (y1 === null) {\r\n y1 = lat;\r\n } else if (lat < y1) {\r\n y1 = lat;\r\n }\r\n\r\n if (y2 === null) {\r\n y2 = lat;\r\n } else if (lat > y2) {\r\n y2 = lat;\r\n }\r\n
]
}