4

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

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

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

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

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

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

更新
我刚刚在 phpro.org 找到了这个链接。看来这正是我所需要的!有没有人使用他们的例子并可以评论它?

4

2 回答 2

1

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

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

于 2009-10-02T17:10:48.077 回答
1

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

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

于 2009-10-03T00:12:05.993 回答