查找最近的位置 Google Places API
Posted
技术标签:
【中文标题】查找最近的位置 Google Places API【英文标题】:Finding nearest location Google Places API 【发布时间】:2015-03-22 05:42:44 【问题描述】:我有一个项目,它使用 Google 地方来搜索特定类型的业务,使用关键字搜索,以我用户的当前位置为中心。例如,假设我试图找到离我的用户最近的“Pink Bunny Rabbits”。
在某些情况下,我的用户所在的地方我的任何特定类型的企业都不符合 Google Places API 最大搜索半径(20KM,IIRC)。 “你身边没有粉红兔兔”
是否有某种方法可以搜索最近的匹配商家,即使它超出了初始最大搜索范围? “最近的粉红兔兔:30 英里外的某城,IA”
Is Google Places 是用于此辅助搜索的正确 API。
我可以使用哪些后备服务来找到离我的用户最近的“Pink Bunny Rabbit”商店?
【问题讨论】:
【参考方案1】:嗯,可以进行更大半径的地点搜索。 https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=-33.8670522,151.1957362&radius=500&types=food&name=cruise&key=AddYourOwnKeyHere
。
当前搜索覆盖搜索 url 中提供的经纬度周围 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);
找出距离最短的地方。
【讨论】:
以上是关于查找最近的位置 Google Places API的主要内容,如果未能解决你的问题,请参考以下文章
用于我的 iPhone 应用程序的 Google Places API
Google Places API 中缺少 Google Maps 中的地点
无法获得有关Google Places API的其他详细信息,例如'opening_hours'