Android bekommt und analysiere Google Richtungen

Google Anfahrt API

Ich lese diesen Leitfaden jetzt kann ich eine korrekte Anforderung erstellen, um die XML-Datei zu erhalten, die die Richtungen von Adresse A zu Adresse B enthält. Was ich brauche, ist einige Anweisungen und Beispiel, wie man diese xml liest, um die erhaltenen Richtungen auf einem Android MapView zu zeichnen. Ich möchte auch wissen, was dieses Tag in der xml repräsentiert:

<overview_polyline> <points> a~l~Fjk~uOnzh@vlbBtc~@tsE`vnApw{A`dw@~w\|tNtqf@l{Yd_Fblh@rxo@b} @xxSfytAblk@xxaBeJxlcBb~t@zbh@jc|Bx}C`rv@rw|@rlhA~dVzeo@vrSnc}Axf]fjz@ xfFbw~@dz{A~d{A|zOxbrBbdUvpo@`cFp~xBc`Hk@nurDznmFfwMbwz@bbl@lq~@lo Ppxq@bw_@v|{CbtY~jGqeMb{iF|n\~mbDzeVh_Wr|Efc\x`Ij{kE}mAb~uF{cNd}xBjp] fulBiwJpgg@|kHntyArpb@bijCk_Kv~eGyqTj_|@`uV`k|DcsNdwxAott@r}q@_gc@nu`CnvH x`k@dse@j|p@zpiAp|gEicy@`omFvaErfo@igQxnlApqGze~AsyRzrjAb__@ftyB}pIlo_B flmA~yQftNboWzoAlzp@mz`@|}_@fda@jakEitAn{fB_a]lexClshBtmqAdmY_hLxiZd~XtaBndgC </points> <levels>BBBAAAAABAABAAAAAABBAAABBAAAABBAAABABAAABABBAABAABAAAABABABABBABAABB</levels> </overview_polyline> 

Vielen Dank

  • Wie kann ich sagen, ob eine X- und Y-Koordinate in meinem Button sind?
  • Planen Sie mehrere asynchische Tasks in Android
  • Android: Java: Verwenden einer String-Ressource in einem Toast
  • Update recyclerview Inhalt fehlt im unteren Blatt
  • Asynchrone Programmierung Best Practices
  • Android Toast Benachrichtigung ist zu klein in Ice Cream Sandwich
  • Android: getContext (). GetContentResolver () bekommt manchmal NullPointerException
  • Holen Sie sich json von HttpResponse
  • 4 Solutions collect form web for “Android bekommt und analysiere Google Richtungen”

    Ich habe dieses Beispiel im Internet gefunden. Ich werde versuchen, es zu benutzen. Polyline Decodierung Beispiel

     private List<GeoPoint> decodePoly(String encoded) { List<GeoPoint> poly = new ArrayList<GeoPoint>(); int index = 0, len = encoded.length(); int lat = 0, lng = 0; while (index < len) { int b, shift = 0, result = 0; do { b = encoded.charAt(index++) - 63; result |= (b & 0x1f) << shift; shift += 5; } while (b >= 0x20); int dlat = ((result & 1) != 0 ? ~(result >> 1) : (result >> 1)); lat += dlat; shift = 0; result = 0; do { b = encoded.charAt(index++) - 63; result |= (b & 0x1f) << shift; shift += 5; } while (b >= 0x20); int dlng = ((result & 1) != 0 ? ~(result >> 1) : (result >> 1)); lng += dlng; GeoPoint p = new GeoPoint((int) (((double) lat / 1E5) * 1E6), (int) (((double) lng / 1E5) * 1E6)); poly.add(p); } return poly; } 

    Ich habe auch versucht, die Direction Api von Google in Android zu verwenden. Also habe ich ein Open-Source-Projekt gemacht, um das zu tun. Sie finden es hier: https://github.com/MathiasSeguy-Android2EE/GDirectionsApiUtils

    Wie es funktioniert, definitiv einfach:

     public class MainActivity extends ActionBarActivity implements DCACallBack{ /** * Get the Google Direction between mDevice location and the touched location using the Walk * @param point */ private void getDirections(LatLng point) { GDirectionsApiUtils.getDirection(this, startPoint, endPoint, GDirectionsApiUtils.MODE_WALKING); } /* * The callback * When the directions is built from the google server and parsed, this method is called and give you the expected direction */ @Override public void onDirectionLoaded(List<GDirection> directions) { // Display the direction or use the DirectionsApiUtils for(GDirection direction:directions) { Log.e("MainActivity", "onDirectionLoaded : Draw GDirections Called with path " + directions); GDirectionsApiUtils.drawGDirection(direction, mMap); } } 

    Ich habe die Antwort von urobo oben (sehr leicht) gezwungen, um dir LatLngs zu geben, die du für Google Maps für Android V2 willst:

     private List<LatLng> decodePoly(String encoded) { List<LatLng> poly = new ArrayList<LatLng>(); int index = 0, len = encoded.length(); int lat = 0, lng = 0; while (index < len) { int b, shift = 0, result = 0; do { b = encoded.charAt(index++) - 63; result |= (b & 0x1f) << shift; shift += 5; } while (b >= 0x20); int dlat = ((result & 1) != 0 ? ~(result >> 1) : (result >> 1)); lat += dlat; shift = 0; result = 0; do { b = encoded.charAt(index++) - 63; result |= (b & 0x1f) << shift; shift += 5; } while (b >= 0x20); int dlng = ((result & 1) != 0 ? ~(result >> 1) : (result >> 1)); lng += dlng; LatLng p = new LatLng((double) lat / 1E5, (double) lng / 1E5); poly.add(p); } return poly; } 

    Vielleicht möchten Sie einen schnellen Überblick über die Route haben, die von der waypoint_polyline und der Koordinatenliste direkt erstellt wird. Für diese Google haben Release-Decodierung api "Interactive Polyline Encoder Utility"

    Sie können den waypoint_polyline-Wert in das Textfeld "Encoded Polyline" bei der Adresse Interactive Polyline Encoder Utility einfügen

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.