Ciao a tutti, sono due giorni che sbatto la testa su un "non" problema...nel senso che a quanto pare ho solo io...
Ora provo a chiedere aiuto a voi
Stavo provando il gps dall'emulatore e stavo provando a vedere come tracciare la rotta tra due luoghi, usando le google api per le mappe...
Ho trovato che bisogna mandare l'url formattato e ti viene ritornato un file json da leggere e poi bisogna affidarsi all'oggeto JSON che semplifica la vita...e fin qui tutto bene o quasi...
Riesco a leggere il file...
Riesco a convertirlo in un oggetto JSON (non genera eccezioni, ma non sono sicuro che sia corretto)
e poi durante l'estrapolazione dei dati che mi occorrono vengono generate delle eccezioni, ma avendo dimensioni di valori troppo grandi ne vedo solo una parte..
1
2String line;
3StringBuilder builder = new StringBuilder();
4JSONObject json = null;
5BufferedReader reader = null;
6try {
7reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
8} catch (IOException e1) {
9e1.printStackTrace();
10}
11try {
12while((line = reader.readLine()) != null) {
13builder.append(line);
14//Log.i("Tracciatura","builder:"+builder.capacity());
15}
16} catch (Exception e) {
17e.printStackTrace();
18}
19Log.i("Tracciatura","carattere:"+builder.toString().charAt(builder.length()-1));
20
21
22try {
23json = new JSONObject(builder.toString());
24} catch (JSONException e) {
25e.printStackTrace();
26}
27
28//Log.i("Tracciatura",builder.toString());
29ArrayList<Bundle> list = new ArrayList<Bundle>();
30try
31{
32JSONArray routes = json.getJSONArray("routes");
33Log.i("Tracciatura","routes.length = "+routes.length());
34JSONArray legs = routes.getJSONArray(0);
35Log.i("Tracciatura","legs.length = "+legs.length());
36JSONArray steps = legs.getJSONArray(0);
37Log.i("Tracciatura","steps.length = "+steps.length());
38for(int i=0;i<steps.length();i++)
39{
40JSONObject singleStep = steps.getJSONObject(i);
41JSONObject duration = singleStep.getJSONObject("duration");
42Bundle dur = new Bundle();
43dur.putString("text", duration.getString("text"));
44dur.putString("value", duration.getString("value"));
45JSONObject distance = singleStep.getJSONObject("distance");
46Bundle dis = new Bundle();
47dis.putString("text", distance.getString("text"));
48dis.putString("value", distance.getString("value"));
49Bundle data = new Bundle();
50data.putBundle("duration", dur);
51data.putBundle("distance", dis);
52list.add(data);
53}
54} catch (JSONException e1) {
55e1.printStackTrace();
56}
57
questo è il codice che ho copiato da un forum in cui appunto anche questi utenti seguendo un tutorial disegnavano il percorso..
le eccezioni generate:
08-10 09:57:55.104: W/System.err(370): org.json.JSONException: Value {"waypoint_order":[],"summary":"A4","bounds":
e poi rimanere incompleta... (non la posto tutta perchè è gigantesca...)
come potete vedere l'eccezione è incompleta in quanto eclipse non la stampa del tutto...
Che fare?
Come posso risolvere il problema e ottenere i dati che mi occorrono al fine di disegnare la rotta verso una destinazione?
Grazie a tutti