Google ルート データを取得するために KML から JSON に移行するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-25 11:36:45
オリジナル
914 人が閲覧しました

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

KML データを使用した Google ルートの取得に関する問題

Google は、2012 年 7 月 27 日以降、KML データを使用した Google ルートの取得を中止しました。これは、コードを意味します。 KML ファイルを解析して Google からルートを抽出するために使用されていた機能は廃止されました。 function.

解決策:

KML ではなく JSON を使用するようにコードを移行します。この移行を容易にするために、次のクラスを作成しました:

  • Parser.java: Google Directions データを解析するためのインターフェイスを定義します。
  • XMLParser。 java: 提供された XML データを解析するための抽象クラスを実装します。 URL.
  • Segment.java: ポイント、ターン指示、長さ、距離を含むルートのセグメントを表します。
  • Route.java: ポイント、ターン指示、長さ、ポリラインなどを含むルートを表しますmetadata.
  • GoogleParser.java: Google JSON データの具体的なパーサーを実装します。
  • RouteOverlay.java: ルートを描画しますmap.

実装:

  1. 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;
}
ログイン後にコピー
  1. onCreate() メソッドに次のコードを追加します。コード:
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();
ログイン後にコピー

注: UI スレッドでのネットワーク操作を回避するには、AsyncTask 内で Directions() 関数を使用することをお勧めします。

以上がGoogle ルート データを取得するために KML から JSON に移行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート