Jeg har en liste med flere hundre steder og bare ønsker å vise et MKPinAnnotation for disse stedene som er på skjermen. Skjermen starter med brukerens nåværende posisjon med en to kilometers radius. Selvfølgelig kan brukeren bla og zoome på skjermen. Akkurat nå venter jeg på en kartoppdatering hendelse, og deretter sløyfe gjennom min plassering liste, og sjekke koordinatene som dette:
-(void)mapViewDidFinishLoadingMap:(MKMapView *)mapView {
CGPoint point;
CLLocationCoordinate2D coordinate;
. . .
/* in location loop */
coordinate.latitude = [nextLocation getLatitude];
coordinate.longitude = [nextLocation getLongitude];
/* Determine if point is in view. Is there a better way then this? */
point = [mapView convertCoordinate:coordinate toPointToView:nil];
if( (point.x > 0) && (point.y>0) ) {
/* Add coordinate to array that is later added to mapView */
}
Så jeg spør convertCoordinate der poenget ville være på skjermen (med mindre jeg misforstår denne metoden som er meget mulig). Hvis koordinere ikke er på skjermen, så jeg aldri legge det til mapView.
Så spørsmålet mitt er dette den riktige måten å avgjøre om en plassering er lat / long vil vises i gjeldende visning og bør legges til den mapView? Eller bør jeg gjøre dette på en annen måte?













