压缩大型GeoJSON/Shapefle数据集,以便在Web浏览器上查看



所以我有一个3GB大小的形状文件,你可以想象我的浏览器不喜欢它。如何压缩我拥有的数据,这些数据要么是 lon/lat 坐标,要么是 X,Y 网格上的点?

我在Computerphile上看到了一个关于Discreet Cosine变换的视频,用于减少高维数据集,但作为一名程序员而不是数学家,我不知道这是否可能。我试图在文件中每 10 个步骤取一个点,如下所示:map[0:100000:10],但这具有不希望且非常有损的效果。

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

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

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

此问题的一种解决方案是使用 Web 地图服务器 (WMS(,如 GeoServer 或 MapServer,它将 ShapeFile(尽管像 PostGIS 这样的空间数据库会更好(存储在服务器上,并将渲染图像(通常分解为可缓存的切片(发送到浏览器。

最新更新