查找最近的位置Google Places API

时间:2015-03-22 05:42:44

标签: google-places-api

我有一个项目,使用Google地方搜索特定类型的商家,使用关键字搜索,以我用户的当前位置为中心。例如,假设我试图找到粉红兔子兔子#34;" Pink Bunny Rabbits"最接近我的用户。

在某些情况下,我的用户位于我的特定类型的商家都没有使用Google Places API最大搜索范围(20KM,IIRC)的地方。 "没有Pink Bunny Rabbits靠近你"

是否有一些方法可以搜索最近的匹配业务,即使它超出了最初的最大搜索范围? "最近的粉红兔子兔子:30英里远在爱荷华州的Sometown"

Google商家信息是否是用于此辅助搜索的正确API。

我可以使用哪些后备服务来查找粉红兔子兔子#34;最靠近我的用户的商店?

1 个答案:

答案 0 :(得分:0)

嗯,有一个范围可以进行更大半径的地方搜索。 https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=-33.8670522,151.1957362&radius=500&types=food&name=cruise&key=AddYourOwnKeyHere。 当前搜索覆盖了搜索网址中提供的纬度和经度500米左右的圆圈。最大值为50000.遗憾的是,Google Places API不会根据用户的当前位置对结果进行排序。您需要手动计算搜索结果的位置与当前位置之间的距离。

// Calculating the distance
float deltaLat = (currentLocation.lat - place.lat);
float deltaLng = (currentLocation.lng - place.lng);
float distanceInDegree = sqrtf(deltaLat * deltaLat + deltaLng * deltaLng);
float distanceInMeter = distanceInDegree * 4000;
printf("distanceInMeter = %f",distanceInMeter); 

找出距离最小的地方。