ios - google - como saber la altitud de un lugar
¿Cómo saber la distancia entre las coordenadas? (5)
Quiero hacerlo de modo que muestre la distancia entre dos coordenadas de CLLocation. ¿Hay alguna manera de hacer esto sin una fórmula matemática compleja? Si no hay, ¿cómo lo harías con una fórmula?
CLLocation tiene un método distanceFromLocation por lo que se le asignan dos CLLocations:
CLLocationDistance distanceInMeters = [location1 distanceFromLocation:location2];
o en Swift 4:
//: Playground - noun: a place where people can play
import CoreLocation
let coordinate₀ = CLLocation(latitude: 5.0, longitude: 5.0)
let coordinate₁ = CLLocation(latitude: 5.0, longitude: 3.0)
let distanceInMeters = coordinate₀.distance(from: coordinate₁) // result is in meters
obtienes aquí la distancia en metros así que 1 milla = 1609 metros
if(distanceInMeters <= 1609)
{
// under 1 mile
}
else
{
// out of 1 mile
}
Para objetivo-c
Puede usar distanceFromLocation
para encontrar la distancia entre dos coordenadas.
Fragmentos de código:
CLLocation *loc1 = [[CLLocation alloc] initWithLatitude:lat1 longitude:lng1];
CLLocation *loc2 = [[CLLocation alloc] initWithLatitude:lat2 longitude:lng2];
CLLocationDistance distance = [loc1 distanceFromLocation:loc2];
Su salida vendrá en metros.
Probar esto:
distanceInMeters = fromLocation.distanceFromLocation(toLocation)
distanceInMiles = distanceInMeters/1609.344
De la documentación de Apple :
Valor de retorno: la distancia (en metros) entre las dos ubicaciones.
Swift 4.1
importar CoreLocation
//My location
let myLocation = CLLocation(latitude: 59.244696, longitude: 17.813868)
//My buddy''s location
let myBuddysLocation = CLLocation(latitude: 59.326354, longitude: 18.072310)
//Measuring my distance to my buddy''s (in km)
let distance = myLocation.distance(from: myBuddysLocation) / 1000
//Display the result in km
print(String(format: "The distance to my buddy is %.01fkm", distance))
func calculateDistanceInMiles(){
let coordinate₀ = CLLocation(latitude:34.54545, longitude:56.64646)
let coordinate₁ = CLLocation(latitude: 28.4646, longitude:76.65464)
let distanceInMeters = coordinate₀.distance(from: coordinate₁)
if(distanceInMeters <= 1609)
{
let s = String(format: "%.2f", distanceInMeters)
self.fantasyDistanceLabel.text = s + " Miles"
}
else
{
let s = String(format: "%.2f", distanceInMeters)
self.fantasyDistanceLabel.text = s + " Miles"
}
}