使用Google地图进行近距离搜索

时间:2009-10-02 17:02:16

标签: php google-maps geocoding proximity

我正在开发商店位置申请。

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

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

我最大的问题是,我应该如何解决这个问题。

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

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

更新
我刚在phpro.org找到了this link。它看起来就像我需要的!有没有人使用他们的例子并可以评论它?

2 个答案:

答案 0 :(得分:1)

您无法直接使用Google地图API搜索半径,但是,您应该知道(或者可以通过对地址进行地理编码来确定它们)您想要包含在搜索中的每个兴趣点(POI)的纬度和经度。

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

答案 1 :(得分:1)

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

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