Partage
  • Partager sur Facebook
  • Partager sur Twitter

utilisation google distance matrix

android

    23 décembre 2012 à 23:31:04

    Bonsoir,
    j'ai integré la librairie Gson et pourtant la classe com.google.gson.Gson n'a pas été retrouvé lors de l'exécution de mon programme.
    J'essaye de calculer les distances entre les differents points de la Map Google.
    Ou peut être le problème?
    merci
    voiçi le code:
    import java.io.InputStream;
     
     
    import java.io.InputStreamReader;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.util.List;
     
    import android.util.Log;
     
    import com.google.gson.Gson;
    import com.google.gson.reflect.TypeToken;
     
    public class GoogleDistance {
    private final String URL = "http://maps.googleapis.com/maps/api/distancematrix/json?origins=Bouaye,%20Loire-Atlantique&destinations=C.H.U.%20Saint-Jacques,%2044200%20Quartiers%20Sud,%20Nantes|Saint-Mars-de-Coutais|47.123819,-1.66783|Saint-Herblain&sensor=false";
     
    	Gson gson;
     
    	public GoogleDistance() {
    		gson = new Gson();
    	}
     
    	private InputStream sendRequest(URL url) throws Exception {
     
    		try {
    			// Ouverture de la connexion
    			HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
     
    			// Connexion � l'url
    			urlConnection.connect();
     
    			// Si le serveur nous r�pond avec un code OK
    			if (urlConnection.getResponseCode() == HttpURLConnection.HTTP_OK) {
    				Log.i("connexion", "succès");
    				return urlConnection.getInputStream();
    			}
    		} catch (Exception e) {
    			throw new Exception("");
    		}
     
    		return null;
     
    	}
     
    	public List<GoogleDistanceMatrix> getDistanceMatrix() {
     
    		try {
    			// Envoie de la requ&#65533;te
    			InputStream inputStream = sendRequest(new URL(URL));
     
    			// V&#65533;rification de l'inputStream
    			if(inputStream != null) {
    				// Lecture de l'inputStream dans un reader
    				InputStreamReader reader = new InputStreamReader(inputStream);
     
    				// Return la liste d&#65533;s&#65533;rialis&#65533; par le moteur gson 
    				return gson.fromJson(reader, new TypeToken<List<GoogleDistanceMatrix>>(){}.getType());
    			}
     
    		} catch (Exception e) {
    			Log.e("WebService", "Impossible de rapatrier les donn&#65533;es :(");
    		}
    		return null;
    	}
     
     
    }
    

    Main
    @Override
    	public void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.localisation);
     
    		listViewData = (ListView) findViewById(R.id.listViewData);
     
    		getData();
     
    		listViewData.setOnItemClickListener(this);
    	}
     
    	@Override
    	public boolean onCreateOptionsMenu(Menu menu) {
    		getMenuInflater().inflate(R.menu.main, menu);
    		return true;
    	}
     
    	private void getData() {
    		new AsyncTask<Void, Void, List<GoogleDistanceMatrix>>() {
     
    			@Override
    			protected List<GoogleDistanceMatrix> doInBackground(Void... params) {
    				GoogleDistance webService = new GoogleDistance();
     
    				List<GoogleDistanceMatrix> liste = webService.getDistanceMatrix();
     
    				if (liste != null) {
    					return liste;
    				}
     
    				return new ArrayList<GoogleDistanceMatrix>();
    			};
     
    			protected void onPostExecute(java.util.List<GoogleDistanceMatrix> result) {
     
    				pointAdapter = new DistanceAdapter(getBaseContext(), android.R.layout.simple_list_item_2, result);
     
    				listViewData.setAdapter(pointAdapter);
    			};
     
    		}.execute();
    	}
    

    public class GoogleDistanceMatrix {
    	String destination_address;
    	String origin_address;
    	String status;
    	Row[] row;
    	
    	public String getDestination_address() {
    		return destination_address;
    	}
    	public void setDestination_address(String destination) {
    		this.destination_address = destination;
    	}
    	
    	public String getOrigin_address() {
    		return destination_address;
    	}
    	public void setOrigin_address(String destination) {
    		this.origin_address = destination;
    	}
    
    	public Row[] getRow() {
    		return row;
    	}
    	public void setRow(Row[] row) {
    		this.row = row;
    	}
    
    }
    

    logCat
    12-23 18:31:19.035: E/dalvikvm(16985): Could not find class 'com.google.gson.Gson', referenced from method com.example.trainingcenter.GoogleDistance.<init>
    12-23 18:31:19.035: W/dalvikvm(16985): VFY: unable to resolve new-instance 507 (Lcom/google/gson/Gson;) in Lcom/example/trainingcenter/GoogleDistance;
    12-23 18:31:19.045: E/dalvikvm(16985): Could not find class 'com.example.trainingcenter.GoogleDistance$1', referenced from method com.example.trainingcenter.GoogleDistance.getDistanceMatrix
    • Partager sur Facebook
    • Partager sur Twitter

    utilisation google distance matrix

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown