polyline エンコーダー/デコーダー

座標を Google の polyline 文字列にエンコードし、あるいは polyline を lat/lng と GeoJSON へデコード――すべてブラウザー内で。経路はデバイスに残ります。

貼り付けた座標や polyline 文字列はブラウザー内でローカルにエンコード・デコードされ、アップロードされることはありません。入力した内容がサーバーに保存されることはありません。

経路を地図で見たいですか?座標マップビューアーを開きましょう。

polyline エンコーダー について

この polyline エンコーダー/デコーダーは、Google の Encoded Polyline Algorithm Format を完全にブラウザー内で扱います。エンコードモードでは、1 行に 1 つの「lat, lng」――または GeoJSON LineString――を貼り付けると、Directions API が経路として返すコンパクトなエンコード文字列が得られます。デコードモードでは、エンコードされた polyline を貼り付けると、座標のリストに加え、地図にそのまま落とし込める GeoJSON LineString を読み取れます。精度トグルは 5(Google Maps のデフォルト)と 6(OSRM・Valhalla・Mapbox が使用)を切り替えます。これはデコードした経路が違う場所に落ちる典型的な原因です。polyline は経路全体を短い ASCII 文字列に詰め込むため、API がエンコードされた経路を渡してきてプレーンな座標が必要なとき、あるいはその逆のときに便利です。すべてはデバイス上で計算され、貼り付けた経路がアップロードされることはありません。

機能

polyline エンコーダー の使い方

  1. 座標を polyline にする「エンコード」か、polyline を展開する「デコード」を選びます。
  2. データソースに合わせて精度 5(Google)か 6(OSRM/Valhalla)を選びます。
  3. 座標(1 行に 1 つの「lat, lng」または GeoJSON LineString)、あるいはエンコードされた polyline を貼り付けます。
  4. 結果で、エンコード文字列を、または座標リストと GeoJSON LineString を読み取ります。
  5. 地図・API リクエスト・データファイル向けに任意の出力をコピーします。

入力

38.5, -120.2
40.7, -120.95
43.252, -126.453

出力

_p~iF~ps|U_ulLnnqC_mqNvxq`@

Google のドキュメントにある標準的な 3 点の経路を、精度 5 でエンコード。

よくあるエラーとトラブルシューティング

よくある質問

Google encoded polyline とは何ですか。
緯度経度の点からなる経路を、Google の Encoded Polyline Algorithm Format で定義されたコンパクトな ASCII エンコードにしたものです。Directions API や Roads API がこの形式で経路を返すのは、文字列が座標のフルリストよりはるかに短く、正確な点へデコードし戻せるためです。
polyline には精度 5 と 6 のどちらを使うべきですか。
Google Maps と Google Directions API には 5 を、OSRM・Valhalla・GraphHopper・Mapbox には 6 を使います。精度 6 は小数を 1 桁多く保つため、6 でエンコードして 5 でデコードすると約 10 倍ずれます。必ず polyline を作ったツールに合わせてください。
エンコードされた polyline を GeoJSON に変換するにはどうすればよいですか。
「デコード」に切り替えて polyline を貼り付けると、ツールがプレーンな座標リストと並んで GeoJSON LineString Feature を出力します。GeoJSON はすでに [longitude, latitude] の順を使っているため、geojson.io・Leaflet・マッピングライブラリにそのまま貼り付けられます。
GeoJSON LineString を polyline にエンコードできますか。
はい。エンコードモードでは GeoJSON LineString、またはそれを包む Feature や FeatureCollection を貼り付けられ、ツールがその座標を読み取ってエンコード文字列を返します。GeoJSON がない場合は、プレーンな「lat, lng」の行を貼り付けることもできます。
エンコードやデコードのとき、経路データはどこかに送信されますか。
いいえ。エンコードとデコードは標準アルゴリズムを使って完全にブラウザー内で動くため、貼り付けた座標や polyline はデバイス上で処理され、サーバーにアップロードされることはありません。

関連ツール

すべての ArrayKit ツール