MySQL - 使用空间多边形(边界)查找点
MySQL - Find points using spatial polygons (boundaries)
我想在其他人按国家或城市搜索时 select 基于位置 (lat/lon) 的照片。
例如:照片的位置是 12.127、42.127 -> 请求是 "San Francisco" -> select 点在这个区域内(一个很好的例子是 Instagram,其中照片链接到城市 + 国家)
现在我正在寻找使用多边形来查找基于 city/country 的位置。但是我不确定如何在我的数据库中使用和存储多边形。
这是我的视觉步骤(不确定技术上是否正确)
- 根据 city/country 从
table1
得到 polygons/areas
- 在
table1
的多边形内查找 table2
的点
如果这些步骤正确,我找不到任何资源来获取城市或国家/地区的多边形
请包括一些示例 + table 结构和关于如何实现的解释
谢谢 :)
Mysql 一段时间以来一直支持 geospatial 数据类型和函数。
您可以将城市或任何其他地方存储为多边形,并且可以使用 Within() or Contains() 函数之一(每个函数有 3 个)来测试某个点是否在城市内。
Mysql 文档包含大量关于数据类型和函数的示例。您还可以在 Internet 上找到包含各个都市区坐标的免费和非免费资源。推荐异地资源与 SO 无关,因此我不会提出任何建议。
我想在其他人按国家或城市搜索时 select 基于位置 (lat/lon) 的照片。 例如:照片的位置是 12.127、42.127 -> 请求是 "San Francisco" -> select 点在这个区域内(一个很好的例子是 Instagram,其中照片链接到城市 + 国家)
现在我正在寻找使用多边形来查找基于 city/country 的位置。但是我不确定如何在我的数据库中使用和存储多边形。
这是我的视觉步骤(不确定技术上是否正确)
- 根据 city/country 从
table1
得到 polygons/areas
- 在
table1
的多边形内查找
table2
的点
如果这些步骤正确,我找不到任何资源来获取城市或国家/地区的多边形
请包括一些示例 + table 结构和关于如何实现的解释
谢谢 :)
Mysql 一段时间以来一直支持 geospatial 数据类型和函数。
您可以将城市或任何其他地方存储为多边形,并且可以使用 Within() or Contains() 函数之一(每个函数有 3 个)来测试某个点是否在城市内。
Mysql 文档包含大量关于数据类型和函数的示例。您还可以在 Internet 上找到包含各个都市区坐标的免费和非免费资源。推荐异地资源与 SO 无关,因此我不会提出任何建议。