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 がエンコードされた経路を渡してきてプレーンな座標が必要なとき、あるいはその逆のときに便利です。すべてはデバイス上で計算され、貼り付けた経路がアップロードされることはありません。
機能
- lat/lng 座標のリストを Google Encoded Polyline 文字列にエンコード
- polyline を座標と、それに相当する GeoJSON LineString にデコード
- 精度 5(Google Maps)または 6(OSRM・Valhalla・Mapbox)を双方向で切り替え
- エンコード入力として「lat, lng」を 1 行ずつ、または GeoJSON LineString / Feature を受け付け
- 地図や geojson.io にそのまま貼り付けられる GeoJSON LineString を出力
- 経路が約 10 倍ずれる典型的原因である、精度違いのデコードを警告
- エンコード文字列・座標リスト・GeoJSON をワンクリックでコピー
- 標準的な例を読み込み、自分の経路を貼り付ける前に形式を確認
polyline エンコーダー の使い方
- 座標を polyline にする「エンコード」か、polyline を展開する「デコード」を選びます。
- データソースに合わせて精度 5(Google)か 6(OSRM/Valhalla)を選びます。
- 座標(1 行に 1 つの「lat, lng」または GeoJSON LineString)、あるいはエンコードされた polyline を貼り付けます。
- 結果で、エンコード文字列を、または座標リストと GeoJSON LineString を読み取ります。
- 地図・API リクエスト・データファイル向けに任意の出力をコピーします。
例
入力
38.5, -120.2
40.7, -120.95
43.252, -126.453
出力
_p~iF~ps|U_ulLnnqC_mqNvxq`@
Google のドキュメントにある標準的な 3 点の経路を、精度 5 でエンコード。
よくあるエラーとトラブルシューティング
- デコードした経路が約 10 倍ずれる、または縮尺が合わない。 — 精度が一致していません。Google と Google Maps は 5 を、OSRM・Valhalla・Mapbox は 6 を使います。精度トグルを、その文字列を作ったものに合わせて切り替えてください。
- デコードした点はもっともらしいのに、地図では線が海に描かれる。 — polyline とこのツールは緯度を先に格納しますが、GeoJSON の座標は [longitude, latitude] です。自分でペアを入れ替えず、GeoJSON の出力をそのまま使ってください。
- デコードが「malformed polyline」メッセージで止まる。 — 文字列が途中で切れたか、余計な文字とともにコピーされています。polyline 全体をコピーし、周囲のクォートや、二重バックスラッシュのような JSON エスケープを取り除いてください。
よくある質問
- 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 はデバイス上で処理され、サーバーにアップロードされることはありません。
関連ツール
- GeoJSON ビューアー — GeoJSON を検証して地図でプレビューし、フィーチャー数とバウンディングボックスを表示。
- GPX から GeoJSON — GPX と GeoJSON をブラウザー内で相互変換。トラックやウェイポイントはデバイスから外に出ません。
- 座標変換ツール — 緯度経度を十進度・DMS・DDM の間で双方向に変換し、N/S/E/W も自動処理。
- 緯度経度マップ — 緯度と経度を地図にプロットし、地図をクリックして座標を読み取れます。
- GeoJSON から CSV — GeoJSON と CSV をブラウザー内で相互変換。Point は緯度・経度の列になり、線やポリゴンも保持されます。
- WKT から GeoJSON — WKT(Well-Known Text)と GeoJSON をブラウザー内で相互変換。POINT・LINESTRING・POLYGON に対応します。
すべての ArrayKit ツール