谷歌地图中的邻近搜索

5

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

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

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

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

我找到了这个链接,其中有一些示例代码。但我不确定我能否使用该代码(以及我应该使用哪个代码)。是否有更好的示例?

另外,我考虑向数据库添加一个新表,用于存储每个商店的地理代码。除了'id'、'latitude'和'longitude'之外,我需要更多的字段吗?

更新
我刚刚在phpro.org上找到了这个链接。看起来正是我需要的!有人使用过他们的示例并可以对此发表评论吗?


你的系统中有POI吗?还是你希望也使用地图来实现这个功能? - Petrogad
@Frederico:什么是POI? - Steven
2个回答

2

你不能直接使用Google地图API进行半径搜索,但是你应该知道(或者可以通过地址的编码找出)每个感兴趣点(POI)的纬度和经度,并在搜索中包含它们。

之后,你可以使用大圆公式来搜索相邻点,这种方法非常快速。我们已将其实现为一个存储过程用于我工作中的定位服务,并用它来搜索超过3500个位置,响应时间不到0.1秒。


我的ISP不允许存储过程 :( - Steven

1
一些 SQL 实现包含地理空间扩展。在这些实现中,您可以直接编写 WHERE 子句,通过距离指定点的距离过滤结果。
检查您的 SQL 实现文档。如果它具有地理空间 POINT 类型,则将坐标输入为 POINT 而不是 lat/lng 对是有意义的,并且考虑将该字段用作 SPATIAL KEY 如果您主要通过位置访问表格。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接