0

我有一个地理(纬度,经度)点的数据库(MySQL),我需要从一个矩形(每个顶点有 2 个坐标)中查询点列表。是否有任何查询或算法可以快速解决此问题。

谢谢。

4

1 回答 1

1

假设您的纬度/经度点已编入索引,那么任何 SQL 查询都会非常快

SELECT point.lat, point.long FROM point where rect1.lat <= point.lat and point.lat <= rect2.lat and rect1.long <= point.long and point.long <= rect2.long

rect1.lat/rect1.long 和 rect2.lat/rect2.long 是最西北和最东南位置的纬度/经度。

我希望您将点和矩形的纬度/经度存储为正数和负数(而不是 E/WN/S)-如果您将其存储为 E/W 和 N/S,则查询会复杂得多。

这也假设矩形使得整个边缘沿着纬度/经度线轨迹。

老实说,这个很简单,我想我错过了一些东西....

于 2014-09-11T16:50:33.800 回答