Turf.js——用于地理空间分析的js库,处理各种地图算法

本文介绍了Turf.js,一个强大的JavaScript库,用于处理地图算法,包括计算区域面积、两点间距离等。通过示例和代码展示如何在项目中使用和封装Turf.js功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Turf.js——用于地理空间分析的js库,处理各种地图算法

一、官网

中文——https://turfjs.fenxianglu.cn/

英文——https://turfjs.org/

npm地址——https://www.npmjs.com/package/@turf/turf

二、安装
npm install @turf/turf
三、引入

全局引入

import * as turf from '@turf/turf'

使用

<script src="libs/turf.min.js"></script>

CDN引入

<!-- 使用unpkg -->
<script src="https://unpkg.com/@turf/turf/turf.min.js"></script>

<!-- 在BootCDN上下载指定版本 -->
<script src="https://www.bootcdn.cn/Turf.js/"></script>
4、使用-示例

1、计算区域面积

var polygon = turf.polygon([[
        [108.09876, 37.200787],
        [106.398901, 33.648651],
        [114.972103, 33.340483],
        [113.715685, 37.845557],
        [108.09876, 37.200787]
      ]]);

var area = turf.area(polygon);

效果图

在这里插入图片描述

2、计算两个点(经纬度)的距离(米)

官网版

var from = turf.point([-75.343, 39.984]);
var to = turf.point([-75.534, 39.123]);
var options = {units: 'miles'};

var distance = turf.distance(from, to, options);

实例版

import * as turf from "@turf/turf";
 
const distance = (p1, p2) => {
  const v =
    turf.distance(turf.point(p1), turf.point(p2), {
      units: "kilometers",
    }) * 1000; //转换单位 米
  return v;
};
 
//p1,p2数组形式 [经度,纬度]

封装方法版

src/utils/algorithm.js

import * as turf from '@turf/turf'

class algorithm {
  /**
   * 计算点与点之间的距离(单位m)
   * @param {GeoJson} fromPoint
   * @param {GeoJson} toPoint
   */
  calculatePointToPoint (fromPoint, toPoint) {
    const from = turf.point(fromPoint.coordinates);
    const to = turf.point(toPoint.coordinates);
    const distance = turf.distance(from, to, "kilometers") * 1000;
    return distance;
  }
}

export default new algorithm();    

使用

import algorithm from "../../utils/algorithm";

const distanceMeter = algorithm.calculatePointToPoint(this.editResult.coordinate,this.editResult.guide);
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值