2017-12-12 1 views
0

Ich bin auf der Suche nach distanceTo() Android Methode, um den Abstand zwischen den zwei verschiedenen Objekttypen zu berechnen. Ich verwende eine LatLngobject, wie es zu einer Position auf Google Maps hinzugefügt werden kann.Ist es möglich, einen LatLng-Objekttyp zu einem Ort zu analysieren?

LatLng clontarfFC = new LatLng(53.369615, -6.1859571); 
mMap.addMarker(new MarkerOptions().position(clontarfFC).title("Clontarf FC").snippet("St.Annes Park, Clontarf")); 

Wenn ich einen Ort Objekttyp in .position add() es zu einem Fehler führt, wenn sie nicht kompatibel sind.

Ich erkläre einen Ort object wie so dass die aktuelle Position des Benutzers der App vertreten.

Location currentLocation = new Location ("Curent Location"); 
    currentLocation.setLatitude(53.3419322); 
    currentLocation.setLongitude(-6.2670159); 

Und ich bin versucht, den Abstand zwischen den beiden wie so zu finden:

final float distance = clontarfFC.distanceTo(currentLocation)/1000; 
    final String formattedDistance = String.format("%.02f", distance); 
+0

Mögliches Duplikat https://stackoverflow.com/a/8050255/3505534 – R2R

+0

Danke für die Antwort, aber es ist kein Duplikat Frage. Diese Antwort behandelt die distanceTo() -Methode zwischen 2 Location-Objekten im Gegensatz zu dem, was ich zu messen versuche, nämlich 1 LatLng-Objekt und 1 Location-Objekt –

+0

Versuchen Sie Ihren Code, indem Sie den Longitude-Wert einmal positiv machen. – Danger

Antwort

0

soweit ich weiß, gibt es keine integrierte Methode für diese, könnte man jedoch eine einfache erstellen aber gründliche Wandler, wie folgt aus (wo latLng ist Ihr LatLng-Objekt):

Location location = new Location("location_name"); 
    location.setLatitude(latLng .latitude); 
    location.setLongitude(latLng .longitude); 
    location.setTime(new Date().getTime()); 

zu konvertieren zurück zu LatLng verwenden Sie die folgende:

LatLng newLatLng = new LatLng(location.getLatitude(), 
    location.getLongitude()); 
+0

Danke, das habe ich gesucht! –

0

unten Abhängigkeit in Ihrer gradle Datei hinzufügen und

compile 'com.google.maps.android:android-maps-utils:0.4+' 

unter Codezeile implementieren und übergibt "Start LatLng" und "Ende LatLng", um den Abstand zwischen zwei Objekten

double distanceBetween = SphericalUtil.computeDistanceBetween(
        beginLatLng, endLatLng); 
0

zu erhalten wie gesagt fuzzKity können Sie tun LatLng position = new LatLng(loc.getLatitude(), loc.getLongitude());

und Sie können so etwas tun

float[] results = new float[3]; 
Location.distanceBetween(coordStart.latitude, coordStart.longitude, position.latitude, position.longitude, results); 
double dist = results[0]; 
Verwandte Themen