2010-12-06 16 views
10

मैं एक नया ऐप शुरू कर रहा हूं जो कोरलोकेशन और मैपकिट फ्रेमवर्क का उपयोग करता है।सीएलएलोकेशन नकारात्मक गति लौट रहा है

मेरी समस्या वर्तमान गति को हमेशा नकारात्मक मान प्राप्त करने की कोशिश कर रही है, मैंने अपने आईफोन को मेरे साथ 3 जी सिग्नल वाले स्थानों पर ले लिया है और इससे कोई फर्क नहीं पड़ता, location.speed value हमेशा -1 है।

#define kRequiredAccuracy 1500.0 //meters 
#define kMaxAge 60.0 //seconds 
init विधि में

:

यहाँ कोड है जो मायने रखती है

self.locationManager=[[CLLocationManager alloc] init]; 
self.locationManager.delegate=self; 
self.locationManager.desiredAccuracy=kCLLocationAccuracyNearestTenMeters; 

तो didUpdateToLocation:

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

    NSTimeInterval ageInSeconds = [newLocation.timestamp timeIntervalSinceNow]; 
    NSLog(@"Location: %@", [newLocation description]); 

    if(newLocation.horizontalAccuracy > kRequiredAccuracy || fabs(ageInSeconds) > kMaxAge) 
    { 
     NSLog(@"inacurate position"); 
     [self.delegate inacuratePosition]; 

    } 
    else { 

    [self.delegate locationUpdate:newLocation andOldLocation:oldLocation]; 
    location=newLocation.coordinate; 


    } 


    if(tracking) 
    { 
    [self updatePosition]; 
    } 
    if(firstTime) 
    { 
     [self placeStartMark]; 
     firstTime=FALSE; 
    } 



} 

और अंत में, जिसमें मैं दृश्य नियंत्रक में एम प्रोटोकॉल को कार्यान्वित कर रहा है:

- (void)locationUpdate:(CLLocation *)newLocation andOldLocation:(CLLocation*)oldLocation{ 

    double speed = [newLocation speed] *3.6; 



    double altitude= [newLocation altitude]; 
    [self checkMaxSpeedAndAltitude:speed :altitude]; 
    if(speed< 0) 
     speed=0; 



    locationLabel.text=[NSString stringWithFormat:@"speed: %f km/h altitude: %f m", speed,altitude]; 
} 

मैं पागल हो रहा हूं इसलिए यदि कोई भी समाधान जानता है तो यह निश्चित रूप से सहायक होगा। धन्यवाद

+0

आप एक अच्छा 3 जी सिग्नल का जिक्र करते हैं जब यह 'अच्छा' स्थान आधारित अनुप्रयोगों के लिए लगभग अप्रासंगिक है। यदि आपके पास उपग्रहों का दृश्य नहीं है, तो आपको अच्छी जानकारी नहीं मिलेगी। जांचें कि आपकी क्षैतिज सटीकता छोटी है (200 मीटर से कम), यह देखने के लिए एक अच्छा धोखा है कि आपके पास उपग्रह हैं और न केवल सेल टावर त्रिभुज) – KevinDTimm

+0

ठीक है धन्यवाद, मैं इसे देखूंगा – JonLOo

+0

मैंने 65 मीटर क्षैतिज सटीकता भी जांच ली है, मुझे एक नकारात्मक गति एक ऊंचाई प्राप्त होती है। – JonLOo

उत्तर

13

आमतौर पर, यदि आप स्थान का पता लगाने तंत्र का समर्थन नहीं करते हैं तो आपको नकारात्मक ऊंचाई और गति मिलती है। उदाहरण के लिए, जब वाई-फाई या सेल त्रिकोण का उपयोग किया जाता है। क्या आप निश्चित हैं, आपको जीपीएस अपडेट मिल रहे हैं, तो क्या आप मुफ्त आकाश के नीचे परीक्षण कर रहे हैं? फिर भी, आपको अभी भी वाईफाई और सेल टॉवर स्थान अपडेट प्राप्त होंगे ताकि आपको उन्हें फ़िल्टर करना पड़े।

65 मीटर क्षैतिज सटीकता वाई-फाई स्थान अपडेट के लिए विशिष्ट है।

+0

अंततः मैं इसे और कम काम करता हूं। वैसे भी जानकारी के लिए धन्यवाद, मुझे नहीं पता था कि आप वाईफ़ाई या सेल स्थान के माध्यम से गति प्राप्त नहीं कर सके। – JonLOo

+0

मुझे हमेशा नकारात्मक गति मिल रही है। इससे कोई फर्क नहीं पड़ता कि मैं वाईफाई या सेल टावर या खुले आकाश में बाहर उपयोग कर रहा हूं। अन्य सभी स्थान पैरामीटर सही हैं। – User382

+1

जब आपके पास GPS नहीं है तो आपको नकारात्मक गति मिलती है। –

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