Comment calculer la distance entre deux endroits en utilisant latitude-longitude dans gmap pour iPhone?Calculer la distance entre deux endroits en utilisant latitude-longitude dans gmap pour iPhone
0
A
Répondre
6
Vous pouvez utiliser la méthode suivante sur un objet CLLocation:
- (CLLocationDistance)distanceFromLocation:(const CLLocation *)location
Par exemple:
CLLocation* location_a;
CLLocation* location_b;
CLLocationDistance distance = [location_a distanceFromLocation:location_b];
0
Vérifiez la haversine formula
0
Vous pouvez utiliser cette méthode. Il est pris de http://wiki.forum.nokia.com/index.php/How_to_calculate_distance_between_two_landmarks, mais je suppose que les mathématiques sont les mêmes pour l'iPhone aussi. :)
const TInt KEarthRadius = 6372795; // in meters
TReal64 YourClassName :: CalcDistance(TReal64 aLat1, TReal64 aLong1,
TReal64 aLat2, TReal64 aLong2)
{
TReal64 result = -1,
lat1Sin, lat2Sin, lat1Cos, lat2Cos, deltaLongCos, deltaLongSin;
if(Math :: Sin(lat1Sin, aLat1 * KPi/180) == KErrNone &&
Math :: Sin(lat2Sin, aLat2 * KPi/180) == KErrNone &&
Math :: Cos(lat1Cos, aLat1 * KPi/180) == KErrNone &&
Math :: Cos(lat2Cos, aLat2 * KPi/180) == KErrNone &&
Math :: Cos(deltaLongCos, (aLong2 - aLong1) * KPi/180) == KErrNone &&
Math :: Sin(deltaLongSin, (aLong2 - aLong1) * KPi/180) == KErrNone)
{
TReal64 a = lat2Cos * deltaLongSin,
b = lat1Cos * lat2Sin - lat1Sin * lat2Cos * deltaLongCos,
c = lat1Sin * lat2Sin,
d = lat1Cos * lat2Cos * deltaLongCos,
e = a * a + b * b,
f;
if(Math :: Sqrt(f, e ) == KErrNone)
{
e = f/(c + d);
if(Math :: ATan(f, e) == KErrNone)
{
while(f < 0)
f += KPi;
result = f * KEarthRadius;
}
}
}
return result;
}
0
CLLocation *userLoc = [[CLLocation alloc] initWithCoordinate:appDelegate.mapView2.userLocation.coordinate];
CLLocation *poiLoc = [[CLLocation alloc] initWithLatitude: [aPOI.latitude doubleValue] longitude: [aPOI.longitude doubleValue]];
double dist = [userLoc getDistanceFrom:poiLoc]/1000;
Questions connexes
- 1. Comment calculer la distance entre deux endroits? Y at-il un service disponible par Google Map pour iPhone?
- 2. distance Calculer entre deux latitudes/longitudes dans MapKit/CoreLocation
- 3. Comment calculer la distance entre deux GeoPoints avec Android MapView
- 4. en utilisant Android Accelerometer pour calculer la distance, l'altitude?
- 5. Comment calculer la largeur entre deux éléments?
- 6. Mesurer la distance entre deux appareils iOS
- 7. Distance entre deux adresses
- 8. La distance Calcul de deux places
- 9. ERD pour deux endroits
- 10. Distance entre deux coordonnées avec CoreLocation
- 11. J2ME - Calculer la distance entre 2 latitude et longitude
- 12. Comment dessiner route entre deux endroits dans l'iPhone?
- 13. obtenir la distance entre deux emplacement sur l'iphone
- 14. la distance Looping entre deux points, et q pour quitter
- 15. Quelle est la meilleure façon de détecter la distance entre deux iphone/ipod/ipad?
- 16. Distance entre deux téléphones Android
- 17. programme android pour afficher rout entre deux endroits
- 18. distance entre deux points à travers le terrain en utilisant le serveur sql
- 19. Calculer la durée en mois entre deux horodatages unix
- 20. calculer la période entre deux monthcalender en C#
- 21. Trouvez la distance entre deux points dans MYSQL. (En utilisant le point Datatype)
- 22. Calculer l'angle entre deux triangles dans CUDA
- 23. Comment puis-je calculer la différence entre deux fois en format 24h en utilisant Java?
- 24. Calculer le temps entre deux dates
- 25. trouver la distance entre deux adresses au Royaume-Uni
- 26. Comment calculer la distance de Mahalanobis entre deux séries chronologiques de dimensions égales?
- 27. Comment calculer l'heure en heures entre deux dates dans iOS
- 28. Est-il possible de trouver la distance entre deux routeurs?
- 29. La distance entre deux pages dans Google Analytics
- 30. Comment trouver la distance de la latitude et la longitude de deux endroits?