2012-05-02 6 views
5

से जो भी पता मैं geocoder को देता हूं ([geocoder geocodeAddressString: completHandler :), यह हमेशा प्लेसमार्क सरणी में केवल एक ऑब्जेक्ट रखता है।CLGeocoder

मुझे कई परिणाम प्राप्त करने का कोई तरीका है (जैसे मैप्स ऐप में) जिससे उपयोगकर्ता एक चुन सकता है?

उत्तर

1

मैंने पैकेट पर कुछ स्नीफिंग किया है और ऐसा लगता है कि CLGeocoder Google की geocoding सेवा से कनेक्ट नहीं है, लेकिन ऐप्पल के लिए। मैंने यह भी देखा है कि मुझे हर समय वहां से केवल एक स्थान चिह्न मिलता है।

यदि आप कुछ और परिष्कृत चाहते हैं तो आपको Google या अन्य geocoding का उपयोग करना चाहिए। मैं SVGeocoder (https://github.com/samvermette/SVGeocoder) का उपयोग करता हूं, जिसमें CLGeocoder के लिए एक बहुत ही समान API है।

+0

हम http://blog.sallarp.com SVGeocoder – johsem

+0

के बजाय से आगे Geaocoder इस्तेमाल किया ऐसा क्यों होता है? ऐप्पल डॉक्स से: आगे-जियोकोडिंग अनुरोधों के मामले में, प्रदान की गई जानकारी कई संभावित स्थानों को उत्पन्न करने पर एकाधिक प्लेमार्क ऑब्जेक्ट वापस लौटाए जा सकते हैं। – prince

+0

मुझे लगता है कि ऐप्पल की जियोकोडिंग सेवा अब तक सीमित है। मैं जल्द ही इसे बदलने की उम्मीद करता हूं। आप देख सकते हैं कि ऐप्पल यहां Google पर निर्भरता से दूर जाने के लिए दौड़ रहा है। –

9

ऐप्पल की मूल भूगर्भ सेवा MapKit framework द्वारा प्रदान की जाती है। इस ढांचे में महत्वपूर्ण वस्तु MKLocalSearch है, जो पते को जियोकोड कर सकती है और कई परिणामों को वापस कर सकती है।

एमकेएलोकलशर्च MKMapItem प्रकार के mapItems में 10 परिणाम वापस लौटाता है। प्रत्येक 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 
}]; 
संबंधित मुद्दे

 संबंधित मुद्दे