利用Turf.js实现点线面几何体的拓扑关系判断
通过官网http://turfjs.org/或者github https://github.com/Turfjs/turf了解
第一步:先引用js文件
<script src='https://npmcdn.com/@turf/turf/turf.min.js'></script>
第二步:调用函数,判断关系
booleanClockwise(line) //线是否闭合
var clockwiseRing = turf.lineString([[0,0],[1,1],[1,0],[0,0]]);
var counterClockwiseRing = turf.lineString([[0,0],[1,0],[1,1],[0,0]]);turf.booleanClockwise(clockwiseRing)
//=true
turf.booleanClockwise(counterClockwiseRing)
//=false
booleanContains(feature1,feature2) //feature2是否完全包含在feature1中
var line = turf.lineString([[1, 1], [1, 2], [1, 3], [1, 4]]);
var point = turf.point([1, 2]);turf.booleanContains(line, point);
//=true
booleanCrosses(feature1,feature2) //feature1,feature2是否相交
var line1 = turf.lineString([[-2, 2], [4, 2]]);
var line2 = turf.lineString([[1, 1], [1, 2], [1, 3], [1, 4]]);var cross = turf.booleanCrosses(line1, line2);
//=true
booleanDisjoint(feature1,feature2) //feature1,feature2是否相离
var point = turf.point([2, 2]);
var line = turf.lineString([[1, 1], [1, 2], [1, 3], [1, 4]]);turf.booleanDisjoint(line, point);
//=true
booleanEqual(feature1,feature2) //feature1,feature2是否重合
var pt1 = turf.point([0, 0]);
var pt2 = turf.point([0, 0]);
var pt3 = turf.point([1, 1]);turf.booleanEqual(pt1, pt2);
//= true
turf.booleanEqual(pt2, pt3);
//= false
booleanOverlap(feature1,feature2) //feature1,feature2是否重叠 ,feature1,feature2类型为Polygon、LineString、 Multipoint、MultiLineString、MultiPolygon,且相同
var poly1 = turf.polygon([[[0,0],[0,5],[5,5],[5,0],[0,0]]]);
var poly2 = turf.polygon([[[1,1],[1,6],[6,6],[6,1],[1,1]]]);
var poly3 = turf.polygon([[[10,10],[10,15],[15,15],[15,10],[10,10]]]);turf.booleanOverlap(poly1, poly2)
//=true
turf.booleanOverlap(poly2, poly3)
//=false
booleanParallel(line,line) //两条线是否平行
var line1 = turf.lineString([[0, 0], [0, 1]]);
var line2 = turf.lineString([[1, 0], [1, 1]]);turf.booleanParallel(line1, line2);
//=true
booleanPointInPolygon(point,polygon) //点是否在面中
var pt = turf.point([-77, 44]);
var poly = turf.polygon([[[-81, 41],[-81, 47],[-72, 47],[-72, 41],[-81, 41]
]]);turf.booleanPointInPolygon(pt, poly);
//= true
booleanPointOnLine(point,line) //点是否在线上
var pt = turf.point([0, 0]);
var line = turf.lineString([[-1, -1],[1, 1],[1.5, 2.2]]);
var isPointOnLine = turf.booleanPointOnLine(pt, line);
//=true
booleanWithin(feature1,feature2) //feature1是否完全在feature2中
var line = turf.lineString([[1, 1], [1, 2], [1, 3], [1, 4]]);
var point = turf.point([1, 2]);turf.booleanWithin(point, line);
//=true
利用Turf.js实现点线面几何体的拓扑关系判断相关推荐
- 利用turf.js分析数据---占地分析
之前写过关于占地分析的方案,使用的是geoserver地图服务分析数据,这次还可以使用turf.js来实现功能,改效果展示的是切割效果 具体可从以下链接查看turf.js的一些操作: Turf.js中 ...
- Turf.js(地理空间GIS分析的js库),处理地图相关算法
场景 Turf.js Advanced geospatial analysis for browsers and Node.js 浏览器和Node.js的高级地理空间分析. 特点 Modular, s ...
- 解决turf.js裁剪multiPolygon类型的复杂带孔洞多边形时出现的问题
前言 使用turf.js裁剪,不是用turf.js中的bboxClip方法,此方法只能输入矩形边界,对于不规则边界去裁剪多边形,使用intersect()可以完成,下面所说的裁剪和求交集默认一个意思. ...
- java 地理围栏实现_基于Turf.js教你快速实现地理围栏的合并拆分
以下内容转载自totoro的文章<几何计算-基于Turf.js实现多边形的拆分及合并> 作者:totoro 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. JavaS ...
- 「跨域」利用node.js实践前端各种跨域方式(上)
前言 常言道,"读万卷书,不如行万里路".技术的学习也是如此,唯有实践才能更清楚的明白原理和加深印象,因此本文会利用node.js对前端的各种跨域方式进行实践,强烈建议一步一步跟着 ...
- 利用exif.js解决手机上传竖拍照片旋转90\180\270度问题
利用exif.js解决手机上传竖拍照片旋转90\180\270度问题 参考文章: (1)利用exif.js解决手机上传竖拍照片旋转90\180\270度问题 (2)https://www.cnblog ...
- php 输出图片给js,如何在php中利用croppic.js对图片进行剪切并上传
如何在php中利用croppic.js对图片进行剪切并上传 发布时间:2021-01-30 16:41:02 来源:亿速云 阅读:92 作者:Leah 这篇文章将为大家详细讲解有关如何在php中利用c ...
- 如何更好的利用Node.js的性能极限
通过使用非阻塞.事件驱动的I/O操作,Node.js为构建和运行大规模网络应用及服务提供了很好的平台,也受到了广泛的欢迎.其主要特性表现为能够处理庞大的并且高吞吐量的并发连接,从而构建高性能.高扩展性 ...
- html 监听input输入框的值,利用原生JS实时监听input框输入值
利用原生JS实时监听input框输入值 原生JS中可以使用oninput,onpropertychange,onchange oninput,onpropertychange,onchange的用法 ...
最新文章
- 上班4年“武功”全废,想跳槽却被HR嘲讽,这位搞AI的硕士小哥心态崩了
- 【Android 安装包优化】Android 中使用 7zr 可执行程序 压缩文件
- aws搭建java项目_AWS下S3之java开发
- 离线数据同步神器:DataX,支持几乎所有异构数据源的离线同步到MaxCompute
- 历史:2007年总结与2008年展望
- 手把手教你用Python求均值、中值和众数
- 贪心——今年暑假不AC(hdu2037)
- div图片垂直居中 如何使div中图片垂直居中
- python 用selenium自动启动百度并搜索关键词
- OpenWHO课程 Introduction to COVID-19: methods for detection, prevention, response and control 小抄
- DbVisualizer的Driver连接Oracle Thin选项不可选
- Android 开发笔记“context和getApplicationContext”
- Hadoop简介(1)
- LitJson写入中文乱码问题
- 文件夹自定义重命名的步骤
- JS 手机号/身份证/银行账号/邮箱/QQ/电话 掩码处理
- 艾美捷针对性检测—游离维多珠单抗ADA水平检测试剂盒
- 电子商务竞争加速:顺丰速运及天极均推B2C平台
- [Practical.Vim(2012.9)].Drew.Neil.Tip12学习摘要
- matlab 模糊隶属度判断类别
热门文章
- WIFI6模块 802.11ac/ax AP6275S
- ap cs java_AP计算机科学(AP CS)考试介绍
- Flink实战之实时风控规则引擎
- OSError: /home/yukang/anaconda3/envs/fsgan/lib/python3.9/site-packages/torch/lib/../../nvidia/cublas
- C++坑人游戏[1.0版本](完)
- 怎样制定自己的职业规划
- matlab之请求用户输入函数input
- 有限差分法-一维波动方程及其Matlab程序实现
- 优酷端侧弹幕穿人技术实战之:PixelAI移动端实时人像分割
- Factor_mimicking_portfolio(模仿因子的投资组合):EAP.fama_macbeth.Factor_mimicking_portfolio