php - 地理邻近搜索

标签 php mysql google-maps

在应用程序中有要求声明将所有与特定国家和/或城市绑定(bind)的对象找出到谷歌地图中。

我们有使用 google map api 预先计算并存储在数据库中的具有各自纬度和经度的对象。有时,这些对象会在一定的服​​务范围/半径内提供服务,在该范围内它们可以提供服务。

例如现在的情况就像我想找出所有的对象 例如,它位于阿姆斯特丹。

应用程序应该找到位于 阿姆斯特丹,还有不完全位于阿姆斯特丹的物体 但在附近,服务范围可达阿姆斯特丹。

所以我知道阿姆斯特丹返回的纬度、经度值 谷歌地图,还有具有各自纬度、经度值和 服务范围/半径存储在数据库中。我怎样才能让它成为可能?

最佳答案

您可能应该在数据库中将国家/城市表示为多边形,然后使用 OpenGIS 样式的多边形相交函数进行相交。

但是,MySQL 不会正确实现多边形交集(仅 MBR - 最小边界矩形)。因此,这种方法虽然在理论上是正确的,但对 MySQL 根本不起作用。您可能需要考虑迁移到 Postgres。

您可以做的是使用您的数据库的 MBR 交集功能,并用您自己的执行多边形/点交集的代码补充它们(您可以找到执行此操作的库)。

关于php - 地理邻近搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/626024/

相关文章:

MYSQL 窗口函数

javascript - Javascript函数什么时候执行? php 变量没有改变传入的参数

php - 有没有不需要javascript的博客网站评论系统?

mysql - 这个数据库转储设计好吗?

mysql - 想更改为每个单词结尾而不是字符串结尾(匹配)- MariaDB/MySQL + REGEXP_REPLACE

javascript - 谷歌地图地理编码和循环标记

javascript - 如何让 Google map 搜索栏位于半透明全宽 div 中

php - 当内容类型为 HTML 时,JSON_PRETTY_PRINT 无法按预期工作

php - 抓取 Soundcloud 图像

php - 我的代码只更新数据库的最后一行而不是第二行或我想要的那一行,而且总是最后一行