我有一个项目,使用Google地方搜索特定类型的商家,使用关键字搜索,以我用户的当前位置为中心。例如,假设我试图找到粉红兔子兔子#34;" Pink Bunny Rabbits"最接近我的用户。
在某些情况下,我的用户位于我的特定类型的商家都没有使用Google Places API最大搜索范围(20KM,IIRC)的地方。 "没有Pink Bunny Rabbits靠近你"
是否有一些方法可以搜索最近的匹配业务,即使它超出了最初的最大搜索范围? "最近的粉红兔子兔子:30英里远在爱荷华州的Sometown"
Google商家信息是否是用于此辅助搜索的正确API。
我可以使用哪些后备服务来查找粉红兔子兔子#34;最靠近我的用户的商店?
答案 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);
找出距离最小的地方。