我一直在寻找,但似乎找不到解决方案。
我有一个 170mb 大小的 GeoJSON 文件。它包含大约 2500 个多边形。不知何故,我需要将它渲染到传单地图。显然在那个尺寸我没有机会。
呈现这些数据的最简单方法是什么?我是否能够创建一个完整的透明 png,它可以简单地呈现在世界地图上。巨大的尺寸是由于复杂性和多边形的数量。在这一点上,我不需要它是交互式的。
谢谢,布赖恩
我一直在寻找,但似乎找不到解决方案。
我有一个 170mb 大小的 GeoJSON 文件。它包含大约 2500 个多边形。不知何故,我需要将它渲染到传单地图。显然在那个尺寸我没有机会。
呈现这些数据的最简单方法是什么?我是否能够创建一个完整的透明 png,它可以简单地呈现在世界地图上。巨大的尺寸是由于复杂性和多边形的数量。在这一点上,我不需要它是交互式的。
谢谢,布赖恩
最简单的方法是根据该数据创建自己的地图图块。有几种方法可以实现这一点,但我的建议是您使用TileMill。它是免费的,而且非常易于使用。所以,基本上你会:
使用 TileMill 并将您的 GeoJSON 文件指定为数据源
在 TileMill 中使用特殊的类 CSS 语言配置地图的显示方式(如多边形的颜色)
生成瓷砖
在引用您的文件的传单地图中加载新的 TileLayer
实际上,我前段时间写过一个使用 .shp 而不是 GeoJson 的教程,但应该足够相似:
http://build-failed.blogspot.pt/2012/03/custom-map-tiles-part-2-tilemill.html
我无法反驳 psousa 的建议。对于简单的演示,TileMill 是一个好主意。
但是,如果您想将多边形叠加到另一张地图上,我认为唯一的方法是使用 Mike Bostock 的 TopoJSON 和 D3。
TopoJSON 主页面: https ://github.com/mbostock/topojson/wiki
您正在谈论的规模示例:http: //bl.ocks.org/mbostock/4206573
您必须在 github 上浏览 Mike 的优秀示例,以了解如何将传单与 D3 叠加层结合使用。
我目前正在使用数百个复杂的多边形成功地做到这一点。还没有必要闯入成千上万的人……还没有。
还有geojson-vt,它显然可以即时平铺无服务器- 经过一段时间的加载时间。
只是另一个谦虚的建议。如图所示,通过推出我自己的 Geoserver 和 PostgreSQL DB + PostGIS 实例并生成 WMS(不是 WFS),我已经成功地加载了 10000 多个多边形并查询了属性。
但是实现起来并不简单,特别是如果geojson数据是原始(也是唯一的)数据
在这方面,我会第二个 psousa 使用 TileMill 的回答。