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?

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.

  • Excepción; No se puede establecer la propiedad de la solicitud después de realizar la conexión; Se produce en Android Lollipop HTC M8
  • Cómo recuperar array de objetos como resultado del servicio web KSOAP en Android?
  • Consumir un servicio web en una aplicación de Android en localhost
  • Cómo analizar JSON Array dentro de otro JSON Array en Android
  • Cómo cargar archivos utilizando http poner en android?
  • KSoap2 y KvmSerializable-Envía el objeto de clase con un campo de lista a webservice en java android
  • Diferencia entre SOAP y KSOAP
  • Llamar al servicio web desde el dispositivo Android
  • ¿Por qué estoy recibiendo HttpResponse diferente de un navegador en android?
  • El servidor no pudo procesar su solicitud. El valor no puede ser nulo: análisis de jabón
  • Tener problemas para vincular un objeto ksoap a un ArrayList en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.