シェープファイル(SHP)を KMZ に変換

この変換ツールは、シェープファイルを Google Earth や Google マイマップ用の KMZ ファイルに変換します。KMZ は KML を doc.kml として収めた zip で、WGS84 に座標変換され、属性はプレイスマークのデータとして残ります。処理はブラウザー内で行われ、アップロードされません。名前に使う列を選べます。色は付かず、ポイントは押しピン、ラインと輪郭は赤になります。

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

要点

シェープファイルを KMZ に変換する理由

KMZ は Google Earth が標準で保存する形式で、「Google Earth のファイル」と言われたときに多くの人が思い浮かべる形式でもあります。KML を圧縮したもので、元の KML の5分の1から10分の1ほどの大きさになることがよくあります。地番図や道路網をメールで送ったり、ファイルサイズに上限のあるポータルにアップロードしたりするときには、この差が効いてきます。このページは、QGIS の土台でもあるオープンソースのライブラリ GDAL を使ってシェープファイルから KML を書き出し、doc.kml として KMZ にまとめる処理を、ブラウザー内で直接行います。.prj を読み取るので、平面直角座標系や UTM ゾーンのシェープファイルも正しい位置に表示されます。.dbf の属性は各プレイスマークのデータとして残り、1つの .zip に入った複数のシェープファイルは、それぞれのフォルダーを持つ1つの KMZ になります。

シェープファイルを KMZ に変換する方法

  1. シェープファイルを含む .zip をドロップするか、.shp、.shx、.dbf、.prj ファイルをまとめて選択します。
  2. 「プレイスマークの名前に使う列」を選ぶか、「自動」のままにします。
  3. 「KMZ に変換」をクリックし、ダウンロードしたファイルを Google Earth で開くか、マイマップにインポートします。

変換で変わること

KMZ と KML のどちらにするか

中身は同じで、KMZ は KML を doc.kml として収めた zip です。Google Earth、Google マイマップ、QGIS、ArcGIS はどちらも開けます。送ったりアップロードしたりするために小さいファイルが欲しいなら KMZ を、テキストエディターや圧縮されていない KML しか読めないソフトで開きたいなら KML を選んでください。その場合はシェープファイルを KML に変換するツールを使います。

常に WGS84 に座標変換される

KML の座標は、定義上 WGS84 の経度・緯度です。そのため、シェープファイルは .prj の座標系から座標変換されます。元の投影法は KMZ に保存されないため、あとで必要になる場合はシェープファイルを残しておいてください。.prj がなく、座標がメートル単位の場合、ページは処理を止めて当てはまりそうな座標系を提案します。EPSG コードを入力することもできます。たとえば JGD2011 の平面直角座標系 第IX系なら 6677 です。

プレイスマークの名前を選ぶ

Google Earth は各プレイスマークに名前のラベルを付けますが、シェープファイルに Name という列があることはまれです。「自動」では、Name という列があればそれを、なければ name、title、label を含むテキストの列を、それもなければ最初のテキストの列を使います。ほかの列や「名前なし」を選ぶこともできます。それ以外の属性は、プレイスマークのバルーンにデータの表として表示され、Google Earth ではすべての値がテキストとして表示されます。

標準のスタイル

シェープファイルには色がありません。QGIS や ArcGIS で見える記号は、プロジェクトや .qml/.lyr ファイルに保存されていて、それらは読み込まれません。ポイントは Google Earth の標準の押しピンになり、ラインとポリゴンの輪郭は赤で描かれ、ポリゴンは塗りつぶされません。Google Earth Pro でフォルダーを右クリックして「プロパティ」(Mac では「情報を見る」)を開き、スタイルを設定してから、KMZ を保存し直してください。

大きなシェープファイル

KMZ 自体は小さくても、展開したあと Google Earth はすべての頂点を描画しなければなりません。頂点が数十万もある詳細な地番や等高線のレイヤーでは Google Earth の動作が重くなり、マイマップでは1つのレイヤーに入れられるフィーチャー数にも上限があります。重すぎる場合は、先に QGIS でレイヤーを単純化するか、範囲ごとに分割してください。

ファイル形式について

Shapefile

Esri シェープファイルは、GIS で最も広く使われているベクター形式です。「シェープファイル」は実際には同じ名前のファイルの集まりで、 .shp にジオメトリ、.shx にインデックス、.dbf に属性テーブルが入り、任意の .prj に座標系、.cpg に文字コードが入ります。

  • 少なくとも .shp、.shx、.dbf が必要です。まとめて選択するか、1つの .zip にしてください。
  • フィールド名は10文字まで、テキスト値は254文字までです。
  • 1つのシェープファイルに入れられるジオメトリタイプは1種類だけです(ポイント、ライン、ポリゴンのいずれか)。
  • .prj ファイルがないと、座標系が不明になります。

KMZ

KMZ は KML ファイルを zip で圧縮した形式で、アイコンや画像が一緒に入っていることもよくあります。 Google Earth は標準で KMZ として保存するため、Google Earth からエクスポートすると多くの場合この形式になります。

  • zip 内のメインファイルは、たいてい doc.kml です。
  • KMZ 内の画像やアイコンは地理データではないため、GeoJSON やシェープファイルなどに変換するときは含まれません。

よくある質問

KMZ を Google マイマップに読み込めますか?

はい。マイマップでレイヤーを追加し、「インポート」をクリックして KMZ を選んでください。マイマップはプレイスマークの名前をタイトルとして使い、ほかの属性を詳細に表示します。

KMZ がシェープファイルよりずっと小さいのはなぜですか?

KML のテキストは非常によく圧縮でき、KMZ には経度・緯度のデータが1組だけ入っているからです。シェープファイルの .shx インデックスや .prj は、KMZ には必要ありません。

穴のあるポリゴンやマルチパートのフィーチャーはどうなりますか?

穴は内側の境界として、マルチパートのフィーチャーは KML の MultiGeometry として書き出されるため、Google Earth でも GIS と同じように表示されます。

シェープファイルはアップロードされますか?

いいえ。GDAL はお使いのブラウザー内で動き、KMZ はお使いのコンピューター上で書き出されます。サーバーには何も送られません。

KMZ をシェープファイルに戻せますか?

はい、KMZ をシェープファイルに変換するツールで戻せます。属性はシェープファイルの列として戻ります。