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.

  • ¿Qué es una manera fácil de stub / dummy un servicio web relajante?
  • Analizar la respuesta de KSoap2 en android
  • Cómo llamar al servicio web https en Android
  • Diferencia entre SOAP y KSOAP
  • Llamar al servicio web desde el dispositivo Android
  • ¿Cómo puedo hacer que una aplicación de Android se comunique con un servidor web a través de Internet?
  • Soap Client en Android para acceder a las API de Salesforce
  • Cómo rastrear / depurar este error SOAP => parece que no tenemos ningún documento XML
  • ¿Por qué estoy recibiendo HttpResponse diferente de un navegador en android?
  • Enviar la imagen capturada al servidor web en android
  • Java.io.FileNotFoundException en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.