无论我向地理编码器提供什么地址([geocoder geocodeAddressString:completionHandler:),它总是只在地标数组中放置一个对象。
我有什么方法可以获得多个结果(例如在地图应用程序中),用户可以从中选择一个结果?
Apple 的本机地理编码服务由MapKit框架 https://developer.apple.com/library/ios/#documentation/MapKit/Reference/MapKit_Framework_Reference/_index.html。该框架中的重要目标是MKLocalSearch
,它可以对地址进行地理编码并返回多个结果。
MKLocalSearch 返回 10 个结果mapItems
类型的MKMapItem
。每个 MKMapItem 包含一个MKPlacemark
对象,它是一个子类CLPlacemark
.
这是一个使用 MapKit 的示例MKLocalSearch
:
MKLocalSearchRequest* request = [[MKLocalSearchRequest alloc] init];
request.naturalLanguageQuery = @"Calgary Tower";
request.region = MKCoordinateRegionMakeWithDistance(loc, kSearchMapBoundingBoxDistanceInMetres, kSearchMapBoundingBoxDistanceInMetres);
MKLocalSearch* search = [[MKLocalSearch alloc] initWithRequest:request];
[search startWithCompletionHandler:^(MKLocalSearchResponse *response, NSError *error) {
yourArray = response.mapItems; // array of MKMapItems
// .. do you other logic here
}];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)