我正在使用 OpenLayers 创建一个 Web 应用程序。我已经实现了这样的功能,用户可以将点或多边形添加到使用 JavaScript 显示的地图中。我现在需要将此数据保存到 shapefile。关于如何做的任何想法?
3 回答
我知道这是一个旧线程,但是在自己进行了一些谷歌搜索以查看是否有任何东西之后,我带着同样的问题来到这里。我得出的结论是没有但可能有,所以我写了它:
https://code.google.com/p/js2shapefile/
这是我第一次在 Javascript 中按照这些方式做任何事情,所以我相信你会发现我的代码有各种各样的奇怪之处......但是,它适用于 ESRI Javascript API 图形和谷歌地图标记,在任何速度。它也可以很容易地扩展为将 OpenLayers 向量作为输入,但我还没有这样做。
您可能必须在服务器上执行此操作,除非有 shapelib 的 javascript 实现。
实际上,您是希望网络用户获取要保存的 shapefile 还是要将其保存在服务器上?
在服务器上有很多方法可以做到这一点,具体取决于您选择的服务器语言。在 python 中,您只需导入 ogr 库并编写它...尽管您需要从客户端构造一个包含数据的 Web 请求...
也许 geoscript 可以提供帮助:
http://geoscriptblog.blogspot.com/2010/06/merging-shapefiles-with-javascript.html
这里有一个关于这个问题的很好的概述。为了仅使用客户端 javascipt 转换为形状,您可以基于JavaScript Shapefile to GeoJSON library工作。