Ajustar a las carreteras Android

Estoy escribiendo una aplicación de Android y necesito la capacidad de tomar un lat / valor largo y encontrar el lat / largo valor de la carretera más cercana a la misma. He leído el artículo en http://econym.org.uk/gmap/snap.htm , y he intentado implementar esto, pero he tenido que usar los Webservices de Google Maps en lugar de javascript (ya que es una aplicación para Android) . Cuando hago una solicitud como

Maps.google.com/maps/api/directions/xml?origin=52.0,0&destination=52.0,0&sensor=true

No me devuelve la carretera más cercana en absoluto! Parece que el método anterior no funciona con los servicios web. ¿Alguien tiene alguna otra idea sobre cómo resolver este problema?

One Solution collect form web for “Ajustar a las carreteras Android”

Su URL parece funcionar perfectamente.

Aquí está el AsyncTask que usé para probarlo.

public class SnapToRoad extends AsyncTask<Void, Void, Void> { private static final String TAG = SnapToRoad.class.getSimpleName(); @Override protected Void doInBackground(Void... params) { Reader rd = null; try { URL url = new URL("http://maps.google.com/maps/api/directions/xml?origin=52.0,0&destination=52.0,0&sensor=true"); HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.setReadTimeout(10000 /* milliseconds */); con.setConnectTimeout(15000 /* milliseconds */); con.connect(); if (con.getResponseCode() == 200) { rd = new InputStreamReader(con.getInputStream()); StringBuffer sb = new StringBuffer(); final char[] buf = new char[1024]; int read; while ((read = rd.read(buf)) > 0) { sb.append(buf, 0, read); } Log.v(TAG, sb.toString()); } con.disconnect(); } catch (Exception e) { Log.e("foo", "bar", e); } finally { if (rd != null) { try { rd.close(); } catch (IOException e) { Log.e(TAG, "", e); } } } return null; } 

Dentro de la salida logcat si mira hacia abajo unas líneas que debe ver:

 11-07 16:20:42.880: V/SnapToRoad(13920): <start_location> 11-07 16:20:42.880: V/SnapToRoad(13920): <lat>51.9999900</lat> 11-07 16:20:42.880: V/SnapToRoad(13920): <lng>0.0064800</lng> 11-07 16:20:42.880: V/SnapToRoad(13920): </start_location> 

Son las coordenadas que buscas. Espero que esto ayude.

  • Android FileNotFoundException obtener arrojado de URL.openStream ()
  • El servidor no pudo procesar su solicitud. El valor no puede ser nulo: análisis de jabón
  • Cómo analizar JSON Array dentro de otro JSON Array en Android
  • El método HttpTransportSe.call () tarda hasta un minuto en llamar al servicio web
  • Java.net.SocketException: recvfrom falló: ECONNRESET (Conexión restablecida por pares) Más de WIFI
  • Cómo resolver org.apache.http.conn.ConnectTimeoutException en Android?
  • SOAP Envelope Response Error: Error al leer XMLStreamReader
  • Recurso IP en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.