Google Directions API berhenti menyediakan data KML sejak 27 Julai 2012. Oleh itu, pembangun perlu berhijrah ke JSON atau format XML sebaliknya.
JSON:
Untuk menghuraikan data JSON, anda boleh mencipta enam kelas seperti berikut:
Parser.java: Mentakrifkan antara muka untuk penghuraian.
XMLParser.java: Menyediakan kelas asas untuk penghuraian XML.
Segment.java: Mewakili segmen laluan.
Laluan .java: Mewakili keseluruhan route.
GoogleParser.java: Menghuraikan data Google JSON.
RouteOverlay.java: Melukis laluan pada tindanan peta.
XML:
Sebagai alternatif, anda boleh menggunakan XML untuk menghurai, menggantikan GoogleParser.java dengan yang berikut:
XMLParser.java: Menghuraikan data XML Google.
Untuk menggunakan kelas ini, anda boleh membuat yang berikut kod:
private Route directions(GeoPoint start, GeoPoint dest) { Parser parser; String jsonURL = "https://developers.google.com/maps/documentation/directions/#JSON"; // API URL StringBuffer sBuf = new StringBuffer(jsonURL); sBuf.append("?origin="); sBuf.append(start.getLatitudeE6()/1E6); sBuf.append(','); sBuf.append(start.getLongitudeE6()/1E6); sBuf.append("&destination="); sBuf.append(dest.getLatitudeE6()/1E6); sBuf.append(','); sBuf.append(dest.getLongitudeE6()/1E6); sBuf.append("&sensor=true&mode=driving"); parser = new GoogleParser(sBuf.toString()); Route r = parser.parse(); return r; }
Kemudian, tambahkan kod berikut pada fungsi onCreate() anda:
MapView mapView = (MapView) findViewById(R.id.mapview); Route route = directions(new GeoPoint((int)(26.2*1E6),(int)(50.6*1E6)), new GeoPoint((int)(26.3*1E6),(int)(50.7*1E6))); RouteOverlay routeOverlay = new RouteOverlay(route, Color.BLUE); mapView.getOverlays().add(routeOverlay); mapView.invalidate();
Atas ialah kandungan terperinci Mengapa API Arah Google Berhenti Menyediakan Data KML?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!