Van egy lista több száz helyszínen, és csak szeretnénk megjeleníteni egy MKPinAnnotation az ezeken a helyeken jelenleg a képernyőn. A képernyő kezdődik a felhasználó aktuális tartózkodási helyét egy 2 mérföldes körzetben. Természetesen, a felhasználó görgetni és zoom a képernyőn. Most várok egy térképet frissítés eseményt, majd végigjárjuk a Saját hely listát, és ellenőrizze a koordinátákat, mint ez:
-(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 */
}
Tehát kérem convertCoordinate ahol a pont lenne a képernyőn (kivéve, ha azt félreértik ezt a módszert, ami nagyon is lehetséges). Ha a koordináta nem látható a képernyőn, akkor soha nem adja hozzá a mapView.
Szóval a kérdés, ez a helyes módja annak meghatározására, hogy az adott hely földrajzi szélesség / hosszúság tűnik a jelenlegi nézet és hozzá kell adni a az mapView? Vagy kéne ezt másképp?













