CSV を GeoJSON に変換 – 緯度経度または WKT から

このコンバーターは、緯度・経度の列または WKT の列を持つ CSV を GeoJSON に変換し、Excel がよく書き出すセミコロン区切り、小数点カンマ、Windows の文字コードにも対応します。CSV はブラウザー内で読み込まれ、アップロードされません。住所のジオコーディングは行わず、度分秒の座標には対応していません。有効な座標のない行は、ジオメトリが null のまま残ります。

うまく変換できないファイルがありましたか? [email protected] までメールでお知らせください。小さなサンプルファイルを添えていただけると、修正しやすくなります。

要点

CSV を GeoJSON に変換する理由

店舗、センサー、目撃情報、顧客などのリストは、1行に1地点、緯度と経度の列を持つ形で Excel や Google スプレッドシートで作られることがよくあります。それをウェブ地図に載せるには GeoJSON が必要です。このコンバーターは、lat、latitude、lon、lng、longitude、x、y といった一般的な名前の列なら、座標の列を自動で見つけます。また、POINT (12.57 55.68) のような WKT テキストの列も使え、その場合は線やポリゴンも扱えます。Excel が国ごとに書き出す CSV の違い、つまりカンマかセミコロンか、小数点がピリオドかカンマか、UTF-8 か古い Windows の文字コードかにも対応します。列が認識されない場合は、ご自分で選べます。ほかの列はすべてプロパティになります。ファイルはブラウザー内で読み込まれ、アップロードされることはありません。

CSV を GeoJSON に変換する方法

  1. .csv ファイルをボックスにドロップするか、クリックして選択します。
  2. 座標に使う列を確認し、経度・緯度でない場合は「CSV の座標系(EPSG コード)」に座標系を入力します。
  3. 「GeoJSON に変換」をクリックし、GeoJSON ファイルをダウンロードします。

知っておきたいポイント

座標の列の見つけ方

値が WKT に見える列があれば、まずそれがジオメトリとして使われます。そうでなければ、名前が lon、lng、long で始まる列、または x や easting という名前の最初の列が経度/X に、名前が lat で始まる列、または y や northing という名前の最初の列が緯度/Y になります。どの列が使われたかは概要に表示され、別の列を選ぶこともできます。コペンハーゲンの地点で緯度と経度が逆になると、アラビア海に置かれてしまうので、変換前に地図で確認する価値があります。住所は座標に変換されません。ファイルには数値または WKT が必要です。

セミコロンと小数点カンマ

ドイツ、フランス、デンマークなど多くの国では、Excel が列の区切りにセミコロン、小数点にカンマを使って CSV を保存するため、55,6813 は 55.6813 を意味します。区切り文字(カンマ、セミコロン、タブ、パイプ)はヘッダー行から判定され、Excel の「sep=」で始まる1行目にも従います。小数点カンマは、セミコロン区切りやタブ区切りのファイルで認識されます。カンマ区切りのファイルでは、カンマは区切り文字としか解釈できません。小数点カンマのファイルでは、1.200 のような桁区切り付きの数値はテキストのままです。55°40'52"N のような度分秒の座標には対応していないため、先に十進数の度に変換してください。

文字コード

BOM の有無を問わず UTF-8、そして UTF-16 を認識します。有効な UTF-8 でないファイルは、西ヨーロッパや南北アメリカの Windows 版 Excel が「CSV(カンマ区切り)」で使う Windows-1252 として読み込まれるため、æ、ø、é、ñ などの文字も正しく残ります。Shift_JIS などのアジアの文字コードやキリル文字の文字コードといった、ほかの古い文字コードは判別されません。そうしたファイルは、先に「CSV UTF-8」で保存し直してください。

数値、テキスト、空のセル

列が GeoJSON で数値になるのは、その列の値がすべて数値の場合だけです。郵便番号 0800 や ID 000123 のように先頭が 0 の値があれば列はテキストのままになり、何も失われません。座標の列はプロパティとして重複して入りません。座標が空または読み取れない行は "geometry": null のまま残り、その件数がページに表示されます。

座標系

CSV には、数値がどの座標系のものかが書かれていません。経度・緯度は、GPS や Google マップと同じ WGS84 とみなします。UTM の東距・北距(メートル単位)のように明らかに度でない値の場合は、EPSG:25832 や EPSG:27700 などの EPSG コードの入力を求められ、WGS84 に変換されます。SRID=... 付きの EWKT 値なら、コードが自動で入ります。

ファイル形式について

CSV

CSV(comma-separated values)は、Excel、Google スプレッドシート、あらゆるデータベースで開けるプレーンテキストの表です。 独自のジオメトリタイプはなく、位置は緯度と経度のような2つの座標列、または WKT テキストの列として保存されます。

  • ポイントは2つの列(X と Y、または経度と緯度)で表せます。ラインとポリゴンには WKT 列が必要です。
  • 座標系はファイルに保存されないため、別途控えておいてください。
  • 区切り文字に標準はありません。Excel は言語設定によってカンマまたはセミコロンを使います。
  • すべての値はテキストです。0800 を数値と見なすか郵便番号と見なすかは、読み込むプログラム次第です。

GeoJSON

GeoJSON は地理的なフィーチャーを表すプレーンテキストの JSON 形式で、2016 年に RFC 7946 として標準化されました。 Leaflet、MapLibre、Mapbox などのウェブ地図や、多くの API が標準で使う形式です。

  • 座標は WGS84 の経度、緯度の順です。
  • ポイント、ライン、ポリゴンを1つのファイルに混在させることができます。
  • プロパティには任意の JSON 値を使え、フィールド名の長さに制限はありません。

よくある質問

CSV はアップロードされますか?

いいえ。ファイルの読み込みと変換はお使いのブラウザーが行うため、顧客リストなどの個人的な住所データがお使いのコンピューターの外に出ることはありません。

Excel ではどの形式で CSV を保存すればよいですか?

すべての文字が保たれる「CSV UTF-8(コンマ区切り)」がもっとも安全です。通常の「CSV」形式でもかまいません。コンバーターは Windows の文字コードや、小数点にカンマを使う国でのセミコロン区切りも読み込みます。

CSV に線やポリゴンを入れられますか?

はい、WKT の列を使えば入れられます。1行に1つのジオメトリで、たとえば LINESTRING (12.56 55.67, 12.57 55.68) や POLYGON、MULTIPOLYGON です。2つの列に分かれた座標からは、ポイントしか作れません。

Google スプレッドシートでも使えますか?

はい。Google スプレッドシートで「ファイル」→「ダウンロード」→「カンマ区切り形式」を選び、そのファイルをここにドロップしてください。