我有一个地理(纬度,经度)点的数据库(MySQL),我需要从一个矩形(每个顶点有 2 个坐标)中查询点列表。是否有任何查询或算法可以快速解决此问题。
谢谢。
我有一个地理(纬度,经度)点的数据库(MySQL),我需要从一个矩形(每个顶点有 2 个坐标)中查询点列表。是否有任何查询或算法可以快速解决此问题。
谢谢。
假设您的纬度/经度点已编入索引,那么任何 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,则查询会复杂得多。
这也假设矩形使得整个边缘沿着纬度/经度线轨迹。
老实说,这个很简单,我想我错过了一些东西....