DXF を GeoJSON に変換
この変換ツールは、AutoCAD、BricsCAD などの CAD ソフトの DXF 図面を、Leaflet、Mapbox、OpenLayers、geojson.io などのウェブ地図用の1つの GeoJSON ファイルに変換します。図面の座標系を EPSG コードで入力すると、標準の GeoJSON に必要な経度・緯度に座標が変換されます。各フィーチャーには、CAD 画層、オブジェクトの種類、文字、色が属性として残ります。DXF はブラウザー内で読み込まれ、アップロードされません。
うまく変換できないファイルがありましたか? [email protected] までメールでお知らせください。小さなサンプルファイルを添えていただけると、修正しやすくなります。
要点
- 入力: DXF (.dxf)。出力: GeoJSON (.geojson)。
- ファイルはアップロードされません。処理はお使いのブラウザー内、ご自身の端末で行われます。
- ファイルサイズ: 固定の上限はありません。非常に大きなファイルは端末のメモリーによって制限されます。
- 最新のブラウザー(Chrome、Edge、Firefox、Safari)が必要です。パソコン、タブレット、スマートフォンで使え、インストールは不要です。
- 無料、登録不要です。
DXF を GeoJSON に変換する理由
CAD で描いた配置図や埋設管網、測量図は、ウェブ地図やダッシュボード、スクリプトで使いたいことがよくありますが、そうしたツールが扱うのは DXF ではなく GeoJSON です。このページは、QGIS を支えるオープンソースのライブラリー GDAL で DXF を読み込み、図面の座標系(UTM ゾーンや、JGD2011 平面直角座標系のような国の座標系)から WGS84 の経度・緯度に座標を変換して、RFC 7946 に沿った1つの GeoJSON FeatureCollection に書き出します。線とポリラインは LineString に、閉じたポリライン、円、ハッチングは Polygon になり、点とブロックはその構成要素に分かれ、TEXT と MTEXT は文字を属性に持つ点になります。CAD の色と線の太さは simplestyle の属性としても書き出されるので、geojson.io や GitHub では図面が CAD の色で表示されます。変換する前に、図面が地図上のどこに来るかをプレビューで確認でき、サーバーには何も送信されません。
DXF を GeoJSON に変換する方法
- .dxf ファイルをボックスにドロップするか、クリックして選択します。.dwg は先に DXF で保存してください。
- 図面の座標系を EPSG コードで入力するか(例:平面直角座標系 IX 系なら EPSG:6677)、候補から1つをクリックし、地図上で図面が正しい場所に表示されているか確認します。
- 「閉じたポリラインと円をポリゴンにする」のチェックを必要に応じて外し、「GeoJSON に変換」をクリックして、ファイルをウェブ地図、geojson.io、QGIS に読み込みます。
変換で変わること
図面の位置は EPSG コードで決まる
DXF の座標は座標系のないただの数値ですが、標準の GeoJSON は常に経度・緯度なので、変換ツールは図面の座標系を知る必要があります。日本の測量図はたいてい JGD2011 平面直角座標系(EPSG:6669~6687)で、たとえば東京周辺なら IX 系の EPSG:6677 です。556000, 6324000 のような値なら UTM のメートル(たとえばドイツの EPSG:25832)です。入力欄の下の候補には、その数値が意味をなす座標系が並びます。コードを間違えると図面は別の国に来たり、数百メートルずれたりしますが、変換前に地図のプレビューで確認できます。
ローカル座標の図面
建築の図面は、ミリメートルやメートル単位で 0,0 付近に描かれ、地上の位置とまったく結びついていないことがよくあります。こうした図面に合う EPSG コードはなく、結果がアフリカ沖の経度 0°・緯度 0° 付近に来るとステータス行に警告が出ます。このような図面は、QGIS の Vector Bender プラグインなどで先にジオリファレンスするか、CAD で測量座標に移動してください。
各フィーチャーの属性
すべてのフィーチャーに、Layer(CAD 画層)、Entity(AcDbPolyline、AcDbCircle、AcDbMText など)、ByLayer と ByBlock を解決した #rrggbb 形式の Color、ミリメートル単位の LineWidth、Linetype、エンティティの Handle が付きます。文字にはさらに Text、図面単位の TextSize、反時計回りの度数の TextAngle が付きます。Leaflet や Mapbox で画層ごとにスタイルを付けるには Layer 属性を使い、QGIS で絞り込むには式の中で使ってください。
曲線は直線の線分になる
GeoJSON には円弧、円、スプラインがないため、多数の短い直線の線分になります。樹木、マンホール、方位記号などのブロックは分解され、線、円、文字としてブロック参照の画層に置かれます。破線などの線種、寸法スタイル、表題欄のあるペーパー空間のレイアウトは引き継がれません。
高さと座標の精度
等高線の標高のような実際の高さは3つ目の座標として残り、平面の図面は2つの座標になります。座標は小数点以下 7 桁、地上で約 1 cm の精度で書き出されるので、目に見えるずれを生じさせずにファイルを小さく保てます。
ファイル形式について
DXF
DXF(Drawing Exchange Format)は AutoCAD の公開された交換用の形式で、1982 年から Autodesk が仕様を公開しています。 測量、建築、土木の現場で、CAD 図面をソフト間でやり取りするのに使われます。DXF には、名前の付いた画層(レイヤー)上の線、 ポリライン、円弧、円、文字、ハッチング、ブロックが入りますが、属性テーブルと座標系はありません。
- テキスト(またはバイナリー)形式で、図形のオブジェクトが名前の付いた画層に置かれます。ブロックは、何度も挿入できる再利用可能なシンボルです。
- 属性テーブルはありません。オブジェクトが持つのはジオメトリのほか、画層、色、線種、文字の場合はその文字列だけです。
- 座標系は保存されません。座標はただの数値で、国の座標系(日本なら平面直角座標系)か、現場ごとのローカル座標であることがよくあります。
- DWG は AutoCAD 独自のバイナリー形式で、DXF とは別物です。
GeoJSON
GeoJSON は地理的なフィーチャーを表すプレーンテキストの JSON 形式で、2016 年に RFC 7946 として標準化されました。 Leaflet、MapLibre、Mapbox などのウェブ地図や、多くの API が標準で使う形式です。
- 座標は WGS84 の経度、緯度の順です。
- ポイント、ライン、ポリゴンを1つのファイルに混在させることができます。
- プロパティには任意の JSON 値を使え、フィールド名の長さに制限はありません。
よくある質問
経度・緯度ではなく、平面直角座標系などの国の座標系で GeoJSON を出力できますか?
このページではできません。RFC 7946 の GeoJSON は WGS84 でなければならず、ほとんどのウェブ地図もそれを前提にしているためです。図面の座標系のままにしたい場合は、投影座標系を保持できるシェープファイルや GeoPackage に DXF を変換してください。
地図上で線が黒く表示されるのはなぜですか?
CAD の色 7 は、暗い CAD 画面では白、紙では黒で描かれる色で、#000000 として書き出されます。ほかの色はそのまま残ります。simplestyle の属性 stroke と fill にも同じ色が入っているので、独自の地図スタイルでも使えます。
図面の EPSG コードはどう調べればよいですか?
作成した人に聞くか、DXF を読み込んだあとに入力欄の下に表示される候補を使ってください。候補には図面の数値が意味をなす座標系が並び、それぞれの座標系で図面がどこに来るかを地図のプレビューで確認できます。
図面はアップロードされますか?
いいえ。DXF はお使いのコンピューター上でブラウザーが読み込んで変換し、サーバーには何も送信されません。
GeoJSON を DXF に戻せますか?
はい、GeoJSON から DXF への変換ツールで戻せます。経度・緯度は UTM のメートルや平面直角座標系などに変換され、ファイルはそれぞれ独自の CAD 画層になります。