我正在使用Google Maps Javascript库。 我有一个存储了多边形的数据库,我只想带上适合某些给定坐标的多边形。
假设我站在 Lat 99.42333, Long -99.169333... 我怎样才能把我周围 1 公里的多边形带过来?这是一个巨大的多边形表,因此无法测试每个多边形。
我正在考虑再添加 2 列"quadrant_lat"和"quadrant_lng",然后包装与之匹配的所有行,但我想这不是正确的方法。
有什么想法吗?谢谢
一个有效的解决方案是为数据库中的多边形创建地理索引。 几乎所有现代数据库都预先捆绑了地理索引和查询功能,或者提供了一个插件/库来执行此操作。
Geo 索引可用于搜索给定经度对的 X 米半径内的多边形。这是所有地理搜索中最简单的,但是,您可以使用 2D/3D 地理索引进行更高级的处理。在地图视图/客户端上,使用谷歌地图 API 呈现地理查询返回的多边形。
如果您的数据库没有 Geo 功能,则需要编写代码来自己完成繁重的工作。解决方案将取决于数据集的大小。
您正在使用什么数据库,有多少个多边形。?