我应该如何“接近”......“靠近”

时间:2011-10-21 21:11:21

标签: php api

我想在搜索字段中添加一项功能。 所以你可以写近:哥本哈根(例子)。

然后它应该在哥本哈根周围/内部(哥本哈根是丹麦首都)的5公里范围内,并获取其中的地址,并将其显示为结果..

所以需要所有地址,检查它们是否在哥本哈根周围5公里范围内,然后显示那些地址。

这可能吗?如果没有,任何类似的方法来做到这一点?我该怎么看?

2 个答案:

答案 0 :(得分:1)

您可以使用(例如)Google Maps API将geocode位置的文字说明(搜索字词和地址)添加到GPS坐标位置。然后,检查数据库中的哪些位置在搜索项位置的范围内。使用该API的条款和条件要求您使用地理编码结果来显示Google地图。

有效地确定“在范围内”可能会很棘手,但您通常需要支持GIS的数据库来为您进行计算。一个易于在任何数据库上实现的hackish快捷方式是将搜索项位置的北,东,南和西5 km(或任何距离)点,然后查找纬度和经度介于最小值之间的地址以及给你的最大纬度和经度。 This page列出了所需的公式。 (如果搜索区域靠近经度“环绕”并且由于地球的曲率而不搜索矩形,这种方法将不起作用,但是没有多少人搜索餐馆评论或者你在北极或者太平洋中部。)

答案 1 :(得分:0)

你应该看一下地理编码。

这样做的一种方法是使用Google Maps API,它允许您将地址转换为坐标,并且可以轻松计算一定距离内的地址。

看看: http://code.google.com/apis/maps/documentation/webservices/index.html

我敢肯定,如果你寻找“地理编码”,你会发现许多其他解决方案,如果你不喜欢这个特定的解决方案。