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

标签 php mysql polygon

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

现在我正在寻找使用多边形来根据城市/国家查找位置。但是,我不确定如何在数据库中使用和存储多边形。

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

  1. 根据城市/国家/地区获取多边形/区域 table1
  2. table2 查找积分table1 的多边形内部

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

请提供一些示例+表格结构以及如何实现的说明。

最佳答案

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

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

Mysql 文档包含大量有关数据类型和函数的示例。您还可以在互联网上找到包含各个都市区坐标的免费和非免费资源。推荐场外资源与 SO 无关,因此我不会提出任何建议。

关于php - 使用空间多边形(边界)查找点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36830216/

相关文章:

javascript - 如何使用 Ajax 检索和存储数据

php - XML 解析错误; PHPWord

mysql 加入和获取

mysql - 多边形中的点 : Invalid GIS data provided to function st_within

python - 在 numpy 数组中生成填充的多边形

php - 单击按钮运行 SQL 查询

php - PDO错误: "SQLSTATE[HY000]: General error " When updating database

mysql - 如何合并两个sql结果

mysql - 将 blob 行从 MySQL 转储到文件

algorithm - 高效的矩形拟合算法