问题标签 [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.

0 投票
2 回答
453 浏览

javascript - 识别多边形内的点(包括位于边界和边缘上的点)

我正在使用 turf.js 来查找多边形内的一个点,我发现问题持续存在于几个用例中,其中一个用例如下所述用例(即对于点(X=32.8,Y=40)。我还绘制了图像以供参考,其中turf.booleanPointInPolygon显示为假。

无法识别多边形内的点,这是 turf.js 的故障。如何向 turf.js 报告。任何人都请帮助解决这个问题。

0 投票
1 回答
1307 浏览

javascript - 使用 turf.js 在 Mapbox GL JS 中将可拖动点捕捉到矢量瓦片集线

我正在尝试将可拖动点捕捉到由线条组成的矢量瓦片集,但我不确定是否可以使用 Mapbox 矢量瓦片集。

它本质上相当于使用 turf.js https://jsfiddle.net/andi_lo/nmc4kprn/5/的点捕捉示例,该示例 在以下堆栈溢出帖子中进行了概述: Mapbox Icons/Markers "BearingSnap" or Snap to Position

我已经修改了一个基本的 Mapbox 可拖动点示例来查询包含在图块集中的渲染特征。我只是不确定如何将测量和捕捉功能融入其中。我可以在控制台日志中看到我相交的特征的坐标被返回。有任何想法吗?

0 投票
2 回答
1996 浏览

d3.js - D3.js 与 Turf.js 错误:“未捕获(承诺)错误:多边形的每个线性环必须有 4 个或更多位置。”

我正在尝试遍历一系列多边形,以查看我的单点是否存在于其中一个多边形中。根据我的阅读,我需要导入 topojson,将其转换为 geojson 对象,然后遍历每个多边形检查点。这是我使用 D3、Topojson 和 Turf 所拥有的...

当它到达时const searchWithin = turf.polygon([[area.geometry.coordinates[0]]]);会引发以下错误......

我试过D3 d3.geoContain(),但false每次都扔。我对替代解决方案持开放态度,这些解决方案将检查纬度/经度坐标是否在 topojson 形状内。谢谢。

0 投票
0 回答
96 浏览

cordova - 在 Cordova 项目中使用 turf.js 不起作用

我正在尝试在我的科尔多瓦离子移动应用程序中创建点密度图可视化,但我无法加载 turf.min.js。

我将它包含在 index.html 文件中:

<script src="js/libs/turf.min.js" charset="utf-8"></script>

应用程序加载后,我可以在控制台中看到此错误:

未捕获的类型错误:无法重新定义属性:名称

我在代码中使用草皮对象的地方是未定义的。

我在这方面陷入了困境,请帮助!

0 投票
1 回答
382 浏览

openlayers - 如何在 Openlayer 中从样式几何生成的任何平行线上单击哪个 lineString

在修改http://jsfiddle.net/CPRam/egn1kmc8/上找到的参考链接后,我通过在 openlayer v5.2 中使用具有不同宽度笔划的单要素对象的样式几何选项在地图上生成了平行线串。

在样式函数中使用带有调用函数的几何图形时,我没有在样式的单击事件中获取几何图形。因此,为此,我删除了调用函数并给出了具有平行距离的固定分辨率。

因此,现在在“单击”事件中,我能够获得具有所有样式及其几何形状的功能。但在里面map.on('singleclick',function(event){})...。如何区分点击哪条线或几何图形。

我尝试单击事件点是否与线相交但没有成功然后我在这里理解问题是我单击 Stroke not on Line 因为单击事件像素点也无法与是否与线相交

具有多几何样式的单个特征的图像:

具有多几何样式的单特征图像

即使我尝试了 turf.js pointToLineDistance() 但由于动态宽度和线坐标差异在我的逻辑中没有得到正确的线串。

我谷歌但没有得到任何解决方案来获取在地图上单击哪种样式几何(线)。请参阅上面的代码jsFiddler参考链接

通过任何事件来获得单击哪个 lineString 的任何帮助。

0 投票
1 回答
1842 浏览

javascript - 基于本地geojson文件的mapbox 3D挤压

我在网上看到过这个例子,它做数据驱动的建筑挤压,但根本不提供代码。

我非常想实现同样的目标。我有一个带有某种属性的 geojson 文件,我想将其映射到建筑物的高度上。你知道这怎么可能吗?

我已经考虑过推荐的替代方案:在已经根据我的数据生成的圆上进行 3D 挤压。未提供此博客文章中的代码,因此我起诉了此SO 帖子中的代码。

代码如下:

所以这很好用。

但是,当我尝试使用包含完全相同数据的本地 geojson 文件获得相同的东西时,它根本不起作用。

这是我的json:

这是我的代码:

我想在使用草皮处理数据的回调中有些东西我不明白,但我就是不知道是什么,而且我没有找到很多 mapbox 示例来帮助文档。

这是预期的输出:image_expected 输出

这是我的输出:我的输出

任何帮助将不胜感激。

0 投票
0 回答
190 浏览

javascript - 根据另一个点列表(LineString)对点列表进行排序/排序 - JavaScript

假设我有一个 LineString(一条汽车路线):

和另一个 LineString (我必须做的停止)

现在我想根据 lineCoords 对 arrayOfPoints 进行排序

我怎样才能做到?

草坪可以帮忙吗?

0 投票
1 回答
1009 浏览

mongodb - 如何修复geojson以满足mongodb 2dsphere索引的需求

我在 mongo 集合中有约 400K 文档,所有文档的几何形状均为type:Polygon. 2dsphere由于几何显然具有自相交,因此无法像当前那样向数据添加索引。

过去,我们有一个 hacky 解决方法,即在 mongoose 保存钩子上计算几何体的边界框,然后索引它而不是几何体本身,但我们想简化事情并只使用实际的几何体。

到目前为止,我已经尝试使用 turf如下(这是一个名为 的函数的主体fix):

最重要的功能是unkinkPolygons我希望它完全符合我的要求,即使几何图形足够好以便被索引。这simplify可能没有帮助,但我添加它是为了很好的衡量标准。clean那里是因为unkink抱怨它的输入,并且那里是为了将一个scombine数组变成一个 s 。实际上,仍然对它的输入不满意,所以我不得不编写一个如下的 hacky 函数来抖动重复的顶点,这会修改传递给之前的:PolygonMultiPolygonunkinkgeomunkink

然而,即使在所有这些 mongo 之后仍然抱怨。

这是一些示例原始Polygon输入:

通过上述修复管道后的相同数据:

以下是索引创建时引发的错误的相关位:

我的问题是:中是否有错误turf,或者在保持 mongo 快乐方面它没有做我需要的事情?还有关于2dshpere索引在“修复”方面的确切需求的任何文档吗?此外,是否有人对我可以使用哪些其他工具来修复数据有建议,例如mapshaper或 PostGIS 的ST_MakeValid

请注意,一旦现有数据被修复,我还需要一个用于即时修复新数据的解决方案(理想情况下与节点一起工作的东西)。

Mongo 版本:3.4.14(或任何更高版本的 3.x)

0 投票
1 回答
665 浏览

javascript - 草坪缓冲区传单geojson ajax

我已经使用 geojson api 加载了点数据

现在我正在尝试在地图上创建一个按钮,当我单击该按钮时,事件会缓冲一英里。

html

JS

然后当我单击按钮时出现此错误

0 投票
1 回答
412 浏览

javascript - turf.js:缓冲区执行但 geojson 未添加到传单地图

div id 称为缓冲区。当用户点击缓冲区时,事件点被缓冲 1 英里

javascript

我不确定缓冲区是否正在执行,因为控制台中绝对没有任何内容。

我发现这个问题与我的非常相似。https://gis.stackexchange.com/questions/285077/does-turf-js-work-with-geodjango