如何实现“在X里程内搜索”

时间:2013-08-15 21:46:14

标签: php google-maps search

我不是技术问题,但有人知道如何实施“距离城市8英里范围内的搜索”

我看起来像Autotrader Site

上的搜索

是否存在执行此操作的在线服务(可能是谷歌地图API?),或者通常由开发人员构建。

2 个答案:

答案 0 :(得分:2)

以下是我采取的步骤:

假设您允许用户搜索8英里范围内的城市,请匹配表A中的记录,这些记录还包含地址或城市字段。

  1. 步骤1:当您向表A添加新记录(稍后将用于搜索)时,您可以通过Google Map API保存该地址或城市的纬度/经度。那张桌子。

  2. 第2步:当用户输入city关键字时,再次使用Google Map API获取搜索关键字城市的纬度经度。

  3. 步骤3:使用关键字lat / long与表记录lat / long匹配,使用带有“having”语句的Harvensine公式查询来获取必要的记录。

  4. 关于如何执行此操作的公式和mysql查询,is described well here
    要使用的Google地图API为in this google documentation

    有一点需要注意的是,假设你输入一个城市名称,比如“洛杉矶”。假设洛杉矶在地图上是一个“点”是不正确的......它是一个有形状的城市。所以假设你说洛杉矶5英里范围内的所有结果......这个问题很模糊,因为人们可能会问 - 洛杉矶的哪一端?出于这个原因,谷歌api将返回针对同一城市的多组坐标,以定义该位置的边界多边形线。如果你真的希望你的结果准确,不要只考虑距离中心5英里,考虑其他坐标,并使用结果的联合。

答案 1 :(得分:1)

如果您要在某个位置的X英里内的Google地图上查找位置类型,则可以执行此操作https://developers.google.com/places/documentation/?hl=fr&csw=1#PlaceSearches

如果您要在某个位置的X英里内的特定位置(例如数据库中的位置)中查找位置,则您必须自己完成一些操作。使用Google地图获取每个位置的经度和高度,然后使用类似http://www.movable-type.co.uk/scripts/latlong.html之类的公式计算距离,然后仅显示您想要的距离内的结果。