在使用iOS源生的地图API,进行经纬度编译的时候,为什么只返回一个placeMark?
[self.geocoder reverseGeocodeLocation:location completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) {
NSLog(@"marks count==%ld",placemarks.count);
if (error||placemarks.count==0) {
NSLog(@"找不到坐标或者错误");
}else{
_placeArray=placemarks;
[_tableView reloadData];
}
}];
使用ClGeocoder进行反编译坐标的时候只返回一个placemarks,而无法达到像百度地图那样子可以返回多个POI。按照这个方法的block回调里 应该是能返回多个placemark的,然而结果始终只有一个,何解?
-(CLGeocoder*)geocoder{
if(_geocoder==nil){
_geocoder=[[CLGeocoder alloc]init];
}
return _geocoder;
}
这里是CLGeocoder的定义。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这个问题我可以回答你哈哈:
CLGeocoder进行的操作叫地理位置编码,是
经纬度
->地理位置
的操作, 这个地理位置
并不是POI
。所以只有唯一一个并不奇怪。好像另一个MapKit的类
MKReverseGeocoder
也不是搜索POI的。所以原生框架里面可能没有
POI
检索功能。一般国内第三方地图sdk,高德腾讯百度,都是有单独的search模块用来检索POI的,不是做广告哈。我最近一次用了腾讯的,虽然我从前在高德,高德最近网站有点问题,注册开发者收不到邮件。腾讯的sdk有三个模块,你可以不用使用腾讯的地图,直接下载他的检索模块拿来用就可以了。