Maison  >  Article  >  Java  >  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
Mary-Kate Olsenoriginal
2024-10-31 04:32:02159parcourir

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

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!

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