[AMapServices sharedServices].apiKey = @"80985a4a5ea3794dd8155f9a4973526b";
pragma mark - 创建地图
-(void)createMap{
///初始化地图
self.mapView = [[MAMapView alloc] initWithFrame:CGRectMake(0, self.topView.bottom, SCREENWIDTH, SCREENHEIGHT - self.topView.bottom)];
self.mapView.showsCompass = NO; // 隐藏指南针
self.mapView.showsScale = NO; // 隐藏比例尺
self.mapView.language = MAMapLanguageZhCN;
self.mapView.mapType = MAMapTypeStandard;
self.mapView.zoomLevel = 17;
self.mapView.delegate = self;
///如果您需要进入地图就显示定位小蓝点,则需要下面两行代码
self.mapView.showsUserLocation = YES;
self.mapView.userTrackingMode = MKUserTrackingModeFollow;
///把地图添加至view
[self.view addSubview:self.mapView];
}
// MARK: - 开始定位
-
(void)startLocation {
self.locationManager = [[AMapLocationManager alloc] init];
self.locationManager.delegate = self;
self.locationManager.distanceFilter = kCLDistanceFilterNone;
//要求CLLocationManager对象的返回结果尽可能的精准
[self.locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
[self.locationManager setPausesLocationUpdatesAutomatically:NO];[self.locationManager setAllowsBackgroundLocationUpdates:YES];
//持续定位返回逆地理编码信息
[self.locationManager setLocatingWithReGeocode:YES];
[self.locationManager startUpdatingLocation];self.search = [[AMapSearchAPI alloc] init];
self.search.delegate = self;
}
// MARK: - 接收位置更新 -
(void)amapLocationManager:(AMapLocationManager *)manager didUpdateLocation:(CLLocation *)location
{
NSLog(@"location:{纬度:%f; 经度:%f; accuracy:%f}", location.coordinate.latitude, location.coordinate.longitude, location.horizontalAccuracy);NSUserDefaults *userStr = [NSUserDefaults standardUserDefaults];
[userStr setFloat:location.coordinate.longitude forKey:@"lngLat.lng"];
[userStr setFloat:location.coordinate.latitude forKey:@"lngLat.lat"];
[userStr synchronize];//反编码
AMapReGeocodeSearchRequest regeo = [[AMapReGeocodeSearchRequest alloc] init];
regeo.location = [AMapGeoPoint locationWithLatitude:location.coordinate.latitude longitude:location.coordinate.longitude];
NSLog(@"%f--%f",location.coordinate.latitude,location.coordinate.longitude);
regeo.requireExtension = YES;
//发起逆地理编码
[self.search AMapReGoecodeSearch:regeo];
}
// MARK: - 逆编码
/ 逆地理编码回调. */ -
(void)onReGeocodeSearchDone:(AMapReGeocodeSearchRequest *)request response:(AMapReGeocodeSearchResponse *)response
{
if (response.regeocode != nil)
{
//解析response获取地址描述
NSLog(@"逆编码:%@",response.regeocode.addressComponent.township);
self.topLabel.text = response.regeocode.addressComponent.township;
NSUserDefaults *userStr = [NSUserDefaults standardUserDefaults];
[userStr setObject:response.regeocode.addressComponent.township forKey:@"pointName"];
[userStr synchronize];
}else{
self.topLabel.text = @"暂无热点信息";
}
[self.locationManager stopUpdatingLocation];
} -
(void)AMapSearchRequest:(id)request didFailWithError:(NSError *)error{
NSLog(@"error:%@",error);
}
网友评论