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

判断是否包含booleanContains

turf的功能相当丰富,用到时查文档吧

2. 安装

普通script标签引入方式,

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

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

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

使用前需要先安装,

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

3. 示例

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

 import {point, circle, bboxPolygon, booleanPointInPolygon} from '@turf/turf'
export default {
createCircle (center, radius, points) { // 创建圆geojson
let res = circle(center, radius / 1000.0, {steps: points || 100, units: 'kilometers'})
return res
},
createPoint (location, properties) { // 创建点geojson
let res = point(location, properties)
return res
},
inArea (lngLat, bbox) { // 判断点[lng, Lat]是否在面内,bbox为[minX, minY, maxX, maxY]
let res = booleanPointInPolygon(point(lngLat), bboxPolygon(bbox))
return res
}
}

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

mapbox-gl空间分析插件turf.js使用介绍的更多相关文章

  1. JavaScript 空间分析库——JSTS和Turf【转】

    https://blog.csdn.net/neimeng0/article/details/80363468 前言 项目中有管线的空间拓扑关系查询需求,在npm中检索到JSTS和Turf两个Java ...

  2. 3D GIS 应用开发 —— 基于 Mapbox GL 的实践总结

    最近在折腾的 web 端的可视化项目,由于相关业务的需要,用到了 Mapbox 这一地图开发的神器.在此先奉上一个基于mapbox-gl实现的demo(来源:uber的deck.gl项目): 下面我们 ...

  3. Scroll Depth – 衡量页面滚动的 Google 分析插件

    Scroll Depth 是一个小型的 Google Analytics(谷歌分析)插件,可以让你衡量用户在页面上滚动了多远.它可以监控 25%.50%.75% 和 100% 四个滚动点,并发送谷歌分 ...

  4. leaflet渲染mapbox gl的矢量数据

    准备条件 1.mapbox-gl.js mapbox-gl.css 2.leaflet-mapbox-gl.js https://github.com/mapbox/mapbox-gl-leaflet ...

  5. mapbox.gl文字标注算法基本介绍

    Well-placed labels can be the difference between a sloppy map and a beautiful one. Labels need to cl ...

  6. mapbox.gl源码解析——基本架构与数据渲染流程

    加载地图 Mapbox GL JS是一个JavaScript库,使用WebGL渲染交互式矢量瓦片地图和栅格瓦片地图.WebGL渲染意味着高性能,MapboxGL能够渲染大量的地图要素,拥有流畅的交互以 ...

  7. Cesium专栏-空间分析之坡向分析(附源码下载)

    Cesium Cesium 是一款面向三维地球和地图的,世界级的JavaScript开源产品.它提供了基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能,精 ...

  8. Cesium专栏-空间分析之坡度分析(附源码下载)

    Cesium Cesium 是一款面向三维地球和地图的,世界级的JavaScript开源产品.它提供了基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能,精 ...

  9. leaflet结合turf.js实现多边形分割(附源码下载)

    前言 leaflet 入门开发系列环境知识点了解: leaflet api文档介绍,详细介绍 leaflet 每个类的函数以及属性等等 leaflet 在线例子 leaflet 插件,leaflet ...

随机推荐

  1. Java 最常见 200+ 面试题 + 全解析

    本文分为十九个模块,分别是: Java 基础.容器.多线程.反射.对象拷贝.Java Web .异常.网络.设计模式.Spring/Spring MVC.Spring Boot/Spring Clou ...

  2. MongoDB查询操作

    按条件查询 比较操作:$lt,$lte,$gt,$gte,$ne db.user.find({}}); $or :包含多个条件,他们之间为or的关系 ,$nor相当于or取反 db.user.find ...

  3. CSS定位以及z-index属性(层叠性)的详解(转)

    https://blog.csdn.net/weixin_41342585/article/details/79484879

  4. 音视频入门-01-认识RGB

    * 音视频入门文章目录 * RGB 简介 RGB 色彩模式是工业界的一种颜色标准,是通过对红(R).绿(G).蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB 即是代表红 ...

  5. (九) spring 使用自定义限定符注解

    案例一 定义接口  CD.java package interfacepackage; public interface CD { void play(); } 定义接口 player .java p ...

  6. maven项目打包和编译跳过单元测试和javadoc

    代码中可能由于单元测试.注释(方法中的参数)或者maven javadoc插件的问题导致无法打包,影响工作,为避免这两种情况可以在打包时输入命令: mvn clean install -Dmaven. ...

  7. Python练习_购物车_day6

    第一次代码 (1) 输出商品列表,用户输入序号,显示用户选中的商品. 页面显示 序号 + 商品名称,如: 1 手机 2 电脑 (2): 用户输入选择的商品序号,然后打印商品名称 (3):如果用户输入的 ...

  8. web服务器端挖矿代码攻击的错误检测及排除

    a)挖矿代码简要阐述: 网页中嵌入Javascript, 一旦用户打开该网站,浏览器便会按照脚本的指令变成一个门罗币挖矿机.这一段附加的挖矿代码通常因为大量占用CPU,使用户的计算机变得异常卡顿甚至无 ...

  9. stm32 rtc 实时时钟

    STM32的实时时钟是一个独立的定时器 通常会在后备区域供电端加一个纽扣电池,当主电源没有电的时,RTC不会停止工作 若VDD电源有效,RTC可以触发秒中断.溢出中断和闹钟中断 备份寄存器BKP 备份 ...

  10. xposed自定义参数

    java反射机制允许在不显式调用类及类方法的前提下,实现创建类对象.调用类方法等一系列操作. 目标函数为TestArray,其参数为我们自定义的Person类的数组. public class tes ...