2014-09-29 3 views
9

Wenn Sie in der Standardkartenanwendung für iOS 8.0 auf den POI-Punkt tippen, erhalten Sie detaillierte Informationen einschließlich des Namens des POI und der Adresse.Detailinformationen zum POI-Punkt in MKMapview

Meine Frage ist:

  1. Ist es möglich, die gleiche wie diese mit MKMapView oder IOS nativen Code zu tun?

  2. Wenn nicht, wie bekomme ich die POI-Daten mit dem Kartenmaßstab (weil der auf der Karte angezeigte POI-Punkt von der Region und dem Maßstab abhängt). Also muss ich die Daten abrufen, um zu wissen, welcher POI-Punkt basierend auf dieser Region und Skalierung zeigt.

Antwort

4

Für erhalten detaillierte Informationen, einschließlich der Adresse des POI Ich glaube, Sie dies in zwei Schritten tun:

  1. Erhalten Ihrer POI Koordinaten

  2. wandeln sie für Adressinformationen erhalten; sehen Sie dieses schöne Beispiel:

    CLGeocoder *ceo = [[CLGeocoder alloc]init]; 
    CLLocation *loc = [[CLLocation alloc]initWithLatitude:32.00 longitude:21.322]; //insert your coordinates 
    
    [ceo reverseGeocodeLocation:loc 
         completionHandler:^(NSArray *placemarks, NSError *error) { 
         CLPlacemark *placemark = [placemarks objectAtIndex:0]; 
         NSLog(@"placemark %@",placemark); 
         //String to hold address 
         NSString *locatedAt = [[placemark.addressDictionary valueForKey:@"FormattedAddressLines"] componentsJoinedByString:@", "]; 
         NSLog(@"addressDictionary %@", placemark.addressDictionary); 
    
         NSLog(@"placemark %@",placemark.region); 
         NSLog(@"placemark %@",placemark.country); // Give Country Name 
         NSLog(@"placemark %@",placemark.locality); // Extract the city name 
         NSLog(@"location %@",placemark.name); 
         NSLog(@"location %@",placemark.ocean); 
         NSLog(@"location %@",placemark.postalCode); 
         NSLog(@"location %@",placemark.subLocality); 
    
         NSLog(@"location %@",placemark.location); 
         //Print the location to console 
         NSLog(@"I am currently at %@",locatedAt); 
        } 
        else { 
         NSLog(@"Could not locate"); 
        } 
    ]; 
    

Wenn Sie Zentrum benötigen Sie eine Region Ihrer Karte Sie können es tun, wie folgt aus:

- (void)gotoLocation 
{ 
    MKCoordinateRegion newRegion; 

    newRegion.center.latitude = NY_LATITUDE; 
    newRegion.center.longitude = NY_LONGTITUDE; 

    newRegion.span.latitudeDelta = 0.5f; 
    newRegion.span.longitudeDelta = 0.5f; 

    [self.myMapView setRegion:newRegion animated:YES]; 
} 

Ich hoffe, diese Code-Beispiele können Sie helfen :)

Für weitere Informationen über MKMapViewClass (ich empfehle es) überprüfen Sie die Apple Documentation oder this beatiful example on how to manage POI with Apple Maps.