npm 包 geo-dist 使用教程

前言

现今,前端开发者面临的项目需求越来越丰富,特别是关注位置相关业务的行业,比如导航、出行、电商、地图等等,都会用到一些位置信息处理的工具。由于 GeoJSON 数据标准的出现,地理位置信息的处理和操作变得更为便捷。在 Node.js 中,有很多 NPM 包专门用于地理位置信息处理,本篇文章将介绍一个常用的 NPM 包: geo-dist 的使用教程。

简介

geo-dist 是一个轻量级 JavaScript 库,用于计算两个经纬度之间的距离。它支持 Google 错误冗余校验(CRC)算法,并能通过 installation(安装)来进行简单的导入。该工具完全兼容 Node.js 和 web 浏览器环境。

安装

你可以通过 npm 安装 geo-dist:

--- ------- -------- ------

在你的项目中导入 geo-dist:

----- ------- - --------------------

在 Webpack / ES6 构建的项目中:

------ ------- ---- -----------

应用

计算距离

在计算距离之前,需要先有两个位置的经纬度坐标。geodist 使用 GeoJSON 的数据格式。下面是一个使用纬度和经度表示位置的实例:

----- ---- - - --------- -------- ---------- -------- --
----- -- - - --------- -------- ---------- -------- --

这里的坐标信息可以是实际的地理位置相关信息,比如商家经营地址、用户当前位置等等。接下来,使用 geodist 库进行距离计算。首先,使用 “geodist” 函数返回两个坐标之间的距离,单位可以通过第三个参数传递。例如,计算上面两个坐标的距离(单位为公里):

----- ------- - -
  ------ -----
  ----- ----
--

----- -------- - ------------- --- ---------
---------------------- -- ----- ------ --

其他距离单位支持:'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


猜你喜欢

  • npm 包 jssr 使用教程

    前言 在以往的前端项目中,我们常常需要动态地渲染页面,并且需要保证其性能良好和可维护性高。而 JSSR 正是为此而生的一款优秀的工具。JSSR 是一个基于 JavaScript 的模板引擎,支持简单的...

    2 年前
  • npm 包 monolytics 使用教程

    Monolytics 是一个前端性能监测工具,可以帮助开发人员实时监控网站的性能和用户体验。它是一个基于 Node.js 的 npm 包,简洁易用且功能强大。本文将介绍 monolytics 的安装和...

    2 年前
  • npm 包 is-e164-phone-number 使用教程

    npm 包 is-e164-phone-number 使用教程 在前端开发中,很多时候我们需要对电话号码进行验证。而 E.164 是一个全球通用的电话号码格式,因此在验证电话号码时,通常会采用 E.1...

    2 年前
  • 前端技术文章:npm 包 nodebb-plugin-knuddels 使用教程

    简介 NodeBB 是一个开源的论坛平台,可用于构建社区和讨论板块。其中,knuddels 是一个 NodeBB 插件,用于添加 Knuddels 在线聊天室的集成。

    2 年前
  • npm 包 jestextensions 使用教程

    前言 在前端开发过程中,我们经常需要编写测试代码来保证项目的质量和稳定性。而 Jest 是一个非常流行的 JavaScript 测试框架,它不仅仅提供了基本的测试工具,同时也支持许多扩展功能。

    2 年前
  • npm 包 @pierrebleroux/redux-api-middleware 使用教程

    本文章将介绍如何使用 @pierrebleroux/redux-api-middleware 这个 npm 包来管理 Redux 应用的异步网络请求,本文章旨在为前端开发者提供详细的学习、指导和示例代...

    2 年前
  • npm包terminal-joystick使用教程

    1. 什么是terminal-joystick? terminal-joystick是一个npm包,它可以让你在终端中使用虚拟手柄,用来控制一些基于终端的游戏或应用。

    2 年前
  • npm 包 @therebel/juke 使用教程

    简介 @therebel/juke 是一个前端框架,用于构建优秀的 UI 组件和交互体验。它基于 React,提供了许多组件和工具,可以让你快速构建出高质量的用户界面。

    2 年前
  • npm包 getusermedia-to-text 使用教程

    随着 Web 技术的发展,现在的浏览器越来越强大,已经可以让网页实现很多复杂的功能。其中,语音识别技术的应用已经逐渐变得普遍。在前端开发中,我们经常需要将语音转化为文字。

    2 年前
  • npm 包 @patternkit/patternlab-pattern-sync 使用教程

    介绍 在前端开发中,模式库是一种非常重要的工具。它可以让我们以可复用的方式来开发和维护组件库和 UI 库,具有非常大的作用。@patternkit/patternlab-pattern-sync 是一...

    2 年前
  • npm 包 amie 使用教程

    前言 在前端开发中,我们经常需要使用一些第三方库来提高开发效率和代码质量。而 npm 是目前最流行的 JavaScript 包管理工具,几乎所有前端库都可以通过 npm 安装和管理。

    2 年前
  • npm 包 naivefp 使用教程

    简介 naivefp 是一个非常实用的 npm 包,它可以帮助前端开发者便捷地实现函数式编程。函数式编程是一种思想,它可以帮助我们更好地组织代码,提高代码的可读性和可维护性。

    2 年前
  • npm 包 css-loader-dashed-class-names 使用教程

    介绍 在前端开发中,我们经常会使用 webpack 来构建应用程序。而在使用 webpack 构建应用程序时,要经常使用一些 css 相关的 loader。其中,一个非常实用的 loader 就是 c...

    2 年前
  • npm包ts-repl使用教程

    前言 在前端开发中,TypeScript已经成为了很多人的首选语言。不仅如此,TypeScript也在逐渐地成为了Node.js的标准。今天我要介绍的是一个 npm 包 —— ts-repl。

    2 年前
  • npm 包 encryptutils 使用教程

    前言 在现代的网络环境中,保护数据的安全性显得尤为重要。加密是一种基本的保护数据安全性的方法。在前端开发中,我们经常需要对数据进行加密。npm 包 encryptutils 就是一种非常实用的加密工具...

    2 年前
  • npm 包 nativescript-bcryptjs 使用教程

    介绍 本文将详细介绍如何在前端开发过程中使用 npm 包 nativescript-bcryptjs,它是一款用于在 NativeScript 中实现 bcrypt 加密算法的插件。

    2 年前
  • npm 包 xunmo 使用教程

    npm 是 Node.js 包管理器,开发人员通过 npm 可以轻松地安装、更新和管理自己的 JavaScript 包。xunmo 是一款基于 React 的组件库,提供了丰富多样的 UI 组件,方便...

    2 年前
  • npm 包 vue2-tap 使用教程

    前言 随着 Vue2 的逐渐普及,开发人员对于 Vue 的掌握程度也越来越高,我们也能够更好的发挥 Vue 的优势。但是,与此同时,我们也面临着越来越多的开发难题,为了解决这些难题,我们需要运用一些实...

    2 年前
  • npm 包 better-unoconv 使用教程

    简介 在前端开发过程中,有时需要将文档格式转换,此时 unoconv 可以提供帮助。better-unoconv 是基于 unoconv 封装而来的 npm 包,使用更加简便。

    2 年前
  • npm 包 @cpsubrian/babel-plugin-module-resolver 使用教程

    在前端开发中,我们经常会使用到 npm 包来管理项目依赖和优化开发流程。其中,@cpsubrian/babel-plugin-module-resolver 是一个实用的 npm 包,能够提供非常方便...

    2 年前

相关推荐

    暂无文章