MySQL - 使用空间多边形(边界)查找点

时间:2016-04-24 23:49:10

标签: php mysql polygon polygons

当其他人按国家/地区或城市搜索时,我想根据位置(纬度/经度)选择照片。 例如:照片的位置是12.127,42.127 - >要求是"旧金山" - >选择此区域内的点(一个很好的例子是Instagram,照片链接到城市+国家)

目前我正在寻找使用多边形来查找基于城市/国家/地区的位置。但是我不确定如何在我的数据库中使用和存储多边形。

以下是我的视觉步骤(不确定技术上是否正确)

  1. 根据table1
  2. 中的城市/国家/地区获取多边形/区域
  3. table2
  4. 多边形内的table1中查找点

    如果这些步骤正确,我找不到任何资源来获取城市或国家/地区的多边形

    请提供一些示例+表格结构以及如何实施此

    的说明

    谢谢:)

1 个答案:

答案 0 :(得分:0)

Mysql已经有一段时间了,一直支持geospatial数据类型和函数。

您可以将城市或任何其他地方存储为多边形,并且可以使用其中一个Within() or Contains()函数(每个函数中有3个)来测试某个点是否在某个城市内。

Mysql文档包含大量有关数据类型和函数的示例。您还可以在Internet上找到包含各种都市区坐标的免费和非免费来源。推荐异地资源是SO的主题,因此我不会提出任何建议。