如何在 iOS 版 Google Places API 中查找当前用户位置
Posted
技术标签:
【中文标题】如何在 iOS 版 Google Places API 中查找当前用户位置【英文标题】:How to find current user location to use in Google Places API for iOS 【发布时间】:2012-08-21 10:13:14 【问题描述】:我希望使用此 Google Places API 网址在 ios 应用中进行搜索。而不是使用指定的位置,我想使用用户的当前位置:
NSURL *googlePlacesURL = [NSURL URLWithString:@"https://maps.googleapis.com/maps/api/place/search/xml?location=34.0522222,-118.2427778&radius=500&types=spa&sensor=false&key=AIzaSyAgcp4KtiTYifDSkIqd4-1IPBHCsU0r2_I"];
是否需要存储用户当前的纬度/经度位置,然后将这些值放入 NSURL?
感谢您的帮助
【问题讨论】:
【参考方案1】:您的 URl 显示您想列出当前位置附近的地点。
为此,您需要当前位置坐标、半径、搜索到的地名和关键字。
这样做:
第 1 步:添加 CoreLocation 框架
第 2 步:#import
第 3 步:添加 CLLocationManagerDelegate 委托
第 4 步:制作 CLLocationManager *locationManager;
第 5 步:初始化 CLLocationManager(通常在 ViewDidLoad 中)
self.locationManager = [[CLLocationManager alloc] init];// autorelease];
// This is the most important property to set for the manager. It ultimately determines how the manager will
// attempt to acquire location and thus, the amount of power that will be consumed.
locationManager.desiredAccuracy = kCLLocationAccuracyBest ;
// Once configured, the location manager must be "started".
[locationManager startUpdatingLocation];
locationManager.delegate = self;
第 6 步:为 CLLocationManager 编写代码
-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
StrCurrentLongitude=[NSString stringWithFormat: @"%f", newLocation.coordinate.longitude]; // string value
StrCurrentLatitude=[NSString stringWithFormat: @"%f", newLocation.coordinate.latitude];
appDeleg.newlocation=newLocation;
[locationManager stopUpdatingLocation]; // string Value
第 7 步:使用坐标和开火请求:
[NSURL URLWithString:[NSString stringWithFormat:@"https://maps.googleapis.com/maps/api/place/search/xml?location=%@,%@&radius=%@&name=%@&sensor=false&key=YOU-API-KEY",StrCurrentLatitude,StrCurrentLongitude,appDeleg.strRadius,strSelectedCategory]
享受
【讨论】:
请注意,委托方法-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
在iOS 6.0中已被弃用,建议使用- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
参考here以上是关于如何在 iOS 版 Google Places API 中查找当前用户位置的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Google Places Autocomplete API iOS 保存以前搜索过的结果
适用于 android 的 Google 地图和 Places SDK 在发行版 APK 中不工作
Google Map/Places API 是不是与 iOS 6 兼容?
在 Google Places 自动完成 iOS api 中包含距离
在使用适用于 iOS 的 Google Maps SDK 和适用于 iOS 的 Google Places 时,我找不到在哪里可以获得 POI 结果