Ik heb een lijst van enkele honderden locaties en om alleen de MKPinAnnotation voor die locaties die momenteel op het scherm weer te geven. Het scherm begint met de huidige locatie van de gebruiker met een straal van 2 mijl. Natuurlijk kan de gebruiker scrollen en inzoomen op het scherm. Op dit moment, ik wacht op een kaartupdate gebeurtenis, en dan loop door mijn locatie lijst en controleer de coördinaten als volgt uit:
-(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 */
}
Dus ik vraag convertCoordinate waarvan het punt zou zijn op het scherm (tenzij ik deze methode, die is heel goed mogelijk verkeerd). Als de coördinaat is niet op het scherm, dan heb ik het nooit toe te voegen aan de Mapview.
Dus mijn vraag, is dit de juiste manier om te bepalen of een locatie van lat / lang zou verschijnen in de huidige inzichten en uitgaande moet worden toegevoegd aan de de Mapview? Of moet ik dit doen op een andere manier?













