Heim Java javaLernprogramm Wie migriere ich von KML zu JSON, um Google Directions-Daten abzurufen?

Wie migriere ich von KML zu JSON, um Google Directions-Daten abzurufen?

Nov 25, 2024 am 11:36 AM

How to Migrate from KML to JSON for Retrieving Google Directions Data?

Probleme beim Abrufen von Google Directions mithilfe von KML-Daten

Google hat den Abruf von Google Directions mithilfe von KML-Daten seit dem 27. Juli 2012 eingestellt. Dies bedeutet den Code Wird nicht mehr zum Extrahieren von Wegbeschreibungen aus Google durch Parsen der KML-Datei verwendet funktionsfähig.

Lösung:

Migrieren Sie Ihren Code, um JSON anstelle von KML zu verwenden. Um diesen Übergang zu erleichtern, habe ich die folgenden Klassen erstellt:

  • Parser.java: Definiert eine Schnittstelle zum Parsen von Google Directions-Daten.
  • XMLParser. java: Implementiert eine abstrakte Klasse zum Parsen von XML-Daten aus einem bereitgestellten URL.
  • Segment.java: Stellt einen Abschnitt einer Route dar, einschließlich Punkten, Abbiegeanweisungen, Länge und Entfernung.
  • Route.java: Stellt eine Route dar, einschließlich Punkten, Abbiegeanweisungen, Länge, Polylinie und anderem Metadaten.
  • GoogleParser.java: Implementiert einen konkreten Parser für Google JSON-Daten.
  • RouteOverlay.java: Zeichnet die Route auf einem Karte.

Implementierung:

  1. Ersetzen Sie Ihren Code zum Extrahieren von Wegbeschreibungen aus KML durch die folgende Funktion:
private Route directions(final GeoPoint start, final GeoPoint dest) {
    Parser parser;
    String jsonURL = "https://developers.google.com/maps/documentation/directions/#JSON";
    final StringBuffer sBuf = new StringBuffer(jsonURL);
    sBuf.append("origin=");
    sBuf.append(start.getLatitudeE6()/1E6);
    sBuf.append(',');
    sBuf.append(start.getLongitudeE6()/1E6);
    sBuf.append("&destination=");
    sBuf.append(dest.getLatitudeE6()/1E6);
    sBuf.append(',');
    sBuf.append(dest.getLongitudeE6()/1E6);
    sBuf.append("&sensor=true&mode=driving");
    parser = new GoogleParser(sBuf.toString());
    Route r =  parser.parse();
    return r;
}
Nach dem Login kopieren
  1. Fügen Sie in der onCreate()-Methode Folgendes hinzu Code:
MapView mapView = (MapView) findViewById(R.id.mapview);
Route route = directions(new GeoPoint((int)(26.2*1E6),(int)(50.6*1E6)), new GeoPoint((int)(26.3*1E6),(int)(50.7*1E6)));
RouteOverlay routeOverlay = new RouteOverlay(route, Color.BLUE);
mapView.getOverlays().add(routeOverlay);
mapView.invalidate();
Nach dem Login kopieren

Hinweis: Es wird empfohlen, die Directions()-Funktion innerhalb einer AsyncTask zu verwenden, um Netzwerkoperationen im UI-Thread zu vermeiden.

Das obige ist der detaillierte Inhalt vonWie migriere ich von KML zu JSON, um Google Directions-Daten abzurufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie funktioniert der Klassenladungsmechanismus von Java, einschließlich verschiedener Klassenloader und deren Delegationsmodelle? Wie funktioniert der Klassenladungsmechanismus von Java, einschließlich verschiedener Klassenloader und deren Delegationsmodelle? Mar 17, 2025 pm 05:35 PM

Wie funktioniert der Klassenladungsmechanismus von Java, einschließlich verschiedener Klassenloader und deren Delegationsmodelle?

Top 4 JavaScript -Frameworks in 2025: React, Angular, Vue, Svelte Top 4 JavaScript -Frameworks in 2025: React, Angular, Vue, Svelte Mar 07, 2025 pm 06:09 PM

Top 4 JavaScript -Frameworks in 2025: React, Angular, Vue, Svelte

Wie benutze ich Maven oder Gradle für das fortschrittliche Java -Projektmanagement, die Erstellung von Automatisierung und Abhängigkeitslösung? Wie benutze ich Maven oder Gradle für das fortschrittliche Java -Projektmanagement, die Erstellung von Automatisierung und Abhängigkeitslösung? Mar 17, 2025 pm 05:46 PM

Wie benutze ich Maven oder Gradle für das fortschrittliche Java -Projektmanagement, die Erstellung von Automatisierung und Abhängigkeitslösung?

Wie kann ich funktionale Programmierungstechniken in Java implementieren? Wie kann ich funktionale Programmierungstechniken in Java implementieren? Mar 11, 2025 pm 05:51 PM

Wie kann ich funktionale Programmierungstechniken in Java implementieren?

Node.js 20: wichtige Leistungssteigerung und neue Funktionen Node.js 20: wichtige Leistungssteigerung und neue Funktionen Mar 07, 2025 pm 06:12 PM

Node.js 20: wichtige Leistungssteigerung und neue Funktionen

ICEBERG: Die Zukunft von Data Lake Tabellen ICEBERG: Die Zukunft von Data Lake Tabellen Mar 07, 2025 pm 06:31 PM

ICEBERG: Die Zukunft von Data Lake Tabellen

Wie kann ich JPA (Java Persistence-API) für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden verwenden? Wie kann ich JPA (Java Persistence-API) für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden verwenden? Mar 17, 2025 pm 05:43 PM

Wie kann ich JPA (Java Persistence-API) für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden verwenden?

Wie implementiere ich mehrstufige Caching in Java-Anwendungen mit Bibliotheken wie Koffein oder Guava-Cache? Wie implementiere ich mehrstufige Caching in Java-Anwendungen mit Bibliotheken wie Koffein oder Guava-Cache? Mar 17, 2025 pm 05:44 PM

Wie implementiere ich mehrstufige Caching in Java-Anwendungen mit Bibliotheken wie Koffein oder Guava-Cache?

See all articles