Maison >Java >javaDidacticiel >Pourquoi Google Directions pour Android a-t-il cessé de prendre en charge les données KML et comment puis-je migrer vers une solution fonctionnelle ?

Pourquoi Google Directions pour Android a-t-il cessé de prendre en charge les données KML et comment puis-je migrer vers une solution fonctionnelle ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-29 14:12:10132parcourir

Why Did Google Directions for Android Stop Supporting KML Data, and How Can I Migrate to a Working Solution?

Pourquoi la récupération de Google Directions pour Android à l'aide de données KML ne fonctionne plus ?

Auparavant, Google Directions pouvait être récupéré à l'aide de données KML, mais cette méthode est obsolète car du 27 juillet 2012. La structure de Google Directions a été modifiée, et les données KML ne sont plus pris en charge.

Solution et alternatives

Pour obtenir Google Directions, vous devez maintenant migrer vers JSON ou XML. Voici un ensemble de classes et d'extraits de code pour vous aider :

Classes

  • Parser.java : Interface pour analyser les données d'itinéraire.
  • XMLParser.java : analyseur XML qui gère les données KML (obsolète).
  • Segment.java : représente un segment de l'itinéraire, y compris les points, les instructions et la distance.
  • Route.java : Représente l'itinéraire complet, y compris les segments, les points et métadonnées.
  • GoogleParser.java : implémente l'interface Parser pour analyser les données de directions Google JSON.
  • RouteOverlay.java : superposition pour tracer l'itinéraire sur une carte.

Code Extraits

Utilisation de GoogleParser pour récupérer des itinéraires (AsyncTask recommandé) :

private Route directions(GeoPoint start, GeoPoint dest) {
    String jsonURL = "https://maps.googleapis.com/maps/api/directions/json?";
    jsonURL += "origin=" + start.getLatitudeE6() / 1E6 + "," + start.getLongitudeE6() / 1E6;
    jsonURL += "&destination=" + dest.getLatitudeE6() / 1E6 + "," + dest.getLongitudeE6() / 1E6;
    jsonURL += "&sensor=true&mode=driving";
    Parser parser = new GoogleParser(jsonURL);
    return parser.parse();
}

Ajout de la superposition d'itinéraire à un MapView :

RouteOverlay routeOverlay = new RouteOverlay(route, Color.BLUE);
mapView.getOverlays().add(routeOverlay);
mapView.invalidate();

En passant à JSON ou XML et En mettant en œuvre ces classes, vous pouvez continuer à récupérer et afficher Google Directions dans votre application Android.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn