【问题标题】:How can I do to return places in distance order如何按距离顺序返回地点
【发布时间】:2023-04-11 05:41:01
【问题描述】:

我有一个包含地址的数据库(可以说超过 50 个)。他们从一个应用程序向我发送他们的位置,我必须通过离他们发送给我的位置更近的人返回位置订单。我是否必须每次都调用 Google Maps API,并且 50 次才知道?或者还有另一种方式,具有更好的性能。 谢谢

【问题讨论】:

标签: php ios mysql api google-maps


【解决方案1】:

我假设您的数据库是 MySQL,并且您有存储位置的纬度和经度。

您可以使用 SQL 查询进行地理空间搜索。比如这个

set @orig_lat=122.4058;
set @orig_lon=37.7907;

SELECT *, 3956 * 2 * ASIN(SQRT( POWER(SIN((@orig_lat - abs(dest.lat)) * pi()/180 / 2),2) + COS(@orig_lat * pi()/180 ) * COS(abs(dest.lat) *  pi()/180) * POWER(SIN((@orig_lon – dest.lon) * pi()/180 / 2), 2) )) as distance
FROM Places dest
ORDER BY distance;

假设您有 lat 和 lon 列,并且将从数据库中获取地点并按距离排序。

查看此演示文稿作为参考并了解计算http://es.scribd.com/doc/2569355/Geo-Distance-Search-with-MySQL

【讨论】:

  • 不鼓励仅链接答案
  • 感谢您的关注。我更新了回复并添加了链接作为参考。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多