我從文檔中知道我們可以使用函數distanceFromLocation:
找到兩個CLLocation
點之間的距離。但我的問題是我沒有CLLocation數據類型與我,我有CLLocationCoordinate2D點。那麼我怎樣才能找到兩個CLLocationCoordinate2D點之間的距離。我看過這篇文章post,但對我沒有幫助。CLLocationCoordinate2D點之間的查找距離
回答
你應該使用創建CLLocation的對象,
- (id)initWithLatitude:(CLLocationDegrees)latitude
longitude:(CLLocationDegrees)longitude;
現在使用它,你可以找到距離。
使用代碼CLLocationDistance distance = [aCLLocationA distanceFromLocation:aCLLocationB]; //距離是以米爲單位的雙倍距離(源 - http://stackoverflow.com/a/10432069/1364174) –
無需創建CLLocation以獲取點之間的距離。請看看我的回答底部 –
斯威夫特4:
extension CLLocation {
/// Get distance between two points
///
/// - Parameters:
/// - from: first point
/// - to: second point
/// - Returns: the distance in meters
class func distance(from: CLLocationCoordinate2D, to: CLLocationCoordinate2D) -> CLLocationDistance {
let from = CLLocation(latitude: from.latitude, longitude: from.longitude)
let to = CLLocation(latitude: to.latitude, longitude: to.longitude)
return from.distance(to)
}
}
但我覺得更多的是這樣的: 擴展CLLocationCoordinate2D {// 在meteres FUNC距離(q若要:CLLocationCoordinate2D) - > CLLocationDistance { 從= CLLocation(緯度令:self.latitude,經度:self.longitude) 租給= CLLocation(緯度:to.latitude,經度:to.longitude) 回報from.distanceFromLocation(到) }} 爲 – kwerle
如果這是確定你獲得距離米點之間,然後
CLLocationCoordinate2D coordinate1 = <some value>
CLLocationCoordinate2D coordinate2 = <some value>
…
MKMapPoint point1 = MKMapPointForCoordinate(coordinate1);
MKMapPoint point2 = MKMapPointForCoordinate(coordinate2);
CLLocationDistance distance = MKMetersBetweenMapPoints(point1, point2);
將返回兩個點之間的距離。無需通過給定CLLocationCoordinate2D
創建CLLocation
。這個定義是可用的,因爲iOS 4.0
我的作品以及 – VBaarathi
let point1 = MKMapPointForCoordinate(myLocation)
let point2 = MKMapPointForCoordinate(friendLocation)
let distance = MKMetersBetweenMapPoints(point1, point2)/1000
let distanceStr = NSString(format: "%.3f", distance)
簡單版本的Valleri的答案。除以1000以獲得KM,然後轉換爲字符串。
不工作的迅速3。 –
Swift4:結合上述想法
extension CLLocationCoordinate2D {
//distance in meters, as explained in CLLoactionDistance definition
func distance(from: CLLocationCoordinate2D) -> CLLocationDistance {
let destination=CLLocation(latitude:from.latitude,longitude:from.longitude)
return CLLocation(latitude: latitude, longitude: longitude).distance(from: destination)
}
}
- 1. CLLocationCoordinate2D考慮縮放級別的兩點之間的距離
- 2. 找到多個點之間的距離
- 3. 查找兩條線之間的距離
- 4. 點之間的距離
- 5. 查找曼哈頓距離中兩組之間的距離
- 6. 查找地圖上線條和點之間的距離
- 7. 查找網絡節點之間的路徑距離?
- 8. 如何查找地點之間的距離?
- 9. 查找C中兩點之間的距離
- 10. 查找節點之間最近的距離
- 11. 查找cuda中n個點之間的最小距離
- 12. 查找兩個GPS點之間的橫向距離
- 13. 使用Google Maps API查找2個點之間的距離
- 14. 查詢以查找PostGis中的點列和點之間的距離
- 15. 找到xyz之間的最小距離
- 16. 找到wordnet中synsets之間的距離
- 17. 元素在兩點之間的距離和距離
- 18. 如何獲得距離眩暈兩點之間的距離
- 19. MongoDB的查詢查找緯度和經度點之間的距離
- 20. 查找重複行之間的平均時間/距離
- 21. 兩點之間的Cloudmade距離
- 22. OpenCV中兩點之間的距離
- 23. 點與線之間的垂直距離
- 24. 向量和點之間的距離
- 25. 多點之間的最短距離
- 26. 點之間的相等距離高圖
- 27. 2個小數點之間的距離
- 28. 增加igraph節點之間的距離
- 29. Hive:兩點之間的距離
- 30. 計算matlab中點之間的距離
距離計算實際上是相當棘手。你應該再看看CLLocation。 –
你有拉和長,然後創建cllocation,然後使用CLLocationDistance米= [newLocation distanceFromLocation:oldLocation]; –
檢查這樣:[distanceFromLocation - 兩點之間計算距離] [1] [1]:http://stackoverflow.com/questions/3905896/distancefromlocation-calculate-distance-between-two-points – webmastx