问题标签 [turfjs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 来自 OpenLayers3 Draw 的自相交多边形的 turf.js 相交错误
我正在使用 OpenLayers3ol.interaction.Draw
让用户在地图上绘制一个形状,可以通过单击顶点或通过 Shift+Drag 来绘制自由多边形(这对我的应用程序很重要)。绘制形状后,我使用 turf.js 将绘制的形状与客户端中的 WFS 图层进行比较,运行intersect()
以查看 WFS 特征是否与绘制的形状相交。但是,如果手绘形状有最轻微的自相交,turf.jsintersect()
函数会失败并出现以下错误(我调用的是第 326 行intersect()
)。
turf.min.js:9 未捕获 [object Object]
getResultGeometry @ turf.min.js:9
si.overlayOp @ turf.min.js:9
交点 @ turf.min.js:15
e.exports @ turf.min.js :16
(匿名函数)@main.js:326
以下是我的代码草图。
我尝试同时使用 turf.jssimplify()
并ol.geom.Geometry.simplify()
无济于事。有人对让 turf.jsintersect()
处理手绘自相交多边形有什么建议吗?或者在运行交叉路口之前删除自交叉路口的方法?
angularjs - 如何将 turf.js 与 ionic 一起使用?
我是 ionic 新手,并试图在 ionic 应用程序中使用草皮。首先我通过 npm 使用
这在节点模块中添加了 turf 文件夹。我将它复制到 lib 文件夹中。然后我在索引页面中添加了指向 turf.min.js 的链接。
它给出了这个错误
使用的代码 -
javascript - TurfJS 将点添加到 MapBox 地图
Turf JS 的新手,一直在研究通过 MapBox API 进行集成。使用默认的 MapBox.Outdoors 地图并一直遵循一些示例 TurfJS 文档http://turfjs.org/docs/#point但似乎无法将我的观点绘制在地图上。非常感谢任何建议,错误似乎在我与 FeatureLayer.setGeoJSON 相关的代码列表行中,但我无法弄清楚。如果我将最后一行保持活动状态,则地图不会加载,如果我将其注释掉,地图会加载但没有显示图钉?
javascript - 点“内部”许多多边形
我正在尝试使用turf.js和leafletjsturf-inside()
的功能。我已经用一个 geojson 点和一个多边形准备了基本示例,但我不能对两个以上的多边形(geojson)做同样的事情。有任何想法吗?
javascript - 使用 Turf、Leaflet 对六角网格进行分类
我有一个过滤的十六进制网格,我想对其进行分类。
我创建了十六进制
我汇总了价值
其中 myGeoJson 是一个多点 FeatureCollection,MyValue 是一个特征属性,要么为 null 要么 > 0
我过滤了十六进制
每个十六进制对象都可以使用
然后每个对象都有 .feature.properties.NewCol[n] 并且每个数组都有索引 (0, 1, 2) 和值 (null, 1 +)
如何用数组值的总和对每个十六进制网格进行分类?
我已经用本机 javascript 尝试过这个,但我能实现的只是一个包含每个值的字符串。
我哪里错了?有没有更简单的方法?
geospatial - Turf.js 与 Polygon、MultiPolygon、GeometryCollection 相交的缓冲区
这是在前端。我正在使用turf.js。
场景:获取当前位置 10 公里范围内的所有警告和事件。
我正在获取包含警告或事件的实时 geojson 提要,其中包含许多具有geometry.type='Point' || geometry.type='MultiPolygon' || geometry.type='GeometryCollection'
.
到目前为止我做了什么:
使用我当前的坐标创建一个缓冲区特征区域,并比较我附近是否发生了事件(10 公里)。
如果 geometry.type='Point' 我正在使用 turf.inside(point, bufferPolygon) 进行比较,这工作正常。
挑战在于当它不是一个点时,比如 MultiPolygon 或 GeometryCollection,其中包含 MultiPolygons。
我可以用来查找在两个参数中都接受多边形的唯一其他方法是turf.intersect(polygon, bufferPolygon)
.
在这里,我没有进入geometry.type ='Polygon'
我的提要,但它是一个MultiPolygon
或GeometryCollection
(具有 MultiPolygons)。
此外,尝试将 multiPolygon 转换为 Polygon,效果不佳。
任何人都可以建议一种将bufferFeature与一组具有点、多面体和GeometryCollection的特征集合进行比较的方法吗?
php - 在传单的缓冲区内获取点
我试图让最近的农民(点)到特定的客户(点)。我为该客户制作了一个缓冲区,然后使用 turf-inside 获取缓冲区内的点,但它不起作用,我收到此错误:
未捕获的错误:需要坐标、特征或点几何
这是我的代码
ajax - Turf.within 不工作
我有一个函数可以让最近的点(农民)到一个特定的点(客户),我在客户周围做了一个与用户有距离的缓冲区,然后我使用 turf.within 来获取这个缓冲区内的所有点(农民) . 如果我在变量中给出特征集合中的坐标数组,它工作正常searchWithin
,但是当我将它作为变量(数组)给出时,在这种情况下,缓冲区的点bufresult
不起作用。