我一直在寻找,但似乎无法找到解决方案。
我有一个大小为170mb的GeoJSON文件。它包含大约2500个多边形。不知何故,我需要将它渲染到传单地图。很明显,我没有机会。
呈现此数据的最简单方法是什么?我能够创建一个完整的透明png,可以简单地在世界地图上渲染。巨大的尺寸是由于多边形的复杂性和数量。在这一点上,我不需要它是互动的。
谢谢, 布赖恩
答案 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。
答案 3 :(得分:3)
另一个简陋的建议。 通过推出我自己的Geoserver和PostgreSQL DB + PostGIS实例并生成WMS(而不是WFS),我已成功完成加载10000多个多边形和查询属性,如图所示。
但实施起来并不简单,特别是如果geojson数据是原始(且唯一)数据
在这方面,我会使用TileMill来回答psousa的答案。