2012-03-08 15 views
11

मेरे पास "दृश्य स्थान दिखाता है" सक्षम के साथ मेरे दृश्य (MKMapViewDelegate) पर एक नक्शा व्यू आउटलेट है।MKMapView उपयोगकर्ता स्थान सिम्युलेटर में 0,0 दिखा रहा है?

कि नियंत्रक के लिए viewDidLoad में मैं

CLLocation *userLoc = mapView.userLocation.location; 
CLLocationCoordinate2D userCoordinate = userLoc.coordinate; 
NSLog(@"user latitude = %f",userCoordinate.latitude); 
NSLog(@"user longitude = %f",userCoordinate.longitude); 
mapView.delegate=self; 

है सिम्युलेटर मानचित्र पर सही उपयोगकर्ता स्थान (मैं आईओएस सिम्युलेटर में कस्टम स्थान उपयोग कर रहा हूँ)

से पता चलता लेकिन NSLog 0 से पता चलता और अक्षांश और देशांतर के लिए 0।

क्या मुझे सिम्युलेटर में कस्टम रेखांश और अक्षांश प्राप्त करने में सक्षम नहीं होना चाहिए?

जवाब के साथ

अद्यतन:

- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation 
{ 
    self.mapView.centerCoordinate = userLocation.location.coordinate; 
} 

उत्तर

13

स्थान सेवाएं लागू करने की जरूरत तात्कालिक नहीं हैं। आपका कोड viewDidLoad में है, इसलिए इसे अभी तक आपकी स्थिति पर ठीक करने का मौका नहीं मिला है। आपको प्रोटोकॉल लागू करने वाली ऑब्जेक्ट पर मानचित्र दृश्य के लिए delegate संपत्ति सेट करनी चाहिए।

+0

क्या आप शायद कुछ नमूना कोड प्रदान कर सकते हैं? मैंने ऊपर दिए गए कोड में स्वयं के लिए नक्शा दृश्य प्रतिनिधि सेट किया था? मैं नक्शा प्रारंभिक ज़ूम स्थान को उपयोगकर्ता के वर्तमान स्थान – sayguh

+1

पर आधारित करना चाहता हूं क्या आपने किसी भी 'MKMapViewDelegate' विधियों को लागू किया था? प्रतिनिधि को सेट करना तब तक कोई काम नहीं करेगा जब तक कि आप इसे परिभाषित करने वाले तरीकों को लागू नहीं करते। डेवलपर केंद्र में कई नक्शा नमूना परियोजनाएं हैं। क्या आपने उन्हें देखा है? – Jim

+0

ऐप्पल की साइट पर इसके लिए नमूना कोड नहीं मिला। एक नमूना प्रोजेक्ट ढूंढना अच्छा लगेगा जो यह – sayguh

0
MKMapView *mapview=[[MKMapView alloc]initWithFrame:CGRectMake(0,0,300, 364)]; 
mapview.delegate=self; 
mapview.showsUserLocation=YES; 

जो कि मैक किट प्रतिनिधिमंडल में मैपकिट प्रतिनिधि को कॉल करेगा, निर्देशांक मुद्रित करने का प्रयास करें। एनएसएलओजी (@ "उपयोगकर्ता अक्षांश =% एफ", userLocation.location.coordinate.latitude); एनएसएलओजी (@ "उपयोगकर्ता देशांतर =% एफ", userLocation.location.coordinate.longitude);

1

मुझे डीबग> स्थान के माध्यम से सिम्युलेटर में एक स्थान सेट करना पड़ा। यह किसी को भी सेट नहीं किया गया था, जिसने मुझे (0 डिग्री, 0 डिग्री) पर छोड़ दिया और कभी अपडेट नहीं किया; आप एक कस्टम स्थान सेट कर सकते हैं या अन्य अनुरूपित स्थान स्क्रिप्ट्स से चुन सकते हैं जो उपयोगकर्ता के स्थान को समय के साथ स्वचालित रूप से ले जाते हैं।

संबंधित मुद्दे