什么是处理3000个以上多边形的最佳开源Web映射解决方案?


12

我有3000多个代表分水岭的多边形(18个主要分水岭)。在第一阶段,将显示所有18个分水岭,其列表将放置在左侧边栏中。如果有任何用户将鼠标悬停在地图上,则仅弹出窗口将显示分水岭名称。如果任何用户单击地图上的任何主要分水岭,它将打开带有详细信息的弹出窗口。以更大的缩放比例,将显示所有分水岭。

我在征求您的意见,哪种开源解决方案最适合处理大量多边形?

我当时在考虑LeafletOpenLayers,但我不知道它们可以处理大量的多边形。

另外,您是否建议将它们存储在mysql中?


3
您可以栅格化这些多边形吗?还是使用诸如地理服务器或要素服务器之类的要素服务器?
dassouki

Answers:


12

我将创建一个图像服务(栅格图层),并通过Web Map Service(WMS)提供它。这样,只要支持WMS(OpenLayers即可),您就可以使用任何感觉舒适的API框架。您可以使用WMS显示所有多边形要素的图层,然后使用WMS的GetFeatureInfo onclick来获取有关该多边形的信息。

如果出于任何原因需要地图上的矢量数据,则可以使用GetFeatureInfo响应数据在onclick上动态创建它。


5

请参见TileMill,它可以将UTFGrid交互栅格化为MBTiles文件,并将其托管在MapBox或诸如TileStache之类的开源MBTiles服务器实现中

这里有很多多边形。这种方法要求您栅格化(也就是烘烤)切片,但实际上,这是在没有大量服务器资源,自定义应用程序或一组非常有限的浏览器的情况下完成所需操作的唯一方法。


我喜欢这个例子。您能告诉我如何栅格化shapefile吗?在TileMill中?谢谢。
逆流

是的,这是最常见的方式。这是有关以这种方式添加工具提示的文档。如果您对GUI工具和Python / Mapnik专业版超级过敏,那么还有一条cli路线可以避免所有这些情况,但是有点神秘。
tmcw 2012年

2

比例依赖性和空间索引数据库将是此问题的关键。您应该能够使用至少两个,可能是三个或四个级别来代表分水岭。例如,您可以将数据划分为“主要”(18个),“次要”(所有属于同一“主要”的所有中尺度分水岭的某种组合)和第三类(3000个多边形)。这将为您提供三个不同的矢量层/服务。

使用比例依赖关系可以根据用户的缩放级别仅绘制适当的服务。

使用具有空间索引的数据库来确保服务能够快速绘制,并且仅绘制填充当前视图窗口所需的部分。

或者,您可以考虑创建分水岭图的图块(再次基于每个图层的适当比例创建),然后以这种方式提供服务。

该站点上已经存在许多问题,建议采用适当的开源解决方案来采用这些策略。


0

除了TileMill之外,您还可以签出MangoMap,它不是开源的,但目前是免费的,并且能够处理此类数据。

[免责声明:我使用的是MangoMap,但正在回答,因为在这种情况下它是合适的]

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.