2012-02-19 3 views
1

I'am essayer de mesurer la distance entre deux coordonnées, je l'ai mis en œuvre la fonction de Haversine, comme ceci:Mesurer la distance entre deux coordonnées dans une application Android

package Services; 

public class Route { 

private double latitude1; 
private double longitude1; 
private double latitude2; 
private double longitude2; 


public Route(double latitude1, double longitude1, double latitude2, double longitude2) { 

    this.latitude1 = latitude1; 
    this.longitude1 = longitude1; 
    this.latitude2 = latitude2; 
    this.longitude2 = longitude2; 
} 

public double measureDistance() { 

    double earthRadius = 3958.75; 
    double dLat = Math.toRadians(latitude2-latitude1); 
    double dLng = Math.toRadians(longitude2-longitude1); 
    double a = Math.sin(dLat/2) * Math.sin(dLat/2) + 
        Math.cos(Math.toRadians(latitude1)) * Math.cos(Math.toRadians(latitude2)) * 
        Math.sin(dLng/2) * Math.sin(dLng/2); 

    double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
    double dist = earthRadius * c; 

    return dist; 
} 
} 

Le code fonctionne bien et quelque chose ouputting . Mais comme j'utilise la formule haversine, le code mesure juste la distance dans l'horizon, pas les routes si vous voyez ce que je veux dire. Existe-t-il un moyen de mesurer la distance comme Google Maps? Sans utiliser l'API google maps, google subitement prend de l'argent après 2500 appels API dans un jour ou quelque chose ..

+0

http://developer.mapquest.com/web/tools/getting-started/terms-overview contrôlez la carte, semble prometteur. – L7ColWinters

Répondre

2

prix de l'API Google Maps affecte essentiellement uniquement des cartes Web: http://code.google.com/apis/maps/faq.html#usage_apis

Google Maps pour Android API est encore libre.

OTOH, il n'y a pas de fonctionnalité de routage ou de navigation dans Google Maps pour Android, il n'y a donc aucun moyen de calculer la distance de route avec cette API.

En outre, vous trouverez peut-être cette pratique: Geographical distance

0

Bing Maps a un quota d'utilisation, mais cela ne vaut pas pour les applications mobiles. Bing Maps vaut vraiment le coup d'oeil. Vous pouvez utiliser Bing Maps avec Android de deux manières. La première consiste à utiliser le SDK Bing Maps Android: http://bingmapsandroidsdk.codeplex.com/ La seconde consiste à utiliser le contrôle Bing Maps V7 AJAX avec PhoneGap.

Questions connexes