2009-09-08 17 views
8

मैं जीपीएस एप्लिकेशन विकसित कर रहा हूं। क्या आप मोबाइल डिवाइस की गति का पता लगाने के बारे में जानते हैं?CLLocation गति

वास्तव में, मैं गति हर 2 सेकंड का पता लगाने की जरूरत है।

मुझे पता है कि didUpdateToLocation स्थान बदलते समय विधि कहा जाता है।

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

लेकिन मुझे लगता है कि यह विधि मेरे मुद्दे के लिए उपयुक्त नहीं है।

तो, मैं 2 सेकंड में [CLLocationManager location] की गति की जांच की जरूरत है?

कोई भी सुझाव?

अग्रिम धन्यवाद।

उत्तर

26

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

स्पीड की गणना/एम/एस में प्रदान की जाती है ताकि एमएफ के लिए 3.6 किमी या 2.236 9 3629 तक गुणा हो।

-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation 
{ 
    //simply get the speed provided by the phone from newLocation 
    double gpsSpeed = newLocation.speed; 

    // alternative manual method 
    if(oldLocation != nil) 
    { 
     CLLocationDistance distanceChange = [newLocation getDistanceFrom:oldLocation]; 
     NSTimeInterval sinceLastUpdate = [newLocation.timestamp timeIntervalSinceDate:oldLocation.timestamp]; 
     double calculatedSpeed = distanceChange/sinceLastUpdate; 

    } 
} 
+5

ब्याज से जो दो विकल्पों (सटीकता के मामले में) बेहतर है? –

+1

getDistance से कम किया गया था। CLLocationDistance distanceChange = [newLocation getDistanceFrom: oldLocation] को बदलें; CLLocationDistance distanceChange = [newLocation distanceFromLocation: oldLocation] के साथ; – Wes

0

आप केवल वास्तव में प्रतिनिधि विधि आप अपने प्रश्न में सुझाव दिया है का उपयोग कर सकते हैं।

भले ही आप [CLLocationManager स्थान] का उपयोग हर 2 सेकंड, आप केवल समन्वय आप पिछले ऊपर प्रतिनिधि विधि में प्राप्त प्राप्त होगा।

हर दो सेकंड क्यों मतदान करने की आवश्यकता? आईफोन कुछ मामलों में कम समय में इसके निर्देशांक अपडेट कर सकता है।

HTH