{"version":3,"sources":["/home/runner/work/turf/turf/packages/turf-nearest-point-to-line/dist/cjs/index.cjs","../../index.ts"],"names":[],"mappings":"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","file":"/home/runner/work/turf/turf/packages/turf-nearest-point-to-line/dist/cjs/index.cjs","sourcesContent":[null,"import {\n Feature,\n FeatureCollection,\n GeometryCollection,\n LineString,\n Point,\n GeoJsonProperties,\n} from \"geojson\";\nimport { Units } from \"@turf/helpers\";\nimport { getType } from \"@turf/invariant\";\nimport { featureEach, geomEach } from \"@turf/meta\";\nimport { pointToLineDistance } from \"@turf/point-to-line-distance\";\n\n/**\n * Returns the closest {@link Point|point}, of a {@link FeatureCollection|collection} of points,\n * to a {@link LineString|line}. The returned point has a `dist` property indicating its distance to the line.\n *\n * @function\n * @param {FeatureCollection|GeometryCollection} points Point Collection\n * @param {Feature|Geometry} line Line Feature\n * @param {Object} [options] Optional parameters\n * @param {string} [options.units='kilometers'] unit of the output distance property\n * (eg: degrees, radians, miles, or kilometers)\n * @param {Object} [options.properties={}] Translate Properties to Point\n * @returns {Feature} the closest point\n * @example\n * var pt1 = turf.point([0, 0]);\n * var pt2 = turf.point([0.5, 0.5]);\n * var points = turf.featureCollection([pt1, pt2]);\n * var line = turf.lineString([[1,1], [-1,1]]);\n *\n * var nearest = turf.nearestPointToLine(points, line);\n *\n * //addToMap\n * var addToMap = [nearest, line];\n */\nfunction nearestPointToLine

(\n points:\n | FeatureCollection\n | Feature\n | GeometryCollection,\n line: Feature | LineString,\n options: {\n units?: Units;\n properties?: GeoJsonProperties;\n } = {}\n): Feature {\n const units = options.units;\n const properties = options.properties || {};\n\n // validation\n const pts = normalize(points);\n if (!pts.features.length) {\n throw new Error(\"points must contain features\");\n }\n\n if (!line) {\n throw new Error(\"line is required\");\n }\n if (getType(line) !== \"LineString\") {\n throw new Error(\"line must be a LineString\");\n }\n\n let dist = Infinity;\n let pt: any = null;\n\n featureEach(pts, (point) => {\n const d = pointToLineDistance(point, line, { units });\n if (d < dist) {\n dist = d;\n pt = point;\n }\n });\n /*\n * Translate Properties to final Point, priorities:\n * 1. options.properties\n * 2. inherent Point properties\n * 3. dist custom properties created by NearestPointToLine\n */\n if (pt) {\n pt.properties = { ...{ dist }, ...pt.properties, ...properties };\n }\n return pt;\n}\n\n/**\n * Convert Collection to FeatureCollection\n *\n * @private\n * @param {FeatureCollection|GeometryCollection} points Points\n * @returns {FeatureCollection} points\n */\nfunction normalize(points: any): FeatureCollection {\n const features: any[] = [];\n const type = points.geometry ? points.geometry.type : points.type;\n switch (type) {\n case \"GeometryCollection\":\n geomEach(points, (geom) => {\n if (geom.type === \"Point\") {\n features.push({ type: \"Feature\", properties: {}, geometry: geom });\n }\n });\n return { type: \"FeatureCollection\", features };\n case \"FeatureCollection\":\n points.features = points.features.filter((feature: any) => {\n return feature.geometry.type === \"Point\";\n });\n return points;\n default:\n throw new Error(\"points must be a Point Collection\");\n }\n}\n\nexport { nearestPointToLine };\nexport default nearestPointToLine;\n"]}