【问题标题】:Return the list of points inside a rectangle返回矩形内的点列表
【发布时间】:2014-09-11 15:53:24
【问题描述】:

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

谢谢。

【问题讨论】:

  • 每个顶点4个坐标?当然每个顶点只有 2:纬度/经度
  • Ops,对不起,我的意思是每个顶点有 2 个坐标(纬度,经度)

标签: python mysql sql geometry sqlgeography


【解决方案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/W N/S) - 如果您将其存储为 E/W 和 N/S,则查询会很多更复杂。

这也假设矩形是这样的,整个边缘沿着纬度/经度线轨迹。

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

【讨论】:

  • 这是一个很好的答案。我发布这个问题是因为我认为有一些地理定位框架或特殊算法可以加快查询速度。
  • 但您不是在询问地理位置(不是真的),您只是询问数字 a 是否适合数字 b 和 c,SQL 非常适合使用正确的索引。如果您曾问过地理点(城镇、高山湖泊等)的问题,并且您想确定它们之间是否存在特定关系(事先知道它们的纬度/经度),那么这更像是一个地理框架类型的问题。
  • 是的,也许我高估了这个问题。谢谢!
猜你喜欢
  • 2019-06-07
  • 2013-05-15
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
  • 1970-01-01
  • 2019-09-08
相关资源
最近更新 更多