Google Maps Distances auch offline?

  • 8 Antworten
  • Letztes Antwortdatum
C

champagner

Neues Mitglied
0
Hallo,

ich möchte per google maps die distances zwischen zwei Orten berechnen lassen.

Nun geht das ja über JavaScript per web, aber geht das auch offline per Java?


Danke.
 
Entfernungsberechnung

Je nachdem wie "genau" dus haben willst ist das mehr oder weniger einfache Mathematik. Bist du dir bspw. sicher, dass du nur Orte die in Deutschland liegen zur Berechnung heranziehst, kann man auch einfachere Formeln verwenden ...
 
Genauso ist es.
Je nach Einsatzgebiet ist die zugrundeliegende Rechnung bedingt durch die Erdkrümmung ("keine perfekte Kugel") etwas anders.

Vielleicht hilft dir diese Formel aber schon weiter:
Code:
/**
     * Umrechnung von Geo-Koordinaten in Meter
     */
    public static int calculateDistance(double objectLat, double objectLon, double userLat, double userLon) {
        double earthRadius = 6371; 
        double dLat = Math.toRadians(userLat - objectLat);
        double dLng = Math.toRadians(userLon - objectLon);
        double a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
                Math.cos(Math.toRadians(objectLat)) * Math.cos(Math.toRadians(userLat)) *
                        Math.sin(dLng / 2) * Math.sin(dLng / 2);
        double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
        int dist = (int) (earthRadius * c * 1000);
        if (DMODE) Log.d("distance:", dist + " m");
        return dist;
    }
 
Herzlichen Dank.

Gibt es auch die Möglichkeit, die Weglänge anzurufen, was ja online geht? Oder auch die Zeitlänge?

Danke.
 
Was ist für dich "Weglänge"/"Zeitlänge"?
Wenn du damit eigtl. "Routenberechnung" meinst, ja sowas geht auch offline aber nicht sinnvollerweise auf so einem kleinen mobilen Gerät (da dazu zu viele Daten zwischengespeichert werden müssen ...vergleichbar mindestens mit der Kartengröße die so manches Navigationsprogramm erfordert)
 
Der "Distance Matrix"-Dienst ist aber doch wieder was anderes? Der berechnet dir doch die Wege zwischen mehreren(Start + mehrere "Ziele") Punkten
https://developers.google.com/maps/documentation/distancematrix/?hl=de

Das was du suchst ist das hier: https://developers.google.com/maps/documentation/directions/ oder?

Und es kann dir ja eigentlich egal sein, was für eine Art von Schnittstelle du aufrufst, siehe:
Why retrieving Google Directions for Android using KML data is not working anymore? - Stack Overflow
;)

Du hast oben als Bedingung geschrieben, dass das "offline per Java" gehen soll. Kann es sein du wirfst hier ein paar Begriffe durcheinander? Möchtest du also Routenberechnung OFFLINE (=ohne Wlan, ohne UMTS, ohne LTE, ohne jegliche Datenverbindung) oder meinst du mit "offline" nur "auf dem Gerät ein Codefragment, aber mit Kommunikation übers Internet"?
 
Da habe ich mich wohl unklar ausgedrückt. Ich möchte die Distanz per Straße und die Fahrzeit, wie auch in der distance-matrix, errechnen. Also nicht die Luftlinie. Und das, wenn möglich, ohne Internet -Verbindung.
 
Und Google Maps (was bei dir ja anfangs gedacht war) möchtest du auch offline einsetzen?

Naja, dann gilt (für mich) das was ich in Beitrag 5 geschrieben hab.
Ich kenn bspw. https://graphhopper.com/#overview was das gewünschte kann, aber das bringt eben auf mobilen kleinen technisch "schwachen" Geräten so einige Nachteile (Akku, Auslastung, etc.)

Ansonsten vll. dich mal mehr bzgl. "Navi" informieren (gibt ja glaub 1 oder 2 OpenSource-Navianwendungen für Android) oder auch bei OSM vorbeischauen:
Routing/offline routers - OpenStreetMap Wiki
openstreetmap - osm geopoint routing offline - Stack Overflow

Mal eben so per 2MB-Library wirst du da für Offlinezwecke denke ich nichts finden...
 

Ähnliche Themen

L
Antworten
2
Aufrufe
554
Lexub
L
Zurück
Oben Unten