piapia123
ja

GeoJSON を SVG 地図に

生成

処理はすべてブラウザ内で完結します。データは送信されません

プレビュー上の設定を変えると即座に描き直します
SVG ソース

GeoJSON を貼り付けると、その場で SVG 地図として描画され、ソースをコピーしたり `.svg` としてダウンロードできます。Point / LineString / Polygon とその Multi 形式に対応し、Feature・FeatureCollection・GeometryCollection も受け付けます。座標は `[経度, 緯度]` です。 ⚠️ 緯度の y 軸は反転しています。緯度は北へ向かって大きくなり、SVG の y は下へ向かって大きくなります —— 反転しないと地図全体が上下逆さまになりますが、それでも「地図らしく」見えます(海は海のまま)。そのためこの誤りは目ではなかなか気づけません。ここでは必ず反転し、北半球の点は画面の上側に来ます。 投影は 3 種類:正距円筒(最も簡単。高緯度では横に伸びます)、メルカトル(Web 地図が使うもので、局所的な形は合いますが高緯度は歪みます)、経緯度をそのまま(非等倍でキャンバスを埋めるため、伸びます)。 ⚠️ 座標点には上限があります。高精度な国境の GeoJSON は数十万点になることがあり、全部描くとタブがフリーズします —— しかもエラーは出ず、ただどんどん遅くなるだけです。そこでしきい値を超えたら明確にエラーにし、無理に計算し続けません。 地図の下にはフィーチャー数・座標点数・バウンディングボックスを表示します —— データが正しいかは、この箱を見れば一目で分かります。

機能

  • GeoJSON を貼り付けるとリアルタイムで SVG 地図に描画します
  • Point / LineString / Polygon とその Multi 形式に対応
  • Feature・FeatureCollection・GeometryCollection を受け付けます
  • ⚠️ 緯度の y 軸を反転して北を上に(反転しないと地図に見えたまま上下が逆になります)
  • 3 種類の投影:正距円筒 / メルカトル / 経緯度をそのまま
  • ストローク色・塗り色・線幅を調整でき、頂点と経緯線の表示に対応
  • フィーチャー数・座標点数・バウンディングボックスを表示
  • ⚠️ 座標点が上限を超えたらエラーにし、タブをフリーズさせません
  • SVG ソースをコピー、または .svg としてダウンロード
  • すべてブラウザー内で完結し、何も送信しません

使い方

  1. GeoJSON を入力欄に貼り付けます
  2. 投影を選び、必要なら色や線幅を変えます
  3. 頂点や経緯線にチェックを入れます
  4. プレビューとフィーチャー数・バウンディングボックスを確認し、ソースをコピーするか .svg をダウンロードします

よくある質問

地図で y 軸を上下反転するのはなぜですか?
緯度は北へ大きくなり、SVG の y は下へ大きくなるので、両者の向きが逆だからです。反転しないと地図全体が上下逆さまになります —— それでも地図らしく見える(海は海のまま、陸は陸のまま)ため、この誤りは目ではなかなか気づけません。ここでは投影後の y を負にすることで、北半球の点が自然に画面の上側へ来ます。
メルカトルと正距円筒は何が違いますか?
正距円筒は経緯度をそのまま平面の座標として使う(`x = 経度`、`y = -緯度`)最も簡単な方法ですが、高緯度では横に伸びます(グリーンランドが巨大に見えます)。メルカトルは緯度に非線形な変換(`y = ln(tan(π/4 + φ/2))`)を施し、局所的な形がより正確になります —— Web 地図がこれを使う理由です —— が、同じく高緯度は歪み、緯度は ±85.0511° に収める必要があります(それ以上は無限大に近づきます)。狭い範囲なら両者の違いは分かりません。
GeoJSON が「座標点が多すぎる」と出るのはなぜですか?
座標点が 2 万を超えているからです。高精度の国境や海岸線のデータは数十万点になることが普通で、それを全部 `<path>` にするとタブがフリーズします —— エラーは出ず、使うほど遅くなるだけで、原因を突き止めにくいのです。そこでここでは上限を設け、超えたら明確にエラーにして、先にジオメトリを簡略化(mapshaper などで精度を落とす)してから試せるようにしています。
できた図はそのまま画像として使えますか?
使えます。コピーされるのは `xmlns` 付きの完全な SVG で、`.svg` ファイルとして保存したり、Web ページに貼ったり、Illustrator や Figma に読み込んで編集できます。ベクターなので拡大してもぼやけません。

関連ツール