मैं कई सौ स्थानों की एक सूची है और केवल स्क्रीन पर वर्तमान में उन स्थानों के लिए एक MKPinAnnotation प्रदर्शित करना चाहते हैं। स्क्रीन 2 मील की त्रिज्या के साथ उपयोगकर्ता के वर्तमान स्थान के साथ शुरू होता है। बेशक, उपयोगकर्ता स्क्रॉल करें, और स्क्रीन पर ज़ूम कर सकते हैं। अभी, मैं एक नक्शा अद्यतन घटना के लिए मेरे स्थान सूची के माध्यम से पाश प्रतीक्षा करें, और फिर, और इस तरह निर्देशांक की जाँच करें:
-(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 */
}
इसलिए मैं convertCoordinate पूछ रहा हूँ जहां बिंदु स्क्रीन पर होगा (जब तक मैं इस विधि जो बहुत संभव है गलत)। यदि समन्वय स्क्रीन पर नहीं है, तो मैं इसे MapView में जोड़ने के लिए कभी नहीं।
तो मेरे सवाल का, इससे यह निर्धारित करने के लिए यदि किसी स्थान का अक्षांश / देशांतर वर्तमान दृश्य में प्रदर्शित होगा और उसे MapView में जोड़ा जाना चाहिए सही तरीका क्या है? या मैं एक अलग तरीके से यह कर किया जाना चाहिए?













