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
判断是否包含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使用介绍的更多相关文章
- JavaScript 空间分析库——JSTS和Turf【转】
https://blog.csdn.net/neimeng0/article/details/80363468 前言 项目中有管线的空间拓扑关系查询需求,在npm中检索到JSTS和Turf两个Java ...
- 3D GIS 应用开发 —— 基于 Mapbox GL 的实践总结
最近在折腾的 web 端的可视化项目,由于相关业务的需要,用到了 Mapbox 这一地图开发的神器.在此先奉上一个基于mapbox-gl实现的demo(来源:uber的deck.gl项目): 下面我们 ...
- Scroll Depth – 衡量页面滚动的 Google 分析插件
Scroll Depth 是一个小型的 Google Analytics(谷歌分析)插件,可以让你衡量用户在页面上滚动了多远.它可以监控 25%.50%.75% 和 100% 四个滚动点,并发送谷歌分 ...
- leaflet渲染mapbox gl的矢量数据
准备条件 1.mapbox-gl.js mapbox-gl.css 2.leaflet-mapbox-gl.js https://github.com/mapbox/mapbox-gl-leaflet ...
- mapbox.gl文字标注算法基本介绍
Well-placed labels can be the difference between a sloppy map and a beautiful one. Labels need to cl ...
- mapbox.gl源码解析——基本架构与数据渲染流程
加载地图 Mapbox GL JS是一个JavaScript库,使用WebGL渲染交互式矢量瓦片地图和栅格瓦片地图.WebGL渲染意味着高性能,MapboxGL能够渲染大量的地图要素,拥有流畅的交互以 ...
- Cesium专栏-空间分析之坡向分析(附源码下载)
Cesium Cesium 是一款面向三维地球和地图的,世界级的JavaScript开源产品.它提供了基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能,精 ...
- Cesium专栏-空间分析之坡度分析(附源码下载)
Cesium Cesium 是一款面向三维地球和地图的,世界级的JavaScript开源产品.它提供了基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能,精 ...
- leaflet结合turf.js实现多边形分割(附源码下载)
前言 leaflet 入门开发系列环境知识点了解: leaflet api文档介绍,详细介绍 leaflet 每个类的函数以及属性等等 leaflet 在线例子 leaflet 插件,leaflet ...
随机推荐
- python之 -> 的含义
函数或方法标注通常用于 :类型提示:例如以下函数预期接受两个 int 参数并预期返回一个 int 值: def sum(a: int, b: int) -> int: return a + b ...
- Word 查找替换高级玩法系列之 -- 将换行符替换成回车符
我们从网上Copy过来的很多Word文档,里面使用的都是换行符,也就是我们常说的软回车,它显示为一个向下的箭头.这些符号不仅碍眼,而且会影响我们后期的排版,尤其是对段落的排版,因为Word里面的段落只 ...
- Lucas定理的运用及组合数奇偶性的判断
组合数奇偶性的判断 对于C(n,k),若n&k == k 则c(n,k)为奇数,否则为偶数. 最直观的方法就是计算一下,然后看它的奇偶性:但是这个时间以及数据范围上都不允许: 另外一种方法就是 ...
- 值得收藏的Python第三方库
网络站点爬取 爬取网络站点的库Scrapy – 一个快速高级的屏幕爬取及网页采集框架.cola – 一个分布式爬虫框架.Demiurge – 基于PyQuery 的爬虫微型框架.feedparser ...
- centos7无网络环境下创建基于scratch镜像的Linux镜像,并带有Java运行环境
一.准备 将下载好的jdk以及scratch镜像放在同一文件夹下:这里放在linux:2.0 二.导入scratch镜像 #docker load -i scratch.tar 三.创建dockerf ...
- 变量————if语句——结构使用
1简述变量的命名规范 变量是以字母 数字 下划线组合而成 不能以数字开头 不能使用python中的关键字命名 变量要具有可描述性 区分大小写 name变量是什么数据类型通过代码检测 name = in ...
- (十七)SpringBoot之使用异步消息服务jms之ActiveMQ
一.引入maven依赖 <dependencies> <dependency> <groupId>org.springframework.boot</grou ...
- SQL Server系统函数:系统信息函数
原文:SQL Server系统函数:系统信息函数 1.会话id,服务器信息.用户信息 select @@SPID, --返回当前连接的会话ID:SPID @@servername, --SQL Ser ...
- 树节点递归删除--service层
@Service public class ContentCategoryServiceImpl extends BaseServiceImpl<ContentCategory> impl ...
- 二级菜单被banner遮住的解决方法
原因:z-index的问题 解决:在导航box加 position: relative; z-index: 4; 比banner 大就可以.然后在一级导航的 li 设置 相对定位 positio ...