Heim  >  Artikel  >  Java  >  Warum stellt die Google Directions API keine KML-Daten mehr bereit?

Warum stellt die Google Directions API keine KML-Daten mehr bereit?

Susan Sarandon
Susan SarandonOriginal
2024-11-25 15:30:16302Durchsuche

Why Did Google Directions API Stop Providing KML Data?

Warum stellt die Google Directions API keine KML-Daten mehr bereit?

Die Google Directions API stellt seit dem 27. Juli 2012 keine KML-Daten mehr bereit. Daher müssen Entwickler auf JSON oder JSON migrieren XML-Formate stattdessen.

Alternativen:

JSON:

Um JSON-Daten zu analysieren, können Sie sechs Klassen wie folgt erstellen:

Parser.java: Definiert eine Schnittstelle für Parsing.
XMLParser.java: Stellt eine Basisklasse für XML-Parsing bereit.
Segment.java: Stellt ein Segment der Route dar.
Route .java: Stellt das Ganze dar Route.
GoogleParser.java: Analysiert Google JSON-Daten.
RouteOverlay.java: Zeichnet die Route auf einer Kartenüberlagerung.

XML:

Alternativ können Sie XML für verwenden Beim Parsen wird GoogleParser.java durch Folgendes ersetzt:

XMLParser.java: Analysiert Google XML-Daten.

Code-Implementierung:

Um diese Klassen zu nutzen, können Sie Folgendes erstellen Code:

private Route directions(GeoPoint start, GeoPoint dest) {
    Parser parser;
    String jsonURL = "https://developers.google.com/maps/documentation/directions/#JSON";  // API URL
    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;
}

Dann fügen Sie den folgenden Code zu Ihrer onCreate()-Funktion hinzu:

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();

Das obige ist der detaillierte Inhalt vonWarum stellt die Google Directions API keine KML-Daten mehr bereit?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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