将2500个geoJSON多边形渲染到传单地图上

时间:2013-07-13 01:47:05

标签: javascript map openstreetmap leaflet

我一直在寻找,但似乎无法找到解决方案。

我有一个大小为170mb的GeoJSON文件。它包含大约2500个多边形。不知何故,我需要将它渲染到传单地图。很明显,我没有机会。

呈现此数据的最简单方法是什么?我能够创建一个完整的透明png,可以简单地在世界地图上渲染。巨大的尺寸是由于多边形的复杂性和数量。在这一点上,我不需要它是互动的。

谢谢, 布赖恩

4 个答案:

答案 0 :(得分:13)

最简单的方法是根据该数据创建自己的地图图块。有几种方法可以实现这一点,但我的建议是你使用TileMill。它是免费的,非常容易使用。所以,基本上你会:

  • 使用TileMill并指定您的GeoJSON文件作为数据源

  • 使用TileMill中的特殊类CSS语言配置地图的显示方式(如多边形的颜色)

  • 生成图块

  • 在Leaflet地图中加载一个引用文件的新TileLayer

我实际上在不久前编写了一个使用.shp而不是GeoJson的教程,但应该足够相似:

http://build-failed.blogspot.pt/2012/03/custom-map-tiles-part-2-tilemill.html

答案 1 :(得分:7)

我无法与psousa的推荐争论。对于简单的演示,TileMill是一个好主意。

但是,如果你想将你的多边形叠加到另一张地图上,我认为唯一的方法是使用Mike Bostock的TopoJSON和D3。

主要的TopoJSON页面: https://github.com/mbostock/topojson/wiki

您正在谈论的规模的一个例子: http://bl.ocks.org/mbostock/4206573

你必须购买迈克在github上的优秀例子,看看如何将传单与D3叠加结合起来。

我目前正在成功完成数百个复杂多边形。没有必要突破成千上万......但是。

答案 2 :(得分:6)

在加载一段时间之后,还有geojson-vt,显然是can to the tiling serverless on-the-fly

demo gif from GitHub

答案 3 :(得分:3)

另一个简陋的建议。 通过推出我自己的Geoserver和PostgreSQL DB + PostGIS实例并生成WMS(而不是WFS),我已成功完成加载10000多个多边形和查询属性,如图所示。

10000+ polygons

但实施起来并不简单,特别是如果geojson数据是原始(且唯一)数据

在这方面,我会使用TileMill来回答psousa的答案。