返回矩形内部的点列表
我有一个数据库(MySQL),里面存储了一些地理坐标(经度和纬度)。现在我需要从一个矩形区域中查询出一些点,这个矩形由两个坐标点来表示每个角落。有没有什么快速的方法或者算法可以解决这个问题呢?
谢谢。
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分别是最西北和最东南的点的经纬度。
我希望你存储的经纬度是正数和负数的形式(而不是东西和南北的形式)——如果你是用东西和南北来表示的,查询会复杂得多。
这也假设这个矩形的边缘是沿着经纬度的直线走的。
老实说,这个问题太简单了,我觉得我可能漏掉了什么……