package com.odc.beachodc.utilities.placeAutocomplete; /** * Created by Paco on 07/07/2014. */ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.URLEncoder; import java.util.HashMap; import java.util.Map; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import org.json.JSONObject; import android.content.Context; import android.os.AsyncTask; import com.odc.beachodc.R; import com.odc.beachodc.interfaces.IStandardTaskListener; public class DetailsPlaceOne extends AsyncTask<String, Void, Boolean>{ private IStandardTaskListener listener; public Map<String, Double> coordinates; Context ctx; public void setContext (Context ctx){ this.ctx = ctx; } @Override // Se ejecuta en segundo plano protected Boolean doInBackground(String... args) { coordinates = new HashMap<String, Double>(); try{ // TODO: Cambiar la KEY String requesturl="https://maps.googleapis.com/maps/api/place/details/json?reference="+URLEncoder.encode(args[0], "UTF-8")+"&sensor=false&key="+ctx.getResources().getString(R.string.app_key_google_apis_web); DefaultHttpClient client=new DefaultHttpClient(); HttpGet req=new HttpGet(requesturl); HttpResponse res=client.execute(req); HttpEntity jsonentity=res.getEntity(); InputStream in=jsonentity.getContent(); JSONObject jObject=new JSONObject(convertStreamToString(in)); Double lat = (Double)jObject.getJSONObject("result").getJSONObject("geometry").getJSONObject("location").get("lat"); Double lng = (Double)jObject.getJSONObject("result").getJSONObject("geometry").getJSONObject("location").get("lng"); coordinates.put("lat", lat); coordinates.put("lng", lng); return true; } catch (Exception e){} return false; } // Este metodo se ejecuta cuando el 'doInBackground' ha terminado, y recibe como parametro // lo devuelto en el 'doInBackground' @Override protected void onPostExecute(Boolean result){ if (listener != null) { listener.taskComplete(result); } } public void setListener(IStandardTaskListener listener) { this.listener = listener; } public static String convertStreamToString(InputStream in) { BufferedReader br=new BufferedReader(new InputStreamReader(in)); StringBuilder jsonstr=new StringBuilder(); String line; try { while((line=br.readLine())!=null) { String t=line+"\n"; jsonstr.append(t); } br.close(); } catch (IOException e) { e.printStackTrace(); } return jsonstr.toString(); } }