Wie migriere ich von KML zu JSON, um Google Directions-Daten abzurufen?
Nov 25, 2024 am 11:36 AMProbleme 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:
- 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; }
- 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();
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!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

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

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 kann ich funktionale Programmierungstechniken in Java implementieren?

Node.js 20: wichtige Leistungssteigerung und neue Funktionen

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 implementiere ich mehrstufige Caching in Java-Anwendungen mit Bibliotheken wie Koffein oder Guava-Cache?
