首页 > 解决方案 > 压缩大型 GeoJSON/Shapefle 数据集以在 Web 浏览器上查看

问题描述

所以我有一个 3GB 大小的 shapefile,你可以想象我的浏览器不喜欢它。如何压缩我拥有的数据,无论是在 lon/lat 坐标还是 X、Y 网格上的点?

我在 Computerphile 上看到了一个关于离散余弦变换以减少高维度数据的视频,但作为一名程序员而不是数学家,我不知道这是否可能。我试图在文件中每 10 步取一个点,如下所示:map[0:100000:10] 但这产生了不受欢迎且非常有损的效果。

理想情况下,我希望拥有我的数据,这样它就可以像 Google 地球一样工作,其中分辨率会根据您的视口高度进行调整。因此,当您放大地图时,视口中会显示更高的频率数据,从而限制了点的数量,但我不知道他们是如何做到这一点的,而且谷歌没有返回任何有价值的东西。

最后一点是,由于这些只是向量,我可以使用任何类型的向量压缩吗?我不是很擅长数学,所以你可以想象,当我研究这个时,我很快就会感到困惑。我了解 SciPy 内置了一些 DCT,我知道它还有很多我不理解的其他功能,也许我可以使用它?

标签: pythonvectorscipycompressiongis

解决方案


我可以回答“详细程度”部分:您可以尝试使用小册子(一个 javascript 映射库)。然后,您可以定义一个“粗略”图层,该图层显示为低缩放级别和“高细节”图层,仅显示在更高的缩放级别。您可能需要捕获地图zoomend事件并从那里加载/卸载图层。


推荐阅读