【问题标题】:Proximity search with Google maps使用 Google 地图进行邻近搜索
【发布时间】:2009-10-03 08:12:05
【问题描述】:

我正在开发一个商店位置应用程序。

查找商店,它目前根据地址和邮政编码在 googlemaps 中显示位置。

现在我想构建一个功能,它还显示半径 500 米内的其他商店。 为此,我必须进行邻近搜索/计算。

我最大的问题是我应该如何处理这个问题。

我做了find this link,其中有一些示例代码。但我不确定我是否可以使用该代码(以及我应该使用哪些代码)。谁有更好的例子?

我还在考虑向数据库添加一个新表,该表存储每个商店的地理代码。我需要比“id”、“纬度”和“经度”更多的字段吗?

更新
我刚刚在 phpro.org 找到了this link。看来这正是我所需要的!有没有人用过他们的例子并可以发表评论?

【问题讨论】:

  • 您的系统中有 POI 吗?还是您也希望使用地图来做到这一点?
  • @Frederico:什么是 POI?

标签: php google-maps geocoding proximity


【解决方案1】:

您不能直接使用 google maps API 进行半径搜索,但是,您应该知道(或者可以通过对其地址进行地理编码来计算)您想要包含在搜索中的每个兴趣点 (POI) 的纬度和经度。

在此之后,您可以使用Great Circle 方程来搜索邻近度,结果非常快。在我的工作中,我们已将此作为定位器服务的存储过程实现,并使用它来搜索超过 3500 个位置,响应时间低于 0.1 秒。

【讨论】:

  • 我的 ISP 不允许存储过程 :(
【解决方案2】:

一些 SQL 实现包含地理空间扩展。在这些实现中,您可以直接编写 WHERE 子句,按与指定点的距离过滤结果。

检查您的 SQL 实现的文档。如果它具有地理空间 POINT 类型,那么将坐标输入为 POINT 而不是 lat/lng 对是有意义的,如果您打算主要按位置访问表,请考虑使用该字段作为 SPATIAL KEY。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-18
    • 2023-03-25
    • 2011-02-26
    • 1970-01-01
    相关资源
    最近更新 更多