作者:济南谷幽兰 | 来源:互联网 | 2023-02-03 10:42
我需要你的帮助,我正在开发一个应用程序,我有一些引脚(位置),我想要的是获得每个和我的位置之间的距离.我的代码如下
let annotation = MKPointAnnotation()
let annotatiOnTwo= MKPointAnnotation()
let saintPaulHospitalBC = MKPointAnnotation()
override func viewDidLoad() {
super.viewDidLoad()
mapita.showsUserLocation = true // Mapita is the name of the MapView.
annotation.coordinate = CLLocationCoordinate2D(latitude: 25.647399800, longitude: -100.334304500)
mapita.addAnnotation(annotation)
annotationTwo.coordinate = CLLocationCoordinate2D(latitude: 25.589339000, longitude: -100.257724800)
mapita.addAnnotation(annotationTwo)
saintPaulHospitalBC.coordinate = CLLocationCoordinate2D(latitude: 49.280524700, longitude: -123.128232600)
mapita.addAnnotation(SaintPaulHospitalBC)
}
当我运行代码时,地图显示了引脚,但我还能做些什么才能开始计算距离?谢谢!
1> brimstone..:
您必须将注释的坐标转换为CLLocation类型,然后获取它们之间的距离.要忽略坐标的高度,因为它们是2D,只需使用2D坐标的纬度和经度属性,如下所示:
let loc1 = CLLocation(latitude: coord1.latitude, longitude: coord1.longitude)
但是,CLLocation还有一些其他属性,如速度和高度,所以如果你想要那些因素,你必须提供更多的信息.要查找两个位置之间的距离,请执行以下操作:
let distance = loc1.distance(from: loc2)
这将以米为单位给出您的答案.