使用KML 資料擷取Google 路線時出現問題
自2012 年7 月27 日起,Google 已停止使用KML 資料擷取Google路線。這意味著程式碼不再用於透過解析 KML 檔案從 Google 提取路線功能性。
解決方案:
遷移程式碼以使用 JSON 而不是 KML。為了促進這種轉變,我創建了以下類別:
實作:
private Route directions(final GeoPoint start, final GeoPoint dest) { Parser parser; String jsonURL = "https://developers.google.com/maps/documentation/directions/#JSON"; final 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; }
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();
在onCreate()方法中加入以下內容程式碼:
注意:建議在AsyncTask 中使用Directions() 函數,以避免UI 執行緒上的網路操作。以上是如何從 KML 遷移到 JSON 以檢索 Google 路線資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!