Daily Archives: 2015年6月6日

如何解决百度地图反地理编码失败的问题!!

我们在使用百度地图定位成功后,一般会使用反地理编码的方式进行地址解析,获取地址信息供我们应用使用,如下方法所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// 获取地址位置后调用方法
- (void)didUpdateBMKUserLocation:(BMKUserLocation *)userLocation
{
/*
????code for location...
?*/
????????// 反地址编码获取地址
????????BMKReverseGeoCodeOption *option = [[BMKReverseGeoCodeOption alloc] init];
????????option.reverseGeoPoint = userLocation.location.coordinate;
?????????
????????SALog(@"开始反地理编码...");
?????????
????????if (![self.geoCode reverseGeoCode:option]){
????????????SALog(@"反地址编码失败,使用Apple地图反地理编码");
????????????CLLocationCoordinate2D newCoor = [[self class] GCJ02FromBD09:userLocation.location.coordinate];
????????????CLLocation *location = [[CLLocation alloc] initWithLatitude:newCoor.latitude longitude:newCoor.longitude];
????????????[[[CLGeocoder alloc] init] reverseGeocodeLocation:location completionHandler:^(NSArray *placemarks, NSError *error) {
????????????????CLPlacemark *placemark = [placemarks firstObject];
????????????????SALog(@"%@ - %@", placemark.name, placemark.locality);
/*
????code for address...
?*/
????????????}];
????????}
????????// 结束
????}
}

[……]

继续阅读

kCLErrorDomain Code=0终极解决方案!

1、在使用百度地图时,定位失败一般会报两种错:
Error Domain=kCLErrorDomain Code=0 “The operation couldn’t be completed. (kCLErrorDomain error 0.)”
Error Domain=
kCLErrorDomain Code=1 “The operation couldn’t be completed. (kCLErrorDomain error 1.)”
即我们所说的Code=0和Code=1,网上有很多帖子都说这是模拟器没有GPS硬件造成的xxxxxx,然而我们是真机呀,真机!!!

2、一提到是真机就没人BB了,就连百度地图开发者论坛都没人能正面回答这个问题,有些人可能模拟器的问题还没解决,那就先说模拟器吧!

3、关于模拟器我总结一下,比较中肯的说法是,Code=0说明没有位置信息,即没获取到GPS信息,因为没人提供GPS数据给模拟器,两种方式解决:
3.1、上两个图就明白了,说多人也是废话[……]

继续阅读