@turf/rhumb-distance 7.1.0 → 7.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -11,7 +11,7 @@ miles, or kilometers.
11
11
 
12
12
  * `from` **[Coord][2]** origin point
13
13
  * `to` **[Coord][2]** destination point
14
- * `options` **[Object][3]?** Optional parameters
14
+ * `options` **[Object][3]?** Optional parameters (optional, default `{}`)
15
15
 
16
16
  * `options.units` **[string][4]** can be degrees, radians, miles, or kilometers (optional, default `"kilometers"`)
17
17
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../index.ts"],"names":[],"mappings":";AACA,SAAS,eAAsB,mBAA0B;AACzD,SAAS,gBAAgB;AAwBzB,SAAS,cACP,MACA,IACA,UAEI,CAAC,GACG;AACR,QAAM,SAAS,SAAS,IAAI;AAC5B,QAAM,cAAc,SAAS,EAAE;AAI/B,cAAY,CAAC,KACX,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,MACzB,OACA,OAAO,CAAC,IAAI,YAAY,CAAC,IAAI,MAC3B,MACA;AACR,QAAM,mBAAmB,uBAAuB,QAAQ,WAAW;AACnE,QAAM,WAAW,cAAc,kBAAkB,UAAU,QAAQ,KAAK;AACxE,SAAO;AACT;AAiBA,SAAS,uBACP,QACA,aACA,QACA;AAQA,WAAS,WAAW,SAAY,cAAc,OAAO,MAAM;AAG3D,QAAM,IAAI;AACV,QAAM,OAAQ,OAAO,CAAC,IAAI,KAAK,KAAM;AACrC,QAAM,OAAQ,YAAY,CAAC,IAAI,KAAK,KAAM;AAC1C,QAAM,WAAW,OAAO;AACxB,MAAI,cAAe,KAAK,IAAI,YAAY,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,KAAM;AAErE,MAAI,cAAc,KAAK,IAAI;AACzB,mBAAe,IAAI,KAAK;AAAA,EAC1B;AAIA,QAAM,WAAW,KAAK;AAAA,IACpB,KAAK,IAAI,OAAO,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,IAAI,OAAO,IAAI,KAAK,KAAK,CAAC;AAAA,EACpE;AACA,QAAM,IAAI,KAAK,IAAI,QAAQ,IAAI,QAAS,WAAW,WAAW,KAAK,IAAI,IAAI;AAG3E,QAAM,QAAQ,KAAK;AAAA,IACjB,WAAW,WAAW,IAAI,IAAI,cAAc;AAAA,EAC9C;AACA,QAAM,OAAO,QAAQ;AAErB,SAAO;AACT;AAGA,IAAO,8BAAQ","sourcesContent":["// https://en.wikipedia.org/wiki/Rhumb_line\nimport { convertLength, Coord, earthRadius, Units } from \"@turf/helpers\";\nimport { getCoord } from \"@turf/invariant\";\n\n/**\n * Calculates the distance along a rhumb line between two {@link Point|points} in degrees, radians,\n * miles, or kilometers.\n *\n * @name rhumbDistance\n * @param {Coord} from origin point\n * @param {Coord} to destination point\n * @param {Object} [options] Optional parameters\n * @param {string} [options.units=\"kilometers\"] can be degrees, radians, miles, or kilometers\n * @returns {number} distance between the two points\n * @example\n * var from = turf.point([-75.343, 39.984]);\n * var to = turf.point([-75.534, 39.123]);\n * var options = {units: 'miles'};\n *\n * var distance = turf.rhumbDistance(from, to, options);\n *\n * //addToMap\n * var addToMap = [from, to];\n * from.properties.distance = distance;\n * to.properties.distance = distance;\n */\nfunction rhumbDistance(\n from: Coord,\n to: Coord,\n options: {\n units?: Units;\n } = {}\n): number {\n const origin = getCoord(from);\n const destination = getCoord(to);\n\n // compensate the crossing of the 180th meridian (https://macwright.org/2016/09/26/the-180th-meridian.html)\n // solution from https://github.com/mapbox/mapbox-gl-js/issues/3250#issuecomment-294887678\n destination[0] +=\n destination[0] - origin[0] > 180\n ? -360\n : origin[0] - destination[0] > 180\n ? 360\n : 0;\n const distanceInMeters = calculateRhumbDistance(origin, destination);\n const distance = convertLength(distanceInMeters, \"meters\", options.units);\n return distance;\n}\n\n/**\n * Returns the distance travelling from ‘this’ point to destination point along a rhumb line.\n * Adapted from Geodesy: https://github.com/chrisveness/geodesy/blob/master/latlon-spherical.js\n *\n * @private\n * @param {Array<number>} origin point.\n * @param {Array<number>} destination point.\n * @param {number} [radius=6371e3] - (Mean) radius of earth (defaults to radius in metres).\n * @returns {number} Distance in km between this point and destination point (same units as radius).\n *\n * @example\n * var p1 = new LatLon(51.127, 1.338);\n * var p2 = new LatLon(50.964, 1.853);\n * var d = p1.distanceTo(p2); // 40.31 km\n */\nfunction calculateRhumbDistance(\n origin: number[],\n destination: number[],\n radius?: number\n) {\n // φ => phi\n // λ => lambda\n // ψ => psi\n // Δ => Delta\n // δ => delta\n // θ => theta\n\n radius = radius === undefined ? earthRadius : Number(radius);\n // see www.edwilliams.org/avform.htm#Rhumb\n\n const R = radius;\n const phi1 = (origin[1] * Math.PI) / 180;\n const phi2 = (destination[1] * Math.PI) / 180;\n const DeltaPhi = phi2 - phi1;\n let DeltaLambda = (Math.abs(destination[0] - origin[0]) * Math.PI) / 180;\n // if dLon over 180° take shorter rhumb line across the anti-meridian:\n if (DeltaLambda > Math.PI) {\n DeltaLambda -= 2 * Math.PI;\n }\n\n // on Mercator projection, longitude distances shrink by latitude; q is the 'stretch factor'\n // q becomes ill-conditioned along E-W line (0/0); use empirical tolerance to avoid it\n const DeltaPsi = Math.log(\n Math.tan(phi2 / 2 + Math.PI / 4) / Math.tan(phi1 / 2 + Math.PI / 4)\n );\n const q = Math.abs(DeltaPsi) > 10e-12 ? DeltaPhi / DeltaPsi : Math.cos(phi1);\n\n // distance is pythagoras on 'stretched' Mercator projection\n const delta = Math.sqrt(\n DeltaPhi * DeltaPhi + q * q * DeltaLambda * DeltaLambda\n ); // angular distance in radians\n const dist = delta * R;\n\n return dist;\n}\n\nexport { rhumbDistance };\nexport default rhumbDistance;\n"]}
1
+ {"version":3,"sources":["/home/runner/work/turf/turf/packages/turf-rhumb-distance/dist/cjs/index.cjs","../../index.ts"],"names":[],"mappings":"AAAA;ACCA,wCAAyD;AACzD,4CAAyB;AAwBzB,SAAS,aAAA,CACP,IAAA,EACA,EAAA,EACA,QAAA,EAEI,CAAC,CAAA,EACG;AACR,EAAA,MAAM,OAAA,EAAS,iCAAA,IAAa,CAAA;AAC5B,EAAA,MAAM,YAAA,EAAc,iCAAA,EAAW,CAAA;AAI/B,EAAA,WAAA,CAAY,CAAC,EAAA,GACX,WAAA,CAAY,CAAC,EAAA,EAAI,MAAA,CAAO,CAAC,EAAA,EAAI,IAAA,EACzB,CAAA,IAAA,EACA,MAAA,CAAO,CAAC,EAAA,EAAI,WAAA,CAAY,CAAC,EAAA,EAAI,IAAA,EAC3B,IAAA,EACA,CAAA;AACR,EAAA,MAAM,iBAAA,EAAmB,sBAAA,CAAuB,MAAA,EAAQ,WAAW,CAAA;AACnE,EAAA,MAAM,SAAA,EAAW,oCAAA,gBAAc,EAAkB,QAAA,EAAU,OAAA,CAAQ,KAAK,CAAA;AACxE,EAAA,OAAO,QAAA;AACT;AAiBA,SAAS,sBAAA,CACP,MAAA,EACA,WAAA,EACA,MAAA,EACA;AAQA,EAAA,OAAA,EAAS,OAAA,IAAW,KAAA,EAAA,EAAY,qBAAA,EAAc,MAAA,CAAO,MAAM,CAAA;AAG3D,EAAA,MAAM,EAAA,EAAI,MAAA;AACV,EAAA,MAAM,KAAA,EAAQ,MAAA,CAAO,CAAC,EAAA,EAAI,IAAA,CAAK,GAAA,EAAM,GAAA;AACrC,EAAA,MAAM,KAAA,EAAQ,WAAA,CAAY,CAAC,EAAA,EAAI,IAAA,CAAK,GAAA,EAAM,GAAA;AAC1C,EAAA,MAAM,SAAA,EAAW,KAAA,EAAO,IAAA;AACxB,EAAA,IAAI,YAAA,EAAe,IAAA,CAAK,GAAA,CAAI,WAAA,CAAY,CAAC,EAAA,EAAI,MAAA,CAAO,CAAC,CAAC,EAAA,EAAI,IAAA,CAAK,GAAA,EAAM,GAAA;AAErE,EAAA,GAAA,CAAI,YAAA,EAAc,IAAA,CAAK,EAAA,EAAI;AACzB,IAAA,YAAA,GAAe,EAAA,EAAI,IAAA,CAAK,EAAA;AAAA,EAC1B;AAIA,EAAA,MAAM,SAAA,EAAW,IAAA,CAAK,GAAA;AAAA,IACpB,IAAA,CAAK,GAAA,CAAI,KAAA,EAAO,EAAA,EAAI,IAAA,CAAK,GAAA,EAAK,CAAC,EAAA,EAAI,IAAA,CAAK,GAAA,CAAI,KAAA,EAAO,EAAA,EAAI,IAAA,CAAK,GAAA,EAAK,CAAC;AAAA,EACpE,CAAA;AACA,EAAA,MAAM,EAAA,EAAI,IAAA,CAAK,GAAA,CAAI,QAAQ,EAAA,EAAI,MAAA,EAAS,SAAA,EAAW,SAAA,EAAW,IAAA,CAAK,GAAA,CAAI,IAAI,CAAA;AAG3E,EAAA,MAAM,MAAA,EAAQ,IAAA,CAAK,IAAA;AAAA,IACjB,SAAA,EAAW,SAAA,EAAW,EAAA,EAAI,EAAA,EAAI,YAAA,EAAc;AAAA,EAC9C,CAAA;AACA,EAAA,MAAM,KAAA,EAAO,MAAA,EAAQ,CAAA;AAErB,EAAA,OAAO,IAAA;AACT;AAGA,IAAO,4BAAA,EAAQ,aAAA;AD1Ef;AACE;AACA;AACF,qFAAC","file":"/home/runner/work/turf/turf/packages/turf-rhumb-distance/dist/cjs/index.cjs","sourcesContent":[null,"// https://en.wikipedia.org/wiki/Rhumb_line\nimport { convertLength, Coord, earthRadius, Units } from \"@turf/helpers\";\nimport { getCoord } from \"@turf/invariant\";\n\n/**\n * Calculates the distance along a rhumb line between two {@link Point|points} in degrees, radians,\n * miles, or kilometers.\n *\n * @function\n * @param {Coord} from origin point\n * @param {Coord} to destination point\n * @param {Object} [options] Optional parameters\n * @param {string} [options.units=\"kilometers\"] can be degrees, radians, miles, or kilometers\n * @returns {number} distance between the two points\n * @example\n * var from = turf.point([-75.343, 39.984]);\n * var to = turf.point([-75.534, 39.123]);\n * var options = {units: 'miles'};\n *\n * var distance = turf.rhumbDistance(from, to, options);\n *\n * //addToMap\n * var addToMap = [from, to];\n * from.properties.distance = distance;\n * to.properties.distance = distance;\n */\nfunction rhumbDistance(\n from: Coord,\n to: Coord,\n options: {\n units?: Units;\n } = {}\n): number {\n const origin = getCoord(from);\n const destination = getCoord(to);\n\n // compensate the crossing of the 180th meridian (https://macwright.org/2016/09/26/the-180th-meridian.html)\n // solution from https://github.com/mapbox/mapbox-gl-js/issues/3250#issuecomment-294887678\n destination[0] +=\n destination[0] - origin[0] > 180\n ? -360\n : origin[0] - destination[0] > 180\n ? 360\n : 0;\n const distanceInMeters = calculateRhumbDistance(origin, destination);\n const distance = convertLength(distanceInMeters, \"meters\", options.units);\n return distance;\n}\n\n/**\n * Returns the distance travelling from ‘this’ point to destination point along a rhumb line.\n * Adapted from Geodesy: https://github.com/chrisveness/geodesy/blob/master/latlon-spherical.js\n *\n * @private\n * @param {Array<number>} origin point.\n * @param {Array<number>} destination point.\n * @param {number} [radius=6371e3] - (Mean) radius of earth (defaults to radius in metres).\n * @returns {number} Distance in km between this point and destination point (same units as radius).\n *\n * @example\n * var p1 = new LatLon(51.127, 1.338);\n * var p2 = new LatLon(50.964, 1.853);\n * var d = p1.distanceTo(p2); // 40.31 km\n */\nfunction calculateRhumbDistance(\n origin: number[],\n destination: number[],\n radius?: number\n) {\n // φ => phi\n // λ => lambda\n // ψ => psi\n // Δ => Delta\n // δ => delta\n // θ => theta\n\n radius = radius === undefined ? earthRadius : Number(radius);\n // see www.edwilliams.org/avform.htm#Rhumb\n\n const R = radius;\n const phi1 = (origin[1] * Math.PI) / 180;\n const phi2 = (destination[1] * Math.PI) / 180;\n const DeltaPhi = phi2 - phi1;\n let DeltaLambda = (Math.abs(destination[0] - origin[0]) * Math.PI) / 180;\n // if dLon over 180° take shorter rhumb line across the anti-meridian:\n if (DeltaLambda > Math.PI) {\n DeltaLambda -= 2 * Math.PI;\n }\n\n // on Mercator projection, longitude distances shrink by latitude; q is the 'stretch factor'\n // q becomes ill-conditioned along E-W line (0/0); use empirical tolerance to avoid it\n const DeltaPsi = Math.log(\n Math.tan(phi2 / 2 + Math.PI / 4) / Math.tan(phi1 / 2 + Math.PI / 4)\n );\n const q = Math.abs(DeltaPsi) > 10e-12 ? DeltaPhi / DeltaPsi : Math.cos(phi1);\n\n // distance is pythagoras on 'stretched' Mercator projection\n const delta = Math.sqrt(\n DeltaPhi * DeltaPhi + q * q * DeltaLambda * DeltaLambda\n ); // angular distance in radians\n const dist = delta * R;\n\n return dist;\n}\n\nexport { rhumbDistance };\nexport default rhumbDistance;\n"]}
@@ -4,7 +4,7 @@ import { Coord, Units } from '@turf/helpers';
4
4
  * Calculates the distance along a rhumb line between two {@link Point|points} in degrees, radians,
5
5
  * miles, or kilometers.
6
6
  *
7
- * @name rhumbDistance
7
+ * @function
8
8
  * @param {Coord} from origin point
9
9
  * @param {Coord} to destination point
10
10
  * @param {Object} [options] Optional parameters
@@ -4,7 +4,7 @@ import { Coord, Units } from '@turf/helpers';
4
4
  * Calculates the distance along a rhumb line between two {@link Point|points} in degrees, radians,
5
5
  * miles, or kilometers.
6
6
  *
7
- * @name rhumbDistance
7
+ * @function
8
8
  * @param {Coord} from origin point
9
9
  * @param {Coord} to destination point
10
10
  * @param {Object} [options] Optional parameters
@@ -1 +1 @@
1
- {"version":3,"sources":["../../index.ts"],"sourcesContent":["// https://en.wikipedia.org/wiki/Rhumb_line\nimport { convertLength, Coord, earthRadius, Units } from \"@turf/helpers\";\nimport { getCoord } from \"@turf/invariant\";\n\n/**\n * Calculates the distance along a rhumb line between two {@link Point|points} in degrees, radians,\n * miles, or kilometers.\n *\n * @name rhumbDistance\n * @param {Coord} from origin point\n * @param {Coord} to destination point\n * @param {Object} [options] Optional parameters\n * @param {string} [options.units=\"kilometers\"] can be degrees, radians, miles, or kilometers\n * @returns {number} distance between the two points\n * @example\n * var from = turf.point([-75.343, 39.984]);\n * var to = turf.point([-75.534, 39.123]);\n * var options = {units: 'miles'};\n *\n * var distance = turf.rhumbDistance(from, to, options);\n *\n * //addToMap\n * var addToMap = [from, to];\n * from.properties.distance = distance;\n * to.properties.distance = distance;\n */\nfunction rhumbDistance(\n from: Coord,\n to: Coord,\n options: {\n units?: Units;\n } = {}\n): number {\n const origin = getCoord(from);\n const destination = getCoord(to);\n\n // compensate the crossing of the 180th meridian (https://macwright.org/2016/09/26/the-180th-meridian.html)\n // solution from https://github.com/mapbox/mapbox-gl-js/issues/3250#issuecomment-294887678\n destination[0] +=\n destination[0] - origin[0] > 180\n ? -360\n : origin[0] - destination[0] > 180\n ? 360\n : 0;\n const distanceInMeters = calculateRhumbDistance(origin, destination);\n const distance = convertLength(distanceInMeters, \"meters\", options.units);\n return distance;\n}\n\n/**\n * Returns the distance travelling from ‘this’ point to destination point along a rhumb line.\n * Adapted from Geodesy: https://github.com/chrisveness/geodesy/blob/master/latlon-spherical.js\n *\n * @private\n * @param {Array<number>} origin point.\n * @param {Array<number>} destination point.\n * @param {number} [radius=6371e3] - (Mean) radius of earth (defaults to radius in metres).\n * @returns {number} Distance in km between this point and destination point (same units as radius).\n *\n * @example\n * var p1 = new LatLon(51.127, 1.338);\n * var p2 = new LatLon(50.964, 1.853);\n * var d = p1.distanceTo(p2); // 40.31 km\n */\nfunction calculateRhumbDistance(\n origin: number[],\n destination: number[],\n radius?: number\n) {\n // φ => phi\n // λ => lambda\n // ψ => psi\n // Δ => Delta\n // δ => delta\n // θ => theta\n\n radius = radius === undefined ? earthRadius : Number(radius);\n // see www.edwilliams.org/avform.htm#Rhumb\n\n const R = radius;\n const phi1 = (origin[1] * Math.PI) / 180;\n const phi2 = (destination[1] * Math.PI) / 180;\n const DeltaPhi = phi2 - phi1;\n let DeltaLambda = (Math.abs(destination[0] - origin[0]) * Math.PI) / 180;\n // if dLon over 180° take shorter rhumb line across the anti-meridian:\n if (DeltaLambda > Math.PI) {\n DeltaLambda -= 2 * Math.PI;\n }\n\n // on Mercator projection, longitude distances shrink by latitude; q is the 'stretch factor'\n // q becomes ill-conditioned along E-W line (0/0); use empirical tolerance to avoid it\n const DeltaPsi = Math.log(\n Math.tan(phi2 / 2 + Math.PI / 4) / Math.tan(phi1 / 2 + Math.PI / 4)\n );\n const q = Math.abs(DeltaPsi) > 10e-12 ? DeltaPhi / DeltaPsi : Math.cos(phi1);\n\n // distance is pythagoras on 'stretched' Mercator projection\n const delta = Math.sqrt(\n DeltaPhi * DeltaPhi + q * q * DeltaLambda * DeltaLambda\n ); // angular distance in radians\n const dist = delta * R;\n\n return dist;\n}\n\nexport { rhumbDistance };\nexport default rhumbDistance;\n"],"mappings":";AACA,SAAS,eAAsB,mBAA0B;AACzD,SAAS,gBAAgB;AAwBzB,SAAS,cACP,MACA,IACA,UAEI,CAAC,GACG;AACR,QAAM,SAAS,SAAS,IAAI;AAC5B,QAAM,cAAc,SAAS,EAAE;AAI/B,cAAY,CAAC,KACX,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,MACzB,OACA,OAAO,CAAC,IAAI,YAAY,CAAC,IAAI,MAC3B,MACA;AACR,QAAM,mBAAmB,uBAAuB,QAAQ,WAAW;AACnE,QAAM,WAAW,cAAc,kBAAkB,UAAU,QAAQ,KAAK;AACxE,SAAO;AACT;AAiBA,SAAS,uBACP,QACA,aACA,QACA;AAQA,WAAS,WAAW,SAAY,cAAc,OAAO,MAAM;AAG3D,QAAM,IAAI;AACV,QAAM,OAAQ,OAAO,CAAC,IAAI,KAAK,KAAM;AACrC,QAAM,OAAQ,YAAY,CAAC,IAAI,KAAK,KAAM;AAC1C,QAAM,WAAW,OAAO;AACxB,MAAI,cAAe,KAAK,IAAI,YAAY,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,KAAM;AAErE,MAAI,cAAc,KAAK,IAAI;AACzB,mBAAe,IAAI,KAAK;AAAA,EAC1B;AAIA,QAAM,WAAW,KAAK;AAAA,IACpB,KAAK,IAAI,OAAO,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,IAAI,OAAO,IAAI,KAAK,KAAK,CAAC;AAAA,EACpE;AACA,QAAM,IAAI,KAAK,IAAI,QAAQ,IAAI,QAAS,WAAW,WAAW,KAAK,IAAI,IAAI;AAG3E,QAAM,QAAQ,KAAK;AAAA,IACjB,WAAW,WAAW,IAAI,IAAI,cAAc;AAAA,EAC9C;AACA,QAAM,OAAO,QAAQ;AAErB,SAAO;AACT;AAGA,IAAO,8BAAQ;","names":[]}
1
+ {"version":3,"sources":["../../index.ts"],"sourcesContent":["// https://en.wikipedia.org/wiki/Rhumb_line\nimport { convertLength, Coord, earthRadius, Units } from \"@turf/helpers\";\nimport { getCoord } from \"@turf/invariant\";\n\n/**\n * Calculates the distance along a rhumb line between two {@link Point|points} in degrees, radians,\n * miles, or kilometers.\n *\n * @function\n * @param {Coord} from origin point\n * @param {Coord} to destination point\n * @param {Object} [options] Optional parameters\n * @param {string} [options.units=\"kilometers\"] can be degrees, radians, miles, or kilometers\n * @returns {number} distance between the two points\n * @example\n * var from = turf.point([-75.343, 39.984]);\n * var to = turf.point([-75.534, 39.123]);\n * var options = {units: 'miles'};\n *\n * var distance = turf.rhumbDistance(from, to, options);\n *\n * //addToMap\n * var addToMap = [from, to];\n * from.properties.distance = distance;\n * to.properties.distance = distance;\n */\nfunction rhumbDistance(\n from: Coord,\n to: Coord,\n options: {\n units?: Units;\n } = {}\n): number {\n const origin = getCoord(from);\n const destination = getCoord(to);\n\n // compensate the crossing of the 180th meridian (https://macwright.org/2016/09/26/the-180th-meridian.html)\n // solution from https://github.com/mapbox/mapbox-gl-js/issues/3250#issuecomment-294887678\n destination[0] +=\n destination[0] - origin[0] > 180\n ? -360\n : origin[0] - destination[0] > 180\n ? 360\n : 0;\n const distanceInMeters = calculateRhumbDistance(origin, destination);\n const distance = convertLength(distanceInMeters, \"meters\", options.units);\n return distance;\n}\n\n/**\n * Returns the distance travelling from ‘this’ point to destination point along a rhumb line.\n * Adapted from Geodesy: https://github.com/chrisveness/geodesy/blob/master/latlon-spherical.js\n *\n * @private\n * @param {Array<number>} origin point.\n * @param {Array<number>} destination point.\n * @param {number} [radius=6371e3] - (Mean) radius of earth (defaults to radius in metres).\n * @returns {number} Distance in km between this point and destination point (same units as radius).\n *\n * @example\n * var p1 = new LatLon(51.127, 1.338);\n * var p2 = new LatLon(50.964, 1.853);\n * var d = p1.distanceTo(p2); // 40.31 km\n */\nfunction calculateRhumbDistance(\n origin: number[],\n destination: number[],\n radius?: number\n) {\n // φ => phi\n // λ => lambda\n // ψ => psi\n // Δ => Delta\n // δ => delta\n // θ => theta\n\n radius = radius === undefined ? earthRadius : Number(radius);\n // see www.edwilliams.org/avform.htm#Rhumb\n\n const R = radius;\n const phi1 = (origin[1] * Math.PI) / 180;\n const phi2 = (destination[1] * Math.PI) / 180;\n const DeltaPhi = phi2 - phi1;\n let DeltaLambda = (Math.abs(destination[0] - origin[0]) * Math.PI) / 180;\n // if dLon over 180° take shorter rhumb line across the anti-meridian:\n if (DeltaLambda > Math.PI) {\n DeltaLambda -= 2 * Math.PI;\n }\n\n // on Mercator projection, longitude distances shrink by latitude; q is the 'stretch factor'\n // q becomes ill-conditioned along E-W line (0/0); use empirical tolerance to avoid it\n const DeltaPsi = Math.log(\n Math.tan(phi2 / 2 + Math.PI / 4) / Math.tan(phi1 / 2 + Math.PI / 4)\n );\n const q = Math.abs(DeltaPsi) > 10e-12 ? DeltaPhi / DeltaPsi : Math.cos(phi1);\n\n // distance is pythagoras on 'stretched' Mercator projection\n const delta = Math.sqrt(\n DeltaPhi * DeltaPhi + q * q * DeltaLambda * DeltaLambda\n ); // angular distance in radians\n const dist = delta * R;\n\n return dist;\n}\n\nexport { rhumbDistance };\nexport default rhumbDistance;\n"],"mappings":";AACA,SAAS,eAAsB,mBAA0B;AACzD,SAAS,gBAAgB;AAwBzB,SAAS,cACP,MACA,IACA,UAEI,CAAC,GACG;AACR,QAAM,SAAS,SAAS,IAAI;AAC5B,QAAM,cAAc,SAAS,EAAE;AAI/B,cAAY,CAAC,KACX,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,MACzB,OACA,OAAO,CAAC,IAAI,YAAY,CAAC,IAAI,MAC3B,MACA;AACR,QAAM,mBAAmB,uBAAuB,QAAQ,WAAW;AACnE,QAAM,WAAW,cAAc,kBAAkB,UAAU,QAAQ,KAAK;AACxE,SAAO;AACT;AAiBA,SAAS,uBACP,QACA,aACA,QACA;AAQA,WAAS,WAAW,SAAY,cAAc,OAAO,MAAM;AAG3D,QAAM,IAAI;AACV,QAAM,OAAQ,OAAO,CAAC,IAAI,KAAK,KAAM;AACrC,QAAM,OAAQ,YAAY,CAAC,IAAI,KAAK,KAAM;AAC1C,QAAM,WAAW,OAAO;AACxB,MAAI,cAAe,KAAK,IAAI,YAAY,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,KAAM;AAErE,MAAI,cAAc,KAAK,IAAI;AACzB,mBAAe,IAAI,KAAK;AAAA,EAC1B;AAIA,QAAM,WAAW,KAAK;AAAA,IACpB,KAAK,IAAI,OAAO,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,IAAI,OAAO,IAAI,KAAK,KAAK,CAAC;AAAA,EACpE;AACA,QAAM,IAAI,KAAK,IAAI,QAAQ,IAAI,QAAS,WAAW,WAAW,KAAK,IAAI,IAAI;AAG3E,QAAM,QAAQ,KAAK;AAAA,IACjB,WAAW,WAAW,IAAI,IAAI,cAAc;AAAA,EAC9C;AACA,QAAM,OAAO,QAAQ;AAErB,SAAO;AACT;AAGA,IAAO,8BAAQ;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@turf/rhumb-distance",
3
- "version": "7.1.0",
3
+ "version": "7.2.0",
4
4
  "description": "turf rhumb-distance module",
5
5
  "author": "Turf Authors",
6
6
  "contributors": [
@@ -59,23 +59,23 @@
59
59
  "test:tape": "tsx test.ts"
60
60
  },
61
61
  "devDependencies": {
62
- "@turf/distance": "^7.1.0",
62
+ "@turf/distance": "^7.2.0",
63
63
  "@types/benchmark": "^2.1.5",
64
- "@types/tape": "^4.2.32",
64
+ "@types/tape": "^4.13.4",
65
65
  "benchmark": "^2.1.4",
66
66
  "load-json-file": "^7.0.1",
67
67
  "npm-run-all": "^4.1.5",
68
- "tape": "^5.7.2",
69
- "tsup": "^8.0.1",
70
- "tsx": "^4.6.2",
71
- "typescript": "^5.2.2",
68
+ "tape": "^5.9.0",
69
+ "tsup": "^8.3.5",
70
+ "tsx": "^4.19.2",
71
+ "typescript": "^5.5.4",
72
72
  "write-json-file": "^5.0.0"
73
73
  },
74
74
  "dependencies": {
75
- "@turf/helpers": "^7.1.0",
76
- "@turf/invariant": "^7.1.0",
75
+ "@turf/helpers": "^7.2.0",
76
+ "@turf/invariant": "^7.2.0",
77
77
  "@types/geojson": "^7946.0.10",
78
- "tslib": "^2.6.2"
78
+ "tslib": "^2.8.1"
79
79
  },
80
- "gitHead": "68915eeebc9278bb40dec3f1034499698a0561ef"
80
+ "gitHead": "7b0f0374c4668cd569f8904c71e2ae7d941be867"
81
81
  }