首页
/ Geolib 项目技术文档

Geolib 项目技术文档

2024-12-24 02:04:25作者:范靓好Udolf

1. 安装指南

使用 npm 安装

npm install geolib

使用 yarn 安装

yarn add geolib

2. 项目的使用说明

概述

Geolib 是一个用于基本地理空间操作的库,例如距离计算、十进制坐标与六十进制坐标的转换等。该库目前是 2D 的,意味着它不支持海拔/高度的计算。

使用方式

Geolib 提供了 UMDES Module 两种构建方式。你可以根据项目需求选择合适的方式进行使用。

在 Node.js 中使用

const geolib = require('geolib');

在浏览器中使用

<script src="lib/geolib.js"></script>

在浏览器中加载后,可以通过 window.geolib 访问所有函数。

使用 ES Module

如果你使用的是支持 ES Module 的环境(如 Webpack 或 Parcel),可以直接导入需要的函数:

import { getDistance } from 'geolib';

或者导入整个库:

import * as geolib from 'geolib';

为了更好地利用 treeshaking,推荐直接导入单个函数:

import getDistance from 'geolib/es/getDistance';

3. 项目API使用文档

常用函数

getDistance(start, end, accuracy = 1)

计算两个地理坐标之间的距离。

  • startend:必须是有效的 GeolibInputCoordinates,例如 {latitude: 52.518611, longitude: 13.408056}
  • accuracy:精度(单位:米),默认值为 1 米。
getDistance(
    { latitude: 51.5103, longitude: 7.49347 },
    { latitude: "51° 31' N", longitude: "7° 28' E" }
);

返回值为以米为单位的距离。

getPreciseDistance(start, end, accuracy = 1)

计算两个地理坐标之间的精确距离,使用 Vincenty 反算公式,适用于长距离计算。

geolib.getPreciseDistance(
    { latitude: 51.5103, longitude: 7.49347 },
    { latitude: "51° 31' N", longitude: "7° 28' E" }
);

getCenter(coords)

计算一组地理坐标的中心点。

geolib.getCenter([
    { latitude: 52.516272, longitude: 13.377722 },
    { latitude: 51.515, longitude: 7.453619 },
    { latitude: 51.503333, longitude: -0.119722 },
]);

返回值为包含 latitudelongitude 的对象。

getCenterOfBounds(coords)

计算一组地理坐标的边界中心点。

geolib.getCenterOfBounds([
    { latitude: 51.513357512, longitude: 7.45574331 },
    { latitude: 51.515400598, longitude: 7.45518541 },
    { latitude: 51.516241842, longitude: 7.456494328 },
    { latitude: 51.516722545, longitude: 7.459863183 },
    { latitude: 51.517443592, longitude: 7.463232037 },
]);

返回值为包含 latitudelongitude 的对象。

getBounds(points)

计算一组地理坐标的边界。

geolib.getBounds([
    { latitude: 52.516272, longitude: 13.377722 },
    { latitude: 51.515, longitude: 7.453619 },
    { latitude: 51.503333, longitude: -0.119722 },
]);

返回值为包含 minLatmaxLatminLngmaxLng 的对象。

isPointInPolygon(point, polygon)

检查一个点是否在多边形内。

geolib.isPointInPolygon({ latitude: 51.5125, longitude: 7.485 }, [
    { latitude: 51.5, longitude: 7.4 },
    { latitude: 51.555, longitude: 7.4 },
    { latitude: 51.555, longitude: 7.625 },
    { latitude: 51.5125, longitude: 7.625 },
]);

返回值为 truefalse

isPointWithinRadius(point, centerPoint, radius)

检查一个点是否在圆内。

geolib.isPointWithinRadius(
    { latitude: 51.525, longitude: 7.4575 },
    { latitude: 51.5175, longitude: 7.4678 },
    5000
);

返回值为 truefalse

4. 项目安装方式

通过 npm 安装

npm install geolib

通过 yarn 安装

yarn add geolib

以上是 Geolib 项目的详细技术文档,涵盖了安装、使用说明、API 文档以及安装方式。希望这份文档能帮助你更好地理解和使用 Geolib 项目。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
24
6
docsdocs
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
269
2.54 K
flutter_flutterflutter_flutter
暂无简介
Dart
558
125
fountainfountain
一个用于服务器应用开发的综合工具库。 - 零配置文件 - 环境变量和命令行参数配置 - 约定优于配置 - 深刻利用仓颉语言特性 - 只需要开发动态链接库,fboot负责加载、初始化并运行。
Cangjie
58
11
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
9
1
cangjie_runtimecangjie_runtime
仓颉编程语言运行时与标准库。
Cangjie
126
104
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
357
1.84 K
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
1.02 K
434
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
1.03 K
605
cherry-studiocherry-studio
🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端
TypeScript
729
70