{"version":3,"sources":["/home/runner/work/turf/turf/packages/turf-projection/dist/cjs/index.cjs","../../index.ts"],"names":[],"mappings":"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","file":"/home/runner/work/turf/turf/packages/turf-projection/dist/cjs/index.cjs","sourcesContent":[null,"import { Position } from \"geojson\";\nimport { coordEach } from \"@turf/meta\";\nimport { AllGeoJSON, isNumber } from \"@turf/helpers\";\nimport { clone } from \"@turf/clone\";\n\n/**\n * Converts a WGS84 GeoJSON object into Mercator (EPSG:900913) projection\n *\n * @function\n * @param {GeoJSON|Position} geojson WGS84 GeoJSON object\n * @param {Object} [options] Optional parameters\n * @param {boolean} [options.mutate=false] allows GeoJSON input to be mutated (significant performance increase if true)\n * @returns {GeoJSON} Projected GeoJSON\n * @example\n * var pt = turf.point([-71,41]);\n * var converted = turf.toMercator(pt);\n *\n * //addToMap\n * var addToMap = [pt, converted];\n */\nfunction toMercator(\n geojson: G,\n options: { mutate?: boolean } = {}\n): G {\n return convert(geojson, \"mercator\", options);\n}\n\n/**\n * Converts a Mercator (EPSG:900913) GeoJSON object into WGS84 projection\n *\n * @function\n * @param {GeoJSON|Position} geojson Mercator GeoJSON object\n * @param {Object} [options] Optional parameters\n * @param {boolean} [options.mutate=false] allows GeoJSON input to be mutated (significant performance increase if true)\n * @returns {GeoJSON} Projected GeoJSON\n * @example\n * var pt = turf.point([-7903683.846322424, 5012341.663847514]);\n * var converted = turf.toWgs84(pt);\n *\n * //addToMap\n * var addToMap = [pt, converted];\n */\nfunction toWgs84(\n geojson: G,\n options: { mutate?: boolean } = {}\n): G {\n return convert(geojson, \"wgs84\", options);\n}\n\n/**\n * Converts a GeoJSON coordinates to the defined `projection`\n *\n * @private\n * @param {GeoJSON} geojson GeoJSON Feature or Geometry\n * @param {string} projection defines the projection system to convert the coordinates to\n * @param {Object} [options] Optional parameters\n * @param {boolean} [options.mutate=false] allows GeoJSON input to be mutated (significant performance increase if true)\n * @returns {GeoJSON} Converted GeoJSON\n */\nfunction convert(\n geojson: any,\n projection: string,\n options: { mutate?: boolean } = {}\n): any {\n // Optional parameters\n options = options || {};\n var mutate = options.mutate;\n\n // Validation\n if (!geojson) throw new Error(\"geojson is required\");\n\n // Handle Position\n if (Array.isArray(geojson) && isNumber(geojson[0]))\n geojson =\n projection === \"mercator\"\n ? convertToMercator(geojson)\n : convertToWgs84(geojson);\n // Handle GeoJSON\n else {\n // Handle possible data mutation\n if (mutate !== true) geojson = clone(geojson);\n\n coordEach(geojson, function (coord) {\n var newCoord =\n projection === \"mercator\"\n ? convertToMercator(coord)\n : convertToWgs84(coord);\n coord[0] = newCoord[0];\n coord[1] = newCoord[1];\n });\n }\n return geojson;\n}\n\n/**\n * Convert lon/lat values to 900913 x/y.\n * (from https://github.com/mapbox/sphericalmercator)\n *\n * @private\n * @param {Array} lonLat WGS84 point\n * @returns {Array} Mercator [x, y] point\n */\nfunction convertToMercator(lonLat: number[]) {\n var D2R = Math.PI / 180,\n // 900913 properties\n A = 6378137.0,\n MAXEXTENT = 20037508.342789244;\n\n // compensate longitudes passing the 180th meridian\n // from https://github.com/proj4js/proj4js/blob/master/lib/common/adjust_lon.js\n var adjusted =\n Math.abs(lonLat[0]) <= 180 ? lonLat[0] : lonLat[0] - sign(lonLat[0]) * 360;\n var xy = [\n A * adjusted * D2R,\n A * Math.log(Math.tan(Math.PI * 0.25 + 0.5 * lonLat[1] * D2R)),\n ];\n\n // if xy value is beyond maxextent (e.g. poles), return maxextent\n if (xy[0] > MAXEXTENT) xy[0] = MAXEXTENT;\n if (xy[0] < -MAXEXTENT) xy[0] = -MAXEXTENT;\n if (xy[1] > MAXEXTENT) xy[1] = MAXEXTENT;\n if (xy[1] < -MAXEXTENT) xy[1] = -MAXEXTENT;\n\n return xy;\n}\n\n/**\n * Convert 900913 x/y values to lon/lat.\n * (from https://github.com/mapbox/sphericalmercator)\n *\n * @private\n * @param {Array} xy Mercator [x, y] point\n * @returns {Array} WGS84 [lon, lat] point\n */\nfunction convertToWgs84(xy: number[]) {\n // 900913 properties.\n var R2D = 180 / Math.PI;\n var A = 6378137.0;\n\n return [\n (xy[0] * R2D) / A,\n (Math.PI * 0.5 - 2.0 * Math.atan(Math.exp(-xy[1] / A))) * R2D,\n ];\n}\n\n/**\n * Returns the sign of the input, or zero\n *\n * @private\n * @param {number} x input\n * @returns {number} -1|0|1 output\n */\nfunction sign(x: number) {\n return x < 0 ? -1 : x > 0 ? 1 : 0;\n}\n\nexport { toMercator, toWgs84 };\n"]}