Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 对地址字符串iOS 6进行地理编码时返回多个位置标记_Iphone_Objective C_Ios6_Ios6 Maps - Fatal编程技术网

Iphone 对地址字符串iOS 6进行地理编码时返回多个位置标记

Iphone 对地址字符串iOS 6进行地理编码时返回多个位置标记,iphone,objective-c,ios6,ios6-maps,Iphone,Objective C,Ios6,Ios6 Maps,这是我在stack上的第一篇文章。我是iOS开发新手,需要地理编码方面的帮助 特别是,根据苹果公司的文档:“返回的placemark对象的数量在很大程度上取决于所提供信息的特殊性。因此,提供街道、城市、省份和国家信息更可能返回单个地址,而不仅仅是街道和城市信息。” 因此,在提供地址字符串时,如果是宽泛的,那么(理论上)应该返回多个结果 例如: -(void)geocodeAddress { CLGeocoder *geocoder = [[CLGeocoder alloc]init]; [geo

这是我在stack上的第一篇文章。我是iOS开发新手,需要地理编码方面的帮助

特别是,根据苹果公司的文档:“返回的placemark对象的数量在很大程度上取决于所提供信息的特殊性。因此,提供街道、城市、省份和国家信息更可能返回单个地址,而不仅仅是街道和城市信息。”

因此,在提供地址字符串时,如果是宽泛的,那么(理论上)应该返回多个结果

例如:

-(void)geocodeAddress {
CLGeocoder *geocoder = [[CLGeocoder alloc]init];
[geocoder geocodeAddressString:@"DMV, San Francisco, CA" completionHandler:^(NSArray *placemarks, NSError *error) {
    if (!error) {
        NSLog(@"Found: %i", [placemarks count]);
        for (CLPlacemark *placemark in placemarks) {
            CLLocationCoordinate2D coordinate = CLLocationCoordinate2DMake(placemark.location.coordinate.latitude, placemark.location.coordinate.longitude);
            MapAnnotation *annotation = [MapAnnotation mapAnnotationWithCoordinate:coordinate title:@"DMV" subtitle:@"Great service?"];
            [self.mapView addAnnotation:annotation];
        }
    } else {
        NSLog(@"Error code: %i", [error code]);
    }
}];
}

让我有点困惑的是,无论我的“搜索”范围有多广(星巴克、DMV和1234 S 312 Place、City、State),我总是会返回一个位置


所以,我的问题是,有没有一种方法可以为特定的搜索返回多个结果

看来CLGeocoder在这个阶段相当有限。在更新解决此问题之前,您最好使用其他服务(例如谷歌地图地理编码API)。请注意,您只能在谷歌地图上使用谷歌地理编码:

您好,您找到过这个问题的答案吗?我得到了同样的结果。如果某人只需要一个示例地址来传递CLGeocoder,请尝试传递字符串“Springfield”,它返回多个地址。这是我用来测试的,因为我也很难尝试使用街道名称来获取多个地址。