笔者的app要实现定位所在省和城市名称,借此总结巩固一下!

@interface VenueListVC : BasePageTableViewVC<BMKLocationServiceDelegate,BMKGeoCodeSearchDelegate> {
BMKLocationService *_locService;
BMKGeoCodeSearch *_geoSearch;
float _curLatitude, _curLongitude;
NSString *_curCityName,*_curProName;
- (void)viewDidLoad {
//百度地图定位
if (![CLLocationManager locationServicesEnabled]) {
[UIAlertView showMsg:@"请在“系统设置”中开启定位服务" cancelText:@"确定" cancelAction:^{
[self onBackButtonClick:nil];
} okText:nil okAction:nil];
return;
} //初始化BMKLocationService
if (_locService == nil) {
_locService = [[BMKLocationService alloc]init];
}
_locService.delegate = self;
//启动LocationService
[_locService startUserLocationService]; _geoSearch = [[BMKGeoCodeSearch alloc] init];
//编码服务的初始化(就是获取经纬度,或者获取地理位置服务)
_geoSearch.delegate = self;//设置代理为self
// [self showProgressHUDWithText:@"正在定位..."]; }
//反向地理编码
-(void)onGetReverseGeoCodeResult:(BMKGeoCodeSearch *)searcher result:(BMKReverseGeoCodeResult *)result errorCode:(BMKSearchErrorCode)error
{
if (error == ) {
BMKPointAnnotation* item = [[BMKPointAnnotation alloc]init];
item.coordinate = result.location;
item.title = result.address;
NSString* titleStr;
NSString* showmeg;
titleStr = @"反向地理编码";
showmeg = [NSString stringWithFormat:@"%@",item.title];
_curCityName = result.addressDetail.city;
_curProName = result.addressDetail.province;
NSLog(result);
} }
//处理位置坐标更新
- (void)didUpdateBMKUserLocation:(BMKUserLocation *)userLocation
{
[_locService stopUserLocationService]; CLLocationCoordinate2D coor;
coor=userLocation.location.coordinate;
_curLatitude = coor.latitude;
_curLongitude = coor.longitude; CLLocationCoordinate2D pt = (CLLocationCoordinate2D){_curLatitude, _curLongitude};
BMKReverseGeoCodeOption *reverseGeocodeSearchOption = [[BMKReverseGeoCodeOption alloc]init];
reverseGeocodeSearchOption.reverseGeoPoint = pt;
[_geoSearch reverseGeoCode:reverseGeocodeSearchOption]; } /**
*定位失败后,会调用此函数
*@param error 错误号
*/
- (void)didFailToLocateUserWithError:(NSError *)error {
[_locService stopUserLocationService];
[self hideProgressHUD];
}
04-28 12:19