Maison > Java > javaDidacticiel > Comment obtenir un itinéraire détaillé à l'aide de l'API Google Maps v2 ?

Comment obtenir un itinéraire détaillé à l'aide de l'API Google Maps v2 ?

Mary-Kate Olsen
Libérer: 2024-10-31 04:32:02
original
299 Les gens l'ont consulté

How to Get Turn-by-Turn Driving Directions Using Google Maps API v2?

Obtenir un itinéraire avec l'API Google Maps v2

Obtenir un itinéraire entre deux emplacements est une exigence courante pour de nombreuses applications de cartographie. Cependant, le code que vous avez fourni ne fait que tracer une ligne droite entre les points, plutôt que de fournir des instructions étape par étape.

Solution utilisant la bibliothèque GoogleDirection d'Android

Pour récupérer des itinéraires routiers, vous pouvez utiliser Android GoogleDirectionLibrary, une bibliothèque récemment publiée par akexorcist. Voici un extrait de code modifié utilisant la bibliothèque :

import com.akexorcist.googledirection.DirectionCallback;
import com.akexorcist.googledirection.GoogleDirection;
import com.akexorcist.googledirection.model.Direction;
import com.akexorcist.googledirection.model.Leg;
import com.akexorcist.googledirection.model.Route;
import com.akexorcist.googledirection.util.DirectionConverter;

...

// Replace with your API key
String apiKey = "YOUR_API_KEY";

GoogleDirection.withServerKey(apiKey)
        .from(new LatLng(12.917745600000000000,77.623788300000000000))
        .to(new LatLng(12.842056800000000000,7.663096499999940000))
        .execute(new DirectionCallback() {
            @Override
            public void onDirectionSuccess(Direction direction, String rawBody) {
                if (direction.isOK()) {
                    Route route = direction.getRouteList().get(0);
                    Leg leg = route.getLegList().get(0);
                    
                    // Draw the path (Polylines)
                    List<LatLng> directionPositionList = DirectionConverter.decodePoly(leg.getPolylinePoint());
                    Polyline line = mMap.addPolyline(new PolylineOptions()
                            .addAll(directionPositionList)
                            .width(5)
                            .color(Color.RED));
                    
                    // Display turn-by-turn instructions
                    String[] instructions = DirectionConverter.provideInstructionList(leg);
                    for (String instruction : instructions) {
                        Log.d("Direction", instruction);
                    }
                } else {
                    // Handle error
                }
            }

            @Override
            public void onDirectionFailure(Throwable t) {
                // Handle error
            }
        });
Copier après la connexion

Avec ce code modifié, vous devriez pouvoir obtenir des itinéraires routiers entre les deux emplacements, y compris des instructions détaillées.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal