मैं उपयोगकर्ताओं को सड़क के नाम की खोज करने और UITableView में परिणाम प्रदर्शित करने की अनुमति देना चाहता हूं। इस पल के लिए क्षेत्र महत्वपूर्ण नहीं है, यह किसी भी क्षेत्र से हो सकता है।उद्देश्य-सी - उपयोगकर्ता द्वारा दर्ज की गई क्वेरी के आधार पर सड़कों की खोज
मुझे अपनी खोजों में कोई प्रासंगिक उदाहरण नहीं मिला और मुझे नहीं पता कि मुझे CLLocation या MKLocalSearch का उपयोग करना चाहिए या नहीं।
डॉक्स के आधार पर, मैं MKLocalSearch उपयोग करना चाहिए:
हालांकि स्थानीय खोज और जियोकोडिंग समान हैं, वे विभिन्न उपयोग मामलों समर्थन करते हैं। जब आप मानचित्र निर्देशांक और एक संरचित पता, जैसे पता पुस्तिका पता के बीच कनवर्ट करना चाहते हैं तो जियोकोडिंग का उपयोग करें। स्थानीय खोज का उपयोग करें जब आप स्थानों का एक सेट ढूंढना चाहते हैं जो उपयोगकर्ता के इनपुट से मेल खाता है।
लेकिन मैं दोनों तरीकों की कोशिश की है और यह मेरे लिए केवल 1 परिणाम देता है (यहां तक कि-हालांकि वहाँ है एक NSArray लौटे
यह CLGeocoder दृष्टिकोण है:।
CLGeocoder *geocoding = [[CLGeocoder alloc] init];
[geocoding geocodeAddressString:theTextField.text completionHandler:^(NSArray *placemarks, NSError *error) {
if (error) {
NSLog(@"%@", error);
} else {
NSLog(@"%i", [placemarks count]);
for(CLPlacemark *myStr in placemarks) {
NSLog(@"%@", myStr);
}
}
}];
और ये मेरे है MKLocalSearch कोशिश:
MKLocalSearchRequest *request = [[MKLocalSearchRequest alloc] init];
request.naturalLanguageQuery = theTextField.text;
request.region = self.region;
localSearch = [[MKLocalSearch alloc] initWithRequest:request];
[localSearch startWithCompletionHandler:^(MKLocalSearchResponse *response, NSError *error){
if (error != nil) {
[[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Map Error",nil)
message:[error localizedDescription]
delegate:nil
cancelButtonTitle:NSLocalizedString(@"OK",nil) otherButtonTitles:nil] show];
return;
}
if ([response.mapItems count] == 0) {
[[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"No Results",nil)
message:nil
delegate:nil
cancelButtonTitle:NSLocalizedString(@"OK",nil) otherButtonTitles:nil] show];
return;
}
self.streets = response;
[self.streetsTableView reloadData];
}];
MKLocalSearch कुछ मामलों में 1 से अधिक प्रतिक्रिया वापस करने लगता है, लेकिन इन पीएलए से जुड़े हुए हैं सड़क नामों की खोज नहीं करता है।
अग्रिम धन्यवाद।
क्या आपने क्षेत्र को शून्य पर सेट करने का प्रयास किया था? या आप अपने self.region पर अधिक जानकारी साझा कर सकते हैं? –
मेरे पास एक नक्शा दृश्य है और मैं MapView.region का उपयोग अपने अनुभव से self.region – CristiC
के रूप में कर रहा हूं MKLocalSearch बहुत प्राचीन है। क्या आप किसी भी कारण से Google स्थल API का उपयोग करने का विरोध करेंगे? –