使用谷歌地图进行接近搜索

问题描述:

我正在开发一家商店位置应用程序。使用谷歌地图进行接近搜索

查找一家商店,它目前显示基于地址和邮政编码的Google地图中的位置。

现在我想建立一个功能,它也显示了500米范围内的其他商店。 要做到这一点,我必须做一个邻近搜索/计算。

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

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

此外,我正在考虑为数据库添加一个新表,该数据库存储每个商店的地理代码。我需要比'id','latitude'和'longitude'更多的字段吗?

UPDATE
我刚刚发现this link在phpro.org。它看起来就是我所需要的!有没有人使用他们的例子,并可以评论它?

+0

您的系统中有POI吗?还是你希望使用地图来做到这一点? – Petrogad 2009-10-09 17:56:19

+0

@Frederico:什么是POI? – Steven 2009-10-10 22:21:03

你不能直接用google地图API搜索半径,但是,你应该知道(或者可以通过地址解析他们的地址来找出它们)你想包含在搜索中的每个兴趣点(POI)的经度和纬度。

在此之后,您可以使用Great Circle公式来搜索接近度,并且它变得非常快。我们已将此作为存储过程用于我工作中的定位器服务,并使用它在超过0.1秒的响应时间内搜索> 3500个位置。

+0

我的ISP不允许存储过程:( – Steven 2009-10-02 17:11:39

+0

你可以在代码中实现它,这个公式很好的公开了。 – 2009-10-02 17:13:10

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

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