前言
现今,前端开发者面临的项目需求越来越丰富,特别是关注位置相关业务的行业,比如导航、出行、电商、地图等等,都会用到一些位置信息处理的工具。由于 GeoJSON 数据标准的出现,地理位置信息的处理和操作变得更为便捷。在 Node.js 中,有很多 NPM 包专门用于地理位置信息处理,本篇文章将介绍一个常用的 NPM 包: geo-dist 的使用教程。
简介
geo-dist 是一个轻量级 JavaScript 库,用于计算两个经纬度之间的距离。它支持 Google 错误冗余校验(CRC)算法,并能通过 installation(安装)来进行简单的导入。该工具完全兼容 Node.js 和 web 浏览器环境。
安装
你可以通过 npm 安装 geo-dist:
npm install geo-dist --save
在你的项目中导入 geo-dist:
const geodist = require('geo-dist');
在 Webpack / ES6 构建的项目中:
import geodist from 'geo-dist';
应用
计算距离
在计算距离之前,需要先有两个位置的经纬度坐标。geodist 使用 GeoJSON 的数据格式。下面是一个使用纬度和经度表示位置的实例:
const from = { latitude: 22.3080, longitude: 113.9185 }; const to = { latitude: 31.2304, longitude: 121.4737 };
这里的坐标信息可以是实际的地理位置相关信息,比如商家经营地址、用户当前位置等等。接下来,使用 geodist 库进行距离计算。首先,使用 “geodist” 函数返回两个坐标之间的距离,单位可以通过第三个参数传递。例如,计算上面两个坐标的距离(单位为公里):
const options = { exact: true, unit: 'km' }; const distance = geodist(from, to, options); console.log(distance); // 输出结果: 976.11 km
其他距离单位支持:'m', 'km', 'cm', 'mm', 'mi', 'sm', 'ft', 'in'. 对于上面的每个位置,距离单位以公里为单位,并采用精确计算(exact: true)。
计算CRC校验码
CRC校验码是 Google Geocoder V3 API 使用的校验和。这种校验码可用于比较两个位置之间的距离是否存在很大的偏差。如果 crc: true
被设置为 true,那么 geodist()
将返回一个对象,带有 “distance” 和 “crc” 属性。
示例代码:
-- -------------------- ---- ------- ----- ---- - - --------- -------- ---------- -------- -- ----- -- - - --------- -------- ---------- -------- -- ----- ------- - - ---- ---- -- ----- ------ - ------------- --- --------- ----------------------------- -- ----- ------ ------------------------ -- ----- ----------
总结
geo-dist 是一款非常实用的 JavaScript 库,专门用于计算地理位置信息之间的距离,它支持多种距离单位,也支持 Google Geocoder V3 API 使用的 CRC 算法。本篇文章简单介绍了 geo-dist 库的使用方法,希望对学习/工作中的读者有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005583981e8991b448d5697