9
votes

Trouver la route avec Androids Google Maps API

Je veux pouvoir afficher l'itinéraire entre deux définis par l'utilisateur géographiques à l'aide de l'API Google Maps pour Android. Je souhaite également pouvoir laisser l'utilisateur choisir quel type de route à afficher, que ce soit la marche, le cyclisme, la voiture, etc., je souhaite pouvoir calculer l'heure et la distance qu'il faudrait pour utiliser cet itinéraire. J'ai essayé de chercher sur le Web et de regarder d'autres questions Stackoverflow, mais en vain. Comment irai-je à ce sujet? Comment puis-je être capable de code ceci.

// ---- Edit ---- //

Je voudrais également obtenir des informations sur la circulation telles que des itinéraires, des congestions, etc.


1 commentaires

J'ai suivi ce Stackoverflow.com/Questtions/11745314/... pour obtenir la route. C'est la première étape.


3 Réponses :


3
votes

Essayez le itinéraire Google API . C'est un service Web, qui donne des guides touristiques au format JSON avec toutes les informations pour obtenir du point A à B par voiture, transit ou vos pieds.

Pour coder qui suivez le lien dans le commentaire de stochastiquement.


2 commentaires

Dans l'introduction de l'API, il stipule "Ce service est généralement conçu pour calculer les instructions pour les adresses statiques (connues à l'avance) pour la mise en place d'un contenu d'application sur une carte; ce service n'est pas conçu pour répondre en temps réel à l'entrée de l'utilisateur, car Exemple. Pour les calculs de direction dynamiques (par exemple, dans un élément d'interface utilisateur), consultez la documentation du service JavaScript API V3 Directions. "


Oui, le point est que l'API n'est pas conçue pour plusieurs appels en temps réel. Appelez simplement l'API une fois, extrayez les informations de JSON et de la boucle jusqu'à ce que vous soyez arrivé. Comment j'ai dit que l'API donne l'information, mais la logique de gérer ces informations doit être mise en œuvre.



6
votes

Voici un code pour vous aider. xxx

récupérer les données avec androidhttpclient, faites quelque chose comme ceci: xxx

où buildstringioutils est: xxx

Vous pouvez ensuite extraire la polyligne réelle de la réponse JSON avec quelque chose comme ceci: xxx

où la méthode décodépolyline est la suivante: xxx

Vous pouvez ensuite ajouter la polyligne à la carte avec ceci: xxx

Pour changer le mode, ajoutez ceci à l'URL (voir < HREF = "https://developers.google.com/maps/documentation/directions/" rel = "NOREFERRER"> https://developers.google.com/maps/documentation/directions/ ): & mode = Your_Mode

Conduite (par défaut) Indique des instructions de conduite standard à l'aide du réseau routier.

demande à la marche Directions de marche via des chemins piétonniers et des trottoirs (le cas échéant). Vélo Demandes Directions de vélo via des sentiers de vélo et des rues préférées (si disponible).

Demandes de transit Demandes directions via des itinéraires de transit publics (le cas échéant).

EDIT: A propos de la "Je voudrais aussi avoir des informations trafic telles que des itinéraires, des congestions, etc." Je n'ai pas regardé cela, mais mon code devrait vous aider à démarrer plutôt bien.

Edit2: J'ai trouvé cela dans l'API Google Directions: "Pour les directions de conduite: Les cartes pour les clients professionnels peuvent spécifier le service de départ pour recevoir la durée du voyage en tenant compte des conditions de circulation actuelles. Le départ_utilisateur doit être défini sur quelques minutes de l'heure actuelle."


1 commentaires

Bonjour, est-il possible d'ajouter plusieurs destinations ??



4
votes

Android Google Maps Exemple de routage Code de routage à l'aide de la bibliothèque de wrapper forte>

Utilisez Android Studio STUDIO ENTRY: P>

<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:map="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"
android:layout_height="match_parent">

<LinearLayout android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:id="@+id/viewA"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="0.1"
        android:orientation="horizontal">

        <fragment
            android:id="@+id/map"
            android:name="com.google.android.gms.maps.SupportMapFragment"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            tools:context="com.packagename.MainActivity" />


    </LinearLayout>

    <LinearLayout
        android:id="@+id/viewB"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="0.9"
        android:gravity="center|left"
        android:paddingLeft="20dp"
        android:background="#FFFFFF"
        android:orientation="vertical" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="16dp"
            android:text="Distance ?"
            android:paddingTop="3dp"
            android:paddingLeft="3dp"
            android:paddingBottom="3dp"
            android:id="@+id/txt_distance" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="17dp"
            android:paddingLeft="3dp"
            android:text="Duration ?"
            android:id="@+id/txt_time" />

    </LinearLayout>

</LinearLayout>

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="16dp"
    android:clickable="true"
    android:src="@android:drawable/ic_dialog_map"
    app:layout_anchor="@id/viewA"
    app:layout_anchorGravity="bottom|right|end"/>

</android.support.design.widget.CoordinatorLayout>


0 commentaires