हां, आप उपयोगकर्ता के स्थान के लिए एक कस्टम दृश्य देख सकते हैं।
दुर्भाग्यवश, इसे लागू करना कठिन है क्योंकि documentation for the viewForAnnotation delegate method का दावा है कि अगर आप एनोटेशन क्लास MKUserLocation
है, तो कस्टम व्यू उपयोगकर्ता के स्थान के साथ आगे बढ़ना जारी नहीं रखता है। वास्तव में, जब MKUserLocation
के लिए एक कस्टम दृश्य लौटाया जाता है, तो नक्शा दृश्य पूरी तरह से उपयोगकर्ता स्थान को अपडेट करना बंद कर देता है (मानचित्र दृश्य didUpdateUserLocation
प्रतिनिधि विधि अब आग नहीं है)। मुझे विश्वास है कि यह एक बग है।
का संभावित हल CLLocationManager
और एक कस्टम एनोटेशन ... उपयोग करने के लिए
यकीन showsUserLocation
NO
है या मानचित्र दृश्य पर अनियंत्रित बनाने है।
एक CLLocationManager
के लिए गुण और एक कस्टम एनोटेशन MKAnnotation
प्रोटोकॉल लागू करता है (या आप सिर्फ सामान्य MKPointAnnotation
वर्ग इस्तेमाल कर सकते हैं) एक कस्टम वर्ग का उपयोग कर घोषित।
viewDidLoad
या कुछ अन्य उचित जगह में, CLLocationManager
बनाएं, delegate
सेट करें और startUpdatingLocation
पर कॉल करें।
location manager's didUpdateToLocation
delegate method (नहीं मानचित्र दृश्य के didUpdateUserLocation
प्रतिनिधि विधि), अपने कस्टम एनोटेशन बनाने या अद्यतन में:
-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
if (myUserLocAnnot == nil)
{
self.myUserLocAnnot = [[[MyUserLocClass alloc] init] autorelease];
//remove the autorelease if using ARC
myUserLocAnnot.title = @"You are here";
myUserLocAnnot.coordinate = newLocation.coordinate;
[mapView addAnnotation:myUserLocAnnot];
}
else
{
myUserLocAnnot.coordinate = newLocation.coordinate;
}
}
अंत में, मानचित्र दृश्य के viewForAnnotation
प्रतिनिधि विधि में, आप एक कस्टम एनोटेशन दृश्य वापसी होगी यदि एनोटेशन आपका कस्टम उपयोगकर्ता स्थान एनोटेशन है।
एक ही समस्या का सामना करना पड़ा, शायद हम सेब – darshansonde
धन्यवाद बंगा को बढ़ा सकते हैं धन्यवाद, यह अब काम कर रहा है। यहां तक कि मुझे संदेह है कि मैपव्यू में एक बग है जो उपयोगकर्ता सेट के लिए हमारे कस्टम एनोटेशन व्यू को प्रदर्शित नहीं करता है जब हम इसे सेट करते हैं। – nkd
लेकिन एक और मुद्दा जो मैं सामना कर रहा हूं, जैसे ही स्थान अपडेट शुरू होता है, मुझे वापस स्थान पर कॉल मिल जाता है प्रबंधक: didUpdateToLocation: स्थान विधि से जहां मैं एनोटेशन बनाता हूं और इसे मानचित्र में जोड़ता हूं, लेकिन नक्शा मेरा कस्टम दृश्य भी नहीं दिखा रहा है हालांकि मैं कस्टम दृश्य लौट रहा हूं। अगर मैं स्थान और स्थान पर स्विच करता हूं, तो यह काम करता है। क्या यहां कोई समस्या है? – nkd