2011-02-03 11 views
6

मैं प्रकार CLLocationDistance के एक चर में दूरी है मैं एक पूर्णांक चर में यह कन्वर्ट करने के लिए मैं कैसे कर सकता की जरूरत है यहCLLocationDistance रूपांतरण

मैं

CLLocationDistance kilometers; 

int distance = [kilometers intValue]; 

लेकिन इसकी दे त्रुटि का उपयोग कर सकते है।

मदद लोग

+0

जो त्रुटि आप प्राप्त कर रहे हैं वह सहायक हो सकती है (दूसरों के लिए)। कृपया इसे शामिल करें। – KevinDTimm

उत्तर

12

https://developer.apple.com/library/mac/#documentation/CoreLocation/Reference/CLLocation_Class/CLLocation/CLLocation.html

distanceFromLocation: 

निर्दिष्ट स्थान पर रिसीवर के स्थान से दूरी (मीटर में) देता है।

- (CLLocationDistance)distanceFromLocation:(const CLLocation *)location 

पैरामीटर

स्थान अन्य स्थान।

रिटर्न वैल्यू दो स्थानों के बीच दूरी (मीटर में)।

वापसी का प्रकार doubleint नहीं है। और यह NSNumber नहीं है।

+0

स्पष्टीकरण के लिए, क्योंकि यह एक डबल (एक आंतरिक प्रकार, एक वस्तु नहीं है) चलाने के लिए कोई [intValue] विधि नहीं है। चूंकि आप सटीकता खोने के इच्छुक हैं, बस मान असाइन करें। यदि आप इसे गोल करना चाहते हैं, तो बस .5 जोड़ें और फिर इसे असाइन करें। – KevinDTimm

7

यह CLLocationDistance का उपयोग करके दो स्थानों के बीच की दूरी की गणना करेगा। डिफ़ॉल्ट रूप से यह मीटर में मान देता है। किलोमीटर में कनवर्ट करने के लिए, CLLocationDistance/1000.0 विभाजित करें। मील प्राप्त करने के लिए CLLocationDistance*0.62137 गुणा करें।

//Pass your current location Latitude and longitude 
        CLLocation *currentlocation = [[CLLocation alloc] initWithLatitude:13.015370f longitude:80.200393f]; 
//Pass your destination location Latitude and longitude 
CLLocation *destination = [[CLLocation alloc] initWithLatitude:37.420948f longitude:-122.09578499999998f]; 
CLLocationDistance meters = [currentlocation distanceFromLocation:destination]; 
//get distance in meters 
    NSLog(@"meters :%f", meters); 
//get distance in kilometers 
    CLLocationDistance kilometers = meters/1000.0; 
    NSLog(@"kilometers :%f", kilometers); 
//Get distance in miles 
    NSLog(@"Miles:%f",kilometers*0.62137); 
//convert kilometers to int value 
    int num=kilometers; 
+1

कृपया उत्तर को बेहतर बनाने के लिए एक स्पष्टीकरण जोड़ें; कोड केवल जवाब निराश हैं! धन्यवाद! – namezero

+1

यह डिफ़ॉल्ट रूप से CLLocationDistance का उपयोग करके दो अक्षांश और देशांतर के बीच की दूरी की गणना करने के लिए मानों को मीटर में देता है। सीएलएलोकेशनडिस्टेंस/1000.0 को विभाजित करने के लिए किलोमीटर में कनवर्ट करने के लिए। सीएलएलोकेशनडिस्टेंस * 0.62137 गुणा करने के लिए मील प्राप्त करें –

4

स्विफ्ट:

var initialLocation :CLLocation? 
    var updatedUserLocation :CLLocation? 
    var distanceBetweenLocations: CLLocationDistance? 

//MK MapView Delegate 
    func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { 

    updatedUserLocation = locations.last 
    distanceBetweenLocations = updatedUserLocation!.distanceFromLocation(initialLocation!) 

    //convert To Miles 
    distanceBetweenLocations = Utility.convertCLLocationDistanceToMiles(distanceBetweenLocations) 

//Setting Distance Value 
    distanceLabel.text = String(format: " Distance : %.2f ", distanceBetweenLocations!) 

    } 

नोट: मैं कक्षा नामित उपयोगिता जो इस परियोजना में आम वर्ग के तरीकों में कार्य करता है है। यह बेहतर कोड पुन: प्रयोज्यता और कमी के लिए है।

// Utility.swift 

import UIKit 
import Foundation 
import CoreLocation 

class Utility { 

    class func convertCLLocationDistanceToMiles (var targetDistance : CLLocationDistance?) -> CLLocationDistance { 
    targetDistance = targetDistance!*0.00062137 
    return targetDistance! 
    } 
    class func convertCLLocationDistanceToKiloMeters (var targetDistance : CLLocationDistance?) -> CLLocationDistance { 
    targetDistance = targetDistance!/1000 
    return targetDistance! 
    } 

} 
1

स्विफ्ट 4

इस पार्टी के लिए देर हो चुकी है, लेकिन आप भी इस तरह एक्सटेंशन बना सकते हैं:

CLLocationDistance.swift

import UIKit 
import CoreLocation 

extension CLLocationDistance { 
    func inMiles() -> CLLocationDistance { 
     return self*0.00062137 
    } 

    func inKilometers() -> CLLocationDistance { 
     return self/1000 
    } 
} 

आप इसे कह सकते हैं जैसा कि अनुसरण करें:

distance.inKilometers() 

मुझे आशा है कि इससे किसी को भी इस पर ठोकरने में मदद मिलेगी!

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