Turf.js——用于地理空间分析的js库,处理各种地图算法
一、官网
中文——https://turfjs.fenxianglu.cn/
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);