Salve,
Sto smanettando con le mappe di google ma a proposito del metodo Location.distanceBetween mi dà risultati strani. Nella documentazione c'è scritto che dovrebbe dare la distanza in metri tra 2 località per cui dividendo per 1000 dovrei ottenere la distanza in km. Invece questi sono i risultati tra località che distano pochi metri . Perchè?
V/PRINTPATH( 1062): AB : 14515.782
V/PRINTPATH( 1062): CA : 4254.5913
V/PRINTPATH( 1062): CB : 11089.943
V/PRINTPATH( 1062): AB : 14515.782
V/PRINTPATH( 1062): CA : 4254.5913
V/PRINTPATH( 1062): DA : 4845.3774
V/PRINTPATH( 1062): DC : 8048.023
V/PRINTPATH( 1062): CB : 11089.943
V/PRINTPATH( 1062): BD : 12809.993
Questo è il codice che uso:
private void fillMapDistance(){
if (count>1){
int c=1;
float result[]=new float[3];
for (int i=0;i<labels.length;i++){
for (int j=c;j<labels.length;j++){
List<Double> start=mapCord.get(labels[i]);
List<Double> end=mapCord.get(labels[j]);
if (start!=null && end!=null){
Location.distanceBetween(start.get(0), start.get(1), end.get(0), end.get(1), result);
mapDistance.put(labels[i]+labels[j], result[0]/1000);
}
}
c++;
}
}
}
private void printPaths(){
String path,path1=null;
Object[]array=getListPaths();
if (array!=null){
for (int i=0;i<array.length;i++){
path=(String)array[i];
float distance=mapDistance.get(path);
if (i<array.length-1){
path1=(String)array[i+1];
if (path.charAt(1)!=path1.charAt(0))
path=Character.toString(path.charAt(1))+Character. toString(path.charAt(0));
}
Log.v("PRINTPATH",path+" : "+distance);
}
}
}
grazie per le eventuali risposte
Saluti