Autore Topic: [medio] Maps API V2 - Visualizzare percorso su una Mappa  (Letto 5127 volte)

Offline white$hark

  • Nuovo arrivato
  • *
  • Post: 42
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Nexus4
  • Sistema operativo:
    Windows 7
[medio] Maps API V2 - Visualizzare percorso su una Mappa
« il: 26 Marzo 2014, 11:21:49 CET »
+1
Livello di difficoltà: Medio
Target SDK: 19
Min SDK: 10, non testato
Link al file compresso del progetto eclipse: LINK

Dopo essermi sbattuto intere nottate per capire come visualizzare un percorso su una mappa, ho finalmente trovato la soluzione e voglio condividerla con voi.

Iniziamo:
Prima di tutto, per utilizzare servizi Google che utilizzano i GooglePlayServices abbiamo bisogno della libreria "google_play-services_lib", che è disponibile per chiunque abbia già l'SDK installato. Se non sapete come importare la libreria basta andare in "File > Import, Android > Existing Android Code into Workspace"
e andare a selezionare la libreria al percorso
"<android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib"

Una volta importata, selezionarla con il tasto destro, "Properties" e spuntare, nella sezione "Android", la casella "is Library".

Ok, abbiamo la libreria ma per visualizzare le mappe nei nostri devices è richiesta una Maps Api Key. La guida per ottenerla la trovate qui: guida api key by Google

Adesso iniziamo a scrivere un po' di codice :D

Creiamo un nuovo progetto Android, io l'ho chiamato PathDemo. Dopo aver creato il progetto bisogna referenziare la libreria importata in precedenza. Ancora una volta tasto destro sul progetto>sezione Android>Cliccare sul bottone Add...>si aprirà una finestra che suggerisce la libreria google_play-services>e la selezioniamo.

Bene, partiamo dal layout, un semplice mapFragment:

classe activity_map
Codice (XML): [Seleziona]
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:id="@+id/container"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:orientation="vertical"
   tools:context="com.example.mapdemo.MapActivity"
   tools:ignore="MergeRootFrame" >

 
    <fragment
       android:id="@+id/map"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       class="com.google.android.gms.maps.SupportMapFragment" />

</LinearLayout>

Adesso modifichiamo l'activity principale ("MapActivity" nel mio caso) in questo modo:

Codice (Java): [Seleziona]
public class MapActivity extends FragmentActivity {

        final LatLng STARTING_POINT = new LatLng(45.4640704, 9.1719064); // Milano

        final LatLng END_POINT = new LatLng(45.070139, 7.6700892); // Torino

        GoogleMap map; //la nostra mappa

        ProgressDialog pDialog; //da mostrare quando calcola il percorso
        List<LatLng> polyz;
        JSONArray array;

        CameraPosition cameraPosition = new CameraPosition.Builder()
                        .target(STARTING_POINT).zoom(11).bearing(10).tilt(30).build();  //animazione su Milano

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_map);
                setUpMapIfNeeded();

                map.getUiSettings().setMyLocationButtonEnabled(true);
                map.setMyLocationEnabled(true);

                map.addMarker(new MarkerOptions()
                                .position(STARTING_POINT)
                                .title("Mia Località")
                                .icon(BitmapDescriptorFactory
                                                .defaultMarker(BitmapDescriptorFactory.HUE_AZURE)));  //aggiungiamo i marker

                map.addMarker(new MarkerOptions().position(END_POINT).title("Arrivo"));

                map.setOnInfoWindowClickListener(new OnInfoWindowClickListener() {  

                        // Al click sull'infowindow viene disegnato il percorso
                        @Override
                        public void onInfoWindowClick(Marker marker) {

                                Thread.currentThread().setContextClassLoader( getClass().getClassLoader());
                                new GetDirection().execute(); //calcola il percorso

                        }
                });

                map.setOnMyLocationButtonClickListener(new OnMyLocationButtonClickListener() {

                        @Override
                        public boolean onMyLocationButtonClick() {

                                map.getMyLocation();

                                return true;
                        }
                });

        }

        @Override
        protected void onResume() {
                super.onResume();
                setUpMapIfNeeded();
        }

        private void setUpMapIfNeeded() {
                if (map == null) {
                        map = ((SupportMapFragment) getSupportFragmentManager()
                                        .findFragmentById(R.id.map)).getMap();
                        if (map != null) {
                                setUpMap();
                        }
                }
        }

        private void setUpMap() {
                map.getUiSettings().setZoomControlsEnabled(false);

                // map.moveCamera(CameraUpdateFactory.newLatLngZoom(STARTING_POINT, 5));
                map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));

        }
}

Qualche spiegazione: Abbiamo creato una mappa con 2 markers posizionati rispettivamente a Milano e Torino. Se tappiamo sul marker verrà mostrata un'infoWindow che, se andiamo a selezionare, richiamerà i metodi per calcolare il percorso e mostrarlo sulla mappa.

Come facciamo quindi a richiedere un percorso, decodificarlo e disegnarlo? Procediamo:

Codice (Java): [Seleziona]
class GetDirection extends AsyncTask<String, String, String> {

                @Override
                protected void onPreExecute() {
                        super.onPreExecute();
                        super.onPreExecute();
                        pDialog = new ProgressDialog(MapActivity.this);
                        pDialog.setMessage("Loading route. Please wait...");
                        pDialog.setIndeterminate(false);
                        pDialog.setCancelable(false);
                        pDialog.show();

                }

                protected String doInBackground(String... args) {
                        Intent i = getIntent();

                        String stringUrl = "http://maps.googleapis.com/maps/api/directions/json?origin="
                                        + STARTING_POINT.latitude
                                        + ","
                                        + STARTING_POINT.longitude
                                        + "&destination="
                                        + END_POINT.latitude
                                        + ","
                                        + END_POINT.longitude + "&sensor=false";

                        StringBuilder response = new StringBuilder();
                        try {
                                URL url = new URL(stringUrl);
                                HttpURLConnection httpconn = (HttpURLConnection) url
                                                .openConnection();
                                if (httpconn.getResponseCode() == HttpURLConnection.HTTP_OK) {
                                        BufferedReader input = new BufferedReader(
                                                        new InputStreamReader(httpconn.getInputStream()),
                                                        8192);
                                        String strLine = null;

                                        while ((strLine = input.readLine()) != null) {
                                                response.append(strLine);
                                        }
                                        input.close();
                                }

                                String jsonOutput = response.toString();

                                JSONObject jsonObject = new JSONObject(jsonOutput);

                                // routesArray contains ALL routes
                                JSONArray routesArray = jsonObject.getJSONArray("routes");
                                // Grab the first route
                                JSONObject route = routesArray.getJSONObject(0);

                                JSONObject poly = route.getJSONObject("overview_polyline");
                                String polyline = poly.getString("points");
                                polyz = decodePoly(polyline);

                        } catch (Exception e) {

                        }

                        return null;

                }

                protected void onPostExecute(String file_url) {

                        for (int i = 0; i < polyz.size() - 1; i++) {
                                LatLng src = polyz.get(i);
                                LatLng dest = polyz.get(i + 1);
                                map.addPolyline(new PolylineOptions()
                                                .add(new LatLng(src.latitude, src.longitude),
                                                                new LatLng(dest.latitude, dest.longitude))
                                                .width(4).color(Color.BLUE));

                        }
                        pDialog.dismiss();

                }
        }

        /* Method to decode polyline points */
        private List<LatLng> decodePoly(String encoded) {

                List<LatLng> poly = new ArrayList<LatLng>();
                int index = 0, len = encoded.length();
                int lat = 0, lng = 0;

                while (index < len) {
                        int b, shift = 0, result = 0;
                        do {
                                b = encoded.charAt(index++) - 63;
                                result |= (b & 0x1f) << shift;
                                shift += 5;
                        } while (b >= 0x20);
                        int dlat = ((result & 1) != 0 ? ~(result >> 1) : (result >> 1));
                        lat += dlat;

                        shift = 0;
                        result = 0;
                        do {
                                b = encoded.charAt(index++) - 63;
                                result |= (b & 0x1f) << shift;
                                shift += 5;
                        } while (b >= 0x20);
                        int dlng = ((result & 1) != 0 ? ~(result >> 1) : (result >> 1));
                        lng += dlng;

                        LatLng p = new LatLng((((double) lat / 1E5)),
                                        (((double) lng / 1E5)));
                        poly.add(p);
                }

                return poly;
        }

Per richiedere a mamma Google un percorso, si effettua una richiesta http/https di questo tipo

https://maps.googleapis.com/maps/api/directions/json?origin=Milano,IT&destination=Torino,IT&sensor=false

possiamo decidere di avere il risultato in formato json oppure xml. Se apriamo il link ci verrà mostrato qualcosa tipo
Codice (XML): [Seleziona]
{
   "routes" : [
      {
         "bounds" : {
            "northeast" : {
               "lat" : 45.5161296,
               "lng" : 9.195201400000002
            },
            "southwest" : {
               "lat" : 45.0702733,
               "lng" : 7.685348299999999
            }
         },
         "copyrights" : "Map data ©2014 Google",
         "legs" : [
            {
               "distance" : {
                  "text" : "143 km",
                  "value" : 143035
               },
               "duration" : {
                  "text" : "1 ora 39 min",
                  "value" : 5934
               },
               "end_address" : "Torino, Italia",
               "end_location" : {
                  "lat" : 45.0705326,
                  "lng" : 7.685348299999999
               },
               "start_address" : "Milano, Italia",
               "start_location" : {
                  "lat" : 45.4655624,
                  "lng" : 9.186511699999999
               },
               "steps" :

......................

},
         "summary" : "A4",
         "warnings" : [],
         "waypoint_order" : []
      }
   ],
   "status" : "OK"
}[

che contiene tutte le indicazioni del percorso.

La classe GetDirection non fa altro che prendere questo file json, decifrare ogni punto, aggiungerlo ad un array di punti (polilinee) e disegnarli.
Per disegnare questo percorso bisogna usare il metodo
Codice (Java): [Seleziona]
new GetDirection().execute(); però dobbiamo anche usare
Codice (Java): [Seleziona]
 Thread.currentThread().setContextClassLoader( getClass().getClassLoader()); nel momento in cui andiamo ad eseguire quel metodo altrimenti l'app andrà in crash senza apparenti motivi.(Sia ringraziato l'utente di stackoverflow per avermi illuminato su questo punto!)

Ci siamo quasi, dobbiamo modificare il nostro Manifest.
Dichiariamo i permessi
Codice (XML): [Seleziona]
<permission
       android:name="com.example.mapdemo.MAPS_RECEIVE"
       android:protectionLevel="signature" />

    <uses-permission android:name="com.example.mapdemo.googlemapsv2.permission.MAPS_RECEIVE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <!-- Required to show current location -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

la versione delle openGL
Codice (XML): [Seleziona]
<uses-feature
       android:glEsVersion="0x00020000"
       android:required="true" />

la nostra api Key e la versione dei Play Services

Codice (XML): [Seleziona]
<meta-data
           android:name="com.google.android.maps.v2.API_KEY"
           android:value="AIzaSyCf5Xeo7DpA2QDi8efORFH5hOiB5pqJPXg" /> SOSTITUIRE CON LA PROPRIA CHIAVE
        <meta-data
           android:name="com.google.android.gms.version"
           android:value="@integer/google_play_services_version" />

Ottimo, possiamo lanciare l'applicazione. Il risultato in allegato, insieme al progetto e alla libreria, nel caso qualcuno avesse problemi.

Per informazioni non esitate a chiedere! ;)

Peace
« Ultima modifica: 17 Giugno 2014, 13:19:26 CEST da white$hark »

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:[medio] Visualizzare percorso su una Mappa
« Risposta #1 il: 26 Marzo 2014, 15:07:39 CET »
0
buona guida, in realtà ci sono un po di librerie online, a una ci stavo lavorando io ma non ho avuto più tempo per perfezionarla.
Comunque, una domanda, come mai hai fatto il geodesic a true? Hai qualche riferimento a riguardo?
Non sono convinto che sia corretto il geodesic
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline white$hark

  • Nuovo arrivato
  • *
  • Post: 42
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Nexus4
  • Sistema operativo:
    Windows 7
Re:[medio] Visualizzare percorso su una Mappa
« Risposta #2 il: 26 Marzo 2014, 15:37:30 CET »
0
Semplicemente perchè se si traccia una linea tra Londra e Milano ad esempio, la risultante dovrebbe essere curva. Si può benissimo omettere comunque.
Sai dirmi il nome di qualche libreria che implementa il calcolo e disegno del percorso?
« Ultima modifica: 26 Marzo 2014, 15:46:14 CET da ciao99 »

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:[medio] Visualizzare percorso su una Mappa
« Risposta #3 il: 26 Marzo 2014, 16:20:25 CET »
0
Semplicemente perchè se si traccia una linea tra Londra e Milano ad esempio, la risultante dovrebbe essere curva. Si può benissimo omettere comunque.
Sai dirmi il nome di qualche libreria che implementa il calcolo e disegno del percorso?
Ah ok, fai quella considerazione. In realtà il geodesic andrebbe messo in caso di diversi sistemi di riferimento per indicare che si sta disegnando una linea con dati in un altro sistema di riferimento, volevo capire se avevi dettagli in più sui subpath che ti da. In realtà vista la serie di spezzate che da il servizio il parametro è assolutamente inutile, credo che attivandolo il drawing sia anche più lento (magari di 0.000001 ms, ma alla lunga, sai :D)

ad ogni modo, per la libreria: MapNavigator Library - AndroidViews
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline white$hark

  • Nuovo arrivato
  • *
  • Post: 42
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Nexus4
  • Sistema operativo:
    Windows 7
Re:[medio] Visualizzare percorso su una Mappa
« Risposta #4 il: 26 Marzo 2014, 16:53:46 CET »
0
L'avevo già vista quella libreria :D guardando il codice sembra effettui le stesse cose, forse in modo più elegante ;)

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:[medio] Visualizzare percorso su una Mappa
« Risposta #5 il: 26 Marzo 2014, 17:01:22 CET »
0
L'avevo già vista quella libreria :D guardando il codice sembra effettui le stesse cose, forse in modo più elegante ;)
si si, anche quella libreria ha bisogno di ulteriore lavoro...
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline minimanimo

  • Nuovo arrivato
  • *
  • Post: 16
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S2
  • Sistema operativo:
    Windows 8
Re:[medio] Visualizzare percorso su una Mappa
« Risposta #6 il: 02 Maggio 2014, 22:02:51 CEST »
0
Ciao,stò seguendo questa guida per provare la funzione mappe,ma purtroppo ho dei problemi:
Nonostante ho importato la google play service lib e l'ho impostata come libreria nelle proprietà del mio progetto,nel codice java del main mi dà un sacco di errori (ho incollato la prima porzione di codice).
In quasi tutti fixo importando la libreria,ma ci sono ancora degli errori che non riesco a risolvere,ad esempio:

Citazione
Description   Resource   Path   Location   Type
GetDirection cannot be resolved to a type   MainActivity.java   /ProvaMAPS1/src/com/masata/provamaps   line 67   Java Problem
The method onInfoWindowClick(Marker) of type new OnInfoWindowClickListener(){} must override or implement a supertype method   MainActivity.java   /ProvaMAPS1/src/com/masata/provamaps   line 64   Java Problem
OnMyLocationButtonClickListener cannot be resolved to a type   MainActivity.java   /ProvaMAPS1/src/com/masata/provamaps   line 72   Java Problem
The method setOnMyLocationButtonClickListener(GoogleMap.OnMyLocationButtonClickListener) in the type GoogleMap is not applicable for the arguments (new OnMyLocationButtonClickListener(){})   MainActivity.java   /ProvaMAPS1/src/com/masata/provamaps   line 72   Java Problem
The method onMyLocationButtonClick() of type new OnMyLocationButtonClickListener(){} must override or implement a supertype method   MainActivity.java   /ProvaMAPS1/src/com/masata/provamaps   line 75   Java Problem
OnInfoWindowClickListener cannot be resolved to a type   MainActivity.java   /ProvaMAPS1/src/com/masata/provamaps   line 60   Java Problem
The method setOnInfoWindowClickListener(GoogleMap.OnInfoWindowClickListener) in the type GoogleMap is not applicable for the arguments (new OnInfoWindowClickListener(){})   MainActivity.java   /ProvaMAPS1/src/com/masata/provamaps   line 60   Java Problem

Puoi aiutarmi? Grazie
« Ultima modifica: 02 Maggio 2014, 22:04:33 CEST da minimanimo »

Offline white$hark

  • Nuovo arrivato
  • *
  • Post: 42
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Nexus4
  • Sistema operativo:
    Windows 7
Re:[medio] Visualizzare percorso su una Mappa
« Risposta #7 il: 06 Maggio 2014, 21:20:41 CEST »
0
Ciao,stò seguendo questa guida per provare la funzione mappe,ma purtroppo ho dei problemi:
Nonostante ho importato la google play service lib e l'ho impostata come libreria nelle proprietà del mio progetto,nel codice java del main mi dà un sacco di errori (ho incollato la prima porzione di codice).
In quasi tutti fixo importando la libreria,ma ci sono ancora degli errori che non riesco a risolvere,ad esempio:

Puoi aiutarmi? Grazie

controlla che nelle impostazioni di compilazione ci sia java 1.6  "Windows -> Preferences -> Java -> Compiler and change Compiler compliance level to 1.6"

Offline Giobbo

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexu 7
  • Sistema operativo:
    Windows 7
Re:[medio] Maps API V2 - Visualizzare percorso su una Mappa
« Risposta #8 il: 01 Luglio 2014, 15:15:39 CEST »
0
white$hark, innanzitutto grazie per il post che ho trovato molto ben fatto e piuttosto illuminante su questo specifico argomento.
Ho un quesito: vorrei costruire un percorso avendo però non solo la posizione iniziale e finale ma anche una serie (variabile) di posizioni intermedie.
Dalla struttura della soluzione che hai proposto suppongo che questo meccanismo possa funzionare anche dovendo passare per più posizioni, andando a modificare l'URL di richiesta (partendo dalla stringa) del percorso aggiungendo opportuni "caratteri" tra &origin=origine e &destination=destinazione.
Sai per caso in che modo?

EDIT: mi è venuto in mente altro modo ma chiedo anche per questo.
Forse conviene prendere a due a due le varie posizioni e calcolare il percorso tra queste e poi disegnare il percorso totale?
« Ultima modifica: 01 Luglio 2014, 15:24:11 CEST da Giobbo »

Offline white$hark

  • Nuovo arrivato
  • *
  • Post: 42
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Nexus4
  • Sistema operativo:
    Windows 7
Re:[medio] Maps API V2 - Visualizzare percorso su una Mappa
« Risposta #9 il: 01 Luglio 2014, 23:06:05 CEST »
0
Puoi usare i waypoints:
Codice (Java): [Seleziona]
http://maps.googleapis.com/maps/api/directions/json?origin=Boston,MA&destination=Concord,MA&waypoints=Charlestown,MA|Lexington,MA&key=API_KEYcosì il tuo percorso passerà per i punti prefissati.
Purtroppo però la navigazione con punti intermedi come Maps da browser non è ancora prevista su Android.

Riferimenti qui

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:[medio] Maps API V2 - Visualizzare percorso su una Mappa
« Risposta #10 il: 01 Luglio 2014, 23:09:50 CEST »
0
Occhio che i WP sono limitati a 8 in caso di key non business, per il resto ti basta fare una chiamata http

Inviato dal mio Nexus 4 utilizzando Tapatalk

IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline Giobbo

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexu 7
  • Sistema operativo:
    Windows 7
Re:[medio] Maps API V2 - Visualizzare percorso su una Mappa
« Risposta #11 il: 02 Luglio 2014, 08:40:43 CEST »
0
Ho capito, grazie mille.
Quindi, siccome i punti intermedi potrebbero essere ben più di otto, mi conviene utilizzare la seconda soluzione e prendere le posizioni a due a due, calcolare il percorso tra queste e poi disegnare su mappa il percorso completo no?

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:[medio] Maps API V2 - Visualizzare percorso su una Mappa
« Risposta #12 il: 02 Luglio 2014, 09:10:03 CEST »
0
mah,non sono un grande amante di queste cose, perchè può andare bene finchè i punti sono "in linea", altrimenti ti viene un percorso che è piu un giro dell'oca...
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline white$hark

  • Nuovo arrivato
  • *
  • Post: 42
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Nexus4
  • Sistema operativo:
    Windows 7
Re:[medio] Maps API V2 - Visualizzare percorso su una Mappa
« Risposta #13 il: 02 Luglio 2014, 13:11:48 CEST »
0
mah,non sono un grande amante di queste cose, perchè può andare bene finchè i punti sono "in linea", altrimenti ti viene un percorso che è piu un giro dell'oca...
però inserendo
Codice (Java): [Seleziona]
optimize:true non dovrebbe essere più lineare il percorso?

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:[medio] Maps API V2 - Visualizzare percorso su una Mappa
« Risposta #14 il: 02 Luglio 2014, 13:59:19 CEST »
+1
si, ma ti ottimizza il percorso tra A e B, se non hai waypoint (e quindi non guarda l'ordine) non cambia molto...
l'optimize (se ricordo bene) serve per riordinare i waypoint in modo da fare meno strada possibile
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia