Salve. Nell'applicazione android che sto sviluppando ho necessità di calcolare il percorso dalla mia locazione ad una destinazione. Girovagando in rete ho trovato del codice che fa al caso mio e che ho
dovuto riadattare un minimo.
In sostanza si tratta di fare una richiesta http a google che da quel che ho capito risponde con
un documento json. Riga per riga viene inserito tutto in una stringa.
Ottenuta questa stringa si deve disegnare il percorso sulla mappa, però essa va prima decodificata
per ottenere una lista di oggetti LatLng (sono semplici oggetti contenenti latitudine e longitudine).
Ecco non riesco molto a capire il codice relativo a questa decodifica:
codice:
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;
Se qualcuno potesse aiutarmi..