首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何按坐标过滤GeoJSON/TopoJSON数据?

如何按坐标过滤GeoJSON/TopoJSON数据?
EN

Stack Overflow用户
提问于 2017-06-29 22:58:58
回答 1查看 558关注 0票数 1

我有包含GeoJSON/TopoJSON数据的大文件(每个约100MB)。

这些都有州和县的边界。状态层加载很好,因为它没有太多的数据,但是有县的层在Chrome中会导致页面崩溃。

因此,文件本身从网络加载,并被正确解析,但当涉及到将它们放在传单地图上时,它会冻结并崩溃。

作为解决方案,我想知道是否可以根据要素的坐标过滤要素?我可以得到地图的视口边界。

有没有方法可以过滤坐标在某些边界内的要素?

这样,我可以只过滤那些应该在当前视图中渲染的内容,而忽略其余的内容,然后在地图/缩放上重复此例程。

EN

回答 1

Stack Overflow用户

发布于 2017-06-29 23:13:38

首先,Leaflet有一个getBounds()方法,您可以使用它来仅加载边界框中的特征。这可以通过使用moveend事件在地图“移动”(缩放、拖动)时触发getBounds()方法来完成。

所以,基本上:

代码语言:javascript
复制
map.on('moveend', function() {
map.getBounds()
//erase the features you had on the map
//Then load on the map only the features with coordinates inside the Bounging Box. 
}

当然,以上只是一种方法。每次地图“移动”时,先前的特征都会被删除并加载新的特征。这可能会导致功能加载速度变慢,但对于如此大的文件,您可能不得不接受它。

此外,您还可以尝试使用代码,例如,加载新功能,然后删除旧功能。此外,您可以加载比边界框大的长方体的特征。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44828677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档