用于几何运算的纯JavaScript库


21

有谁知道一个纯JavaScript库来执行几何运算,例如缓冲区,联合,相交等?我想在浏览器中进行这些操作。看起来GeoScriptJS具有某些依赖性。

Answers:


15

您可以查看OpenLayers API,尤其是Geometry类。您可以检查相交,并可以访问顶点等。过去,我仅使用OpenLayers实现了点缓冲区。工会可能比较棘手。

对于更复杂的操作,您可能需要在服务器端进行处理,并将结果传回WKT或GeoJSON中,这两种OpenLayers都可以显示。有关示例,请参见本联合教程

另一个可能的选择是Spatial Query,即“ 用于处理空间数学的类似于Java的JQuery库 ”。我不确定测试的程度如何,但是由于有可用的资源,您应该看看。

更新资料

现在有了JTS拓扑套件的JavaScript端口-https: //github.com/bjornharrtell/jsts


我查看了OpenLayers的几何图形,我认为resize方法将使我能够缩放几何图形以获得类似缓冲区的结果。但是您是对的,并集和相交都必须手动完成。唉。我真正需要的是JTS的纯JS端口。JSTS?=)
揭掉2011年

我到处走走了很多,我认为没有真正的全面,成熟和纯净的JS解决方案存在。目前,空间查询确实看起来是最好的东西,但我在GitHub上发现了其他一些有用的存储库:github.com/shawnbot/geoff/blob/master/src/geoff.jsgithub.com/maxogden/ geojson-js-utils
atogle

@atogle-有关将OpenLayers中的几何功能移至单独的库的讨论-osgeo-org.1803224.n2.nabble.com/…–
geographika

很高兴知道!
2011年


3

您可以看一下geoscript(在包括JS在内的多种语言中实现)


2
我很确定GeoScript JS不会在客户端/浏览器上运行。该网站称它是为RingoJS设计的。它还似乎具有JTS依赖性。
11


1

Turf是一个提供大量空间操作的JavaScript库。它也是模块化的,因此您只能在最终脚本中包括所需的功能。


不幸的是,它在几何形状和可用操作方面受到严重限制。您可以指向多边形中的东西,但这似乎基本上就是它。
bugmenot123 '02

Turf实际上在许多操作中都使用了我自己的JSTS(但是是较旧的版本)。如果直接使用JSTS,则可以访问更详细的API,该API比Turf可以做的更多。见github.com/bjornharrtell/jsts
比约恩·哈特尔

我发现很难让JSTS在打字稿应用程序中工作,而Turf.js可以立即使用。JSTS功能更丰富,但是对于我的需求Turf.js发挥得非常好。
HankCa


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.