mapbox-gl空间分析插件turf.js使用介绍

mapbox-gl能够方便地显示地图,做一些交互,但是缺少空间分析功能,比如绘制缓冲区、判断点和面相交等等。

turf.js是一个丰富的用于浏览器和node.js空间分析库,官网 http://turfjs.org/ ,非常适合于mapbox-gl开发,不仅mapbox-gl里面推荐的空间分析插件有turf,而且turf.js官网的示例均基于mapbox实现。

下面就开始turf之旅了。

1. 先介绍几个功能介绍

1.1 测量相关MEASUREMENT

如面积(area)、长度(length)、中心(center)、包络线(envelope)

1.2 转换相关TRANSFORMATION

缓冲区buffer、绘制圆circle

1.3 判断相关

 判断点是否在多边形内booleanPointInPolygon

2. 安装

普通script标签引入方式, 

1 <script src='https://npmcdn.com/@turf/turf/turf.min.js'></script>
2 <script>
3      var point = turf.point([119.625, 39.984]);
4 </script>

npm方式,可以按照以下方式引入

1 import buffer from '@turf/buffer' // 按需引用
2 import area from '@turf/area'
3 import {point, circle, bboxPolygon, booleanPointInPolygon} from '@turf/turf' // 一次引入多个
4 import * as turf from '@turf/turf' // 一次性引入

使用前需要先安装,

// 部分安装
npm install @turf/area @turf/buffer 
// 全部安装
npm install @turf/turf

3. 示例

一个简单的应用库,绘制点和面,判断点是否在面内,当然显示还是需要mapbo-gl配合。

 1 import {point, circle, bboxPolygon, booleanPointInPolygon} from '@turf/turf'
 2 export default {
 3   createCircle (center, radius, points) { // 创建圆geojson
 4     let res = circle(center, radius / 1000.0, {steps: points || 100, units: 'kilometers'})
 5     return res
 6   },
 7   createPoint (location, properties) { // 创建点geojson
 8     let res = point(location, properties)
 9     return res
10   },
11   inArea (lngLat, bbox) { // 判断点[lng, Lat]是否在面内,bbox为[minX, minY, maxX, maxY]
12     let res = booleanPointInPolygon(point(lngLat), bboxPolygon(bbox))
13     return res
14   }
15 }

希望能给想用turf.js的同学一点引入的作用,欢迎留言交流?

 

转载于:https://www.cnblogs.com/jyughynj/p/11225403.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值