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

#1 楼

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

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

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

更新

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

评论


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

–atogle
2011-3-12在17:54

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

–atogle
2011年4月1日17:12



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

– geoographika
2011年4月1日17:22



很高兴知道!

–atogle
2011年4月7日在16:27

#2 楼

我的JTS端口已经完成,这是一个纯JS端口,可以在https://github.com/bjornharrtell/jsts上找到。

在当前版本(0.9.1)上,支持谓词和覆盖的JTS核心功能。

评论


嘿,我最近完成了JSTS 1.0,它是现代JavaScript中JTS的完整且最新的版本。与0.x版本位于同一位置。

–BjörnHarrtell
16年2月29日在20:07

#3 楼

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

评论


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

–atogle
2011-3-12在17:51

#4 楼

如果您对Google AppEngine需要此功能,那么据我阅读,JTS正式与Google App Engine兼容。 http://giscloud.appspot.com/
上有一个基本演示。

#5 楼

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

评论


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

–bugmenot123
16年2月11日在10:40

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

–BjörnHarrtell
16-2-29在20:05

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

–汉卡
19年10月10日在3:25

#6 楼

无论使用哪种API /语言,都可以使用ArcGIS Server REST API。它提供了所有公开的方法。...

#7 楼

您可以参考开源javascript几何库@ geoJs。