iPhone वर्तमान उपयोगकर्ता स्थान के रूप में दिखा निर्देशांक (0,0)

वोट
8

मैं इस viewDidLoad विधि के साथ उपयोगकर्ताओं को वर्तमान अक्षांश और देशांतर प्राप्त करने के लिए कोशिश कर रहा हूँ। जिसके परिणामस्वरूप नक्शा सही ढंग से वर्तमान स्थान का संकेत तथापि NSLog लगातार चलता है:

2009-09-19 16:45:29.765 Mapper[671:207] user latitude = 0.000000
2009-09-19 16:45:29.772 Mapper[671:207] user longitude = 0.000000

किसी को भी पता है कि मैं यहाँ क्या याद आ रही है? आपकी सहायता के लिये पहले से ही धन्यवाद!

- (void)viewDidLoad {
    [super viewDidLoad];
    [mapView setMapType:MKMapTypeStandard];
    [mapView setZoomEnabled:YES];
    [mapView setScrollEnabled:YES];
    [mapView setShowsUserLocation:YES];

    CLLocation *userLoc = mapView.userLocation.location;
    CLLocationCoordinate2D userCoordinate = userLoc.coordinate;

    NSLog(@user latitude = %f,userCoordinate.latitude);
    NSLog(@user longitude = %f,userCoordinate.longitude);
}
19/09/2009 को 21:50
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


8 जवाब

वोट
9

नक्शे के रूप में तक मुझे पता है, जब तक यह वास्तव में प्रदर्शित किया जाता है उन स्थान प्राप्त करने की कोशिश नहीं करेंगे। इस बात का एक अच्छा परीक्षण किया जाता है, जब आप संवाद एप्लिकेशन उपयोगकर्ताओं स्थान प्राप्त करने के लिए आप पूछ अगर यह ठीक है मिलता है? मेरे अनुभव में हमेशा आने के बाद ही नक्शा स्क्रीन पर दिखाई देता है।

इस समस्या से संपर्क करना यदि आप स्टार्टअप पर कोई स्थान होना चाहिए सबसे अच्छा तरीका है, क्लासिक कोर स्थान हैंडलर कोड को लागू करने और शुरू में से स्थान प्राप्त करने के लिए है। तुम वहाँ से अपडेट प्राप्त करना मानचित्र पर एक बार ऊपर है रोकने के लिए और वहां से आगे के परिवर्तन प्राप्त (हालांकि अगर आप लगातार अपडेट की जरूरत है आप से बेहतर बस मानक कोर स्थान अद्यतन के साथ रखते हुए। आप इसके बारे में सोचते हैं, तो आप जब कर रहे हैं "उपयोगकर्ता से पता चलता कर सकते हैं स्थान "आपके ऐप द्वारा कोर स्थान का नक्शा आगे उपयोग में सक्षम अनिवार्य रूप से मुक्त करने के बाद से जीपीएस वैसे भी पूरे समय तक सक्रिय होने का है।

20/09/2009 को 03:05
का स्रोत उपयोगकर्ता

वोट
4

आप () विधि viewDidLoad में उपयोगकर्ता समन्वय प्राप्त करने की कोशिश करते हैं, तो यह हमेशा 0,0 परिणाम है, क्योंकि यह अभी तक प्रारंभ नहीं किया गया है दे देंगे।

आप पर एक नज़र रखना चाहिए "कहाँ हूँ मैं" नमूना कोड प्रपत्र एप्पल साइट। यह तुम क्या जरूरत बताते हैं। आप उपयोग करने की आवश्यकता CLLocationManager वर्ग। तुम भी विधि की आवश्यकता होगी

*-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation*

इस विधि द्वारा हर बार जब उपयोगकर्ता स्थान अद्यतन किया जाता है बुलाया जाएगा। आप सिम्युलेटर का उपयोग कर रहे हैं, तो इस विधि केवल एक बार कहा जाएगा और यह कुछ डिफ़ॉल्ट समन्वय वापस आ जाएगी।

आशा करता हूँ की ये काम करेगा।

21/09/2009 को 06:36
का स्रोत उपयोगकर्ता

वोट
2

पर दस्तावेज़ से CLLocation , अगर क्षैतिज सटीकता या ऊर्ध्वाधर सटीकता नकारात्मक है, यह एक मूल्य नहीं मिल रहा है इसका मतलब है। मुझे लगता है कि यहाँ क्या हो रहा है। ध्यान रखें कि यदि आप सिर्फ एक बार देखने के लिए, तो यह आपको एक अनुमानित अंतिम ज्ञात स्थान कभी सटीकता परिणाम में सुधार से पहले दे सकता है।

क्षैतिज शुद्धता समन्वय के अक्षांश और देशांतर चक्र के केंद्र की पहचान करने और यह मान कि वृत्त की त्रिज्या इंगित करता है। नकारात्मक मान इंगित करता है कि समन्वय के अक्षांश और देशांतर अमान्य हैं।

19/09/2009 को 21:55
का स्रोत उपयोगकर्ता

वोट
1

के रूप में केंडल जब तक यह लोड हो जाने, और viewDidLoad विधि आमतौर पर भी यह अनुरोध करने के लिए जल्दी है कहा, MKMapView एक उपयोगकर्ता स्थान नहीं है। CoreLocation का उपयोग करने से एक आसान तरीका MKMapViewDelegate विधि लागू करने के लिए है -(void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation। यह आप उपयोगकर्ता के स्थान जैसे ही यह स्थित है, एक CLLocationManager से निपटने के लिए बिना दे देंगे।

08/01/2013 को 18:33
का स्रोत उपयोगकर्ता

वोट
1

आप CoreLocation बजाय MapKit से समन्वय मिलना चाहिए। MapView उपयोगकर्ता के स्थान को प्रदर्शित करने के बाद यह वास्तव में वर्तमान स्थान मिल गया होगा। इससे पहले स्थान निर्धारित किया जाता है, अक्षांश और देशांतर दोनों 0. 3 की तैयारी में हैं

आप एक CLLocationManager instace, सेट प्रतिनिधि बनाना चाहिए। जब स्थान निर्धारित किया जाता है आपको सूचित किया जाएगा।

20/09/2009 को 06:17
का स्रोत उपयोगकर्ता

वोट
0

इस प्रयास करें

CLLocation *userLoc = mapView.userLocation.location;
CLLocationCoordinate2D userCoordinate = userLoc.coordinate;

NSLog(@"user latitude = %f",userCoordinate.latitude);
NSLog(@"user longitude = %f",userCoordinate.longitude);

ViewdidAppear: या फोन विलंब के बाद seletor प्रदर्शन

05/05/2014 को 12:32
का स्रोत उपयोगकर्ता

वोट
0

इस उत्तर कैसे एक उपयोगकर्ता स्थान के साथ एक नक्शा दृश्य सेट करने बताते हैं:

HowTo उसे किसी उपयोगकर्ता स्थान के साथ MKMapView आरंभ?

09/03/2010 को 16:52
का स्रोत उपयोगकर्ता

वोट
-1

अपने viewDidLoad अनुभाग को यह जोड़े

mapView.showsUserLocation = YES;
02/05/2010 को 05:56
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more