У меня есть приложение в iOS 7.0. У меня есть вид карты, в котором пользователь может видеть результаты поиска на карте с помощью аннотаций.Поисковые запросы MapView видны с неправильными координатами
Я использовал пользовательскую аннотацию для этого, впервые аннотации были размещены с правильными координатами. Я имею в виду, что координаты местоположения пользователя размещались в правильном положении.
Но если я прокрутку карты и поиск местоположения, то она показывает мне аннотацию при неправильных координатах.
Ниже мой код, когда пользователь ищет любую вещь на карте. (Например гостиницы, музей, рестораны)
- (void) searchForPlace:(NSString *) keyWord {
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
[self.activityView setHidden:NO];
[self.txtSearch resignFirstResponder];
[self.txtSearch setEnabled:NO];
MKLocalSearchRequest *request = [[MKLocalSearchRequest alloc] init];
request.naturalLanguageQuery = keyWord; // @"restaurant"
MKCoordinateSpan span = MKCoordinateSpanMake(.1, .1);
CLLocationCoordinate2D location = self.mapView.userLocation.coordinate;
request.region = MKCoordinateRegionMake(location, span);
MKLocalSearch *search = [[MKLocalSearch alloc] initWithRequest:request];
[search startWithCompletionHandler:
^(MKLocalSearchResponse *response, NSError *error) {
[self.txtSearch setEnabled:YES];
[self removeMapOverlay];
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
[self.activityView setHidden:YES];
if (!error) {
// Result found
@try {
if (response.mapItems && [response.mapItems count] > 0) {
for (MKMapItem *item in response.mapItems) {
MKPlacemark *placeMark = item.placemark;
// Address details
NSDictionary *address = placeMark.addressDictionary;
NSString *titleString = @"";
NSString *subtitleString = @"";
NSString *name = @"";
NSString *Thoroughfare = @"";
NSString *State = @"";
NSString *City = @"";
NSString *Country = @"";
name = [address objectForKey:@"Name"] ? [address objectForKey:@"Name"] : @"";
Thoroughfare = [address objectForKey:@"Thoroughfare"] ? [address objectForKey:@"Thoroughfare"] : @"";
State = [address objectForKey:@"State"] ? [address objectForKey:@"State"] : @"";
City = [address objectForKey:@"City"] ? [address objectForKey:@"City"] : @"";
Country = [address objectForKey:@"Country"] ? [address objectForKey:@"Country"] : @"";
titleString = [NSString stringWithFormat:@"%@ %@", name, Thoroughfare];
subtitleString = [NSString stringWithFormat:@"%@ %@ %@", State, City, Country];
CustomAnnotation *annotation = [[CustomAnnotation alloc] initWithTitle:titleString subTitle:subtitleString detailURL:item.url location:placeMark.location.coordinate];
[self.mapView addAnnotation:annotation];
}
[self mapView:self.mapView regionDidChangeAnimated:YES];
}
}
@catch (NSException *exception) {
NSLog(@"Exception :%@",exception.description);
}
} else {
NSLog(@"No result found.");
}
}];
}
Да, это была проблема. Благодаря :) –