首頁 > Java > java教程 > 主體

如何從 KML 遷移到 JSON 以檢索 Google 路線資料?

Barbara Streisand
發布: 2024-11-25 11:36:45
原創
914 人瀏覽過

How to Migrate from KML to JSON for Retrieving Google Directions Data?

使用KML 資料擷取Google 路線時出現問題

自2012 年7 月27 日起,Google 已停止使用KML 資料擷取Google路線。這意味著程式碼不再用於透過解析 KML 檔案從 Google 提取路線功能性。

解決方案:

遷移程式碼以使用 JSON 而不是 KML。為了促進這種轉變,我創建了以下類別:

  • Parser.java:定義用於解析 Google Directions 資料的介面。
  • XMLParser。 java: 實作一個抽象類,用於解析提供的 XML 資料URL。
  • Segment.java:表示路線的一段,包括點、轉彎指示、長度和距離。
  • Route.java: 表示一條路線,包括點、轉彎指示、長度、折線等元資料。
  • GoogleParser.java: 為 Google JSON 資料實作特定解析器。
  • RouteOverlay.java: 在map.

實作:

  1. 實作:
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;
}
登入後複製
    將用於從 KML提取路線的程式碼替換為以下函數:
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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板