0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

統合したGeoJSONを軽量化する:simplifyとTopoJSONを試す

0
Posted at

はじめに

これまでの記事では、洪水浸水想定区域データの取得から可視化までを扱ってきました。

前回の記事では、そのデータを統合し、
都道府県単位でLeaflet上に表示するところまで進めました。

ただし、統合後のGeoJSONは約85MBとなり、表示はできるものの、
読み込みや描画の重さが気になる状態でした。

そこで今回は、このGeoJSONをベースにして、実際に軽量化を行います。

今回の内容

同じGeoJSON(約85MB)に対して、以下の2パターンを試します。

  • GeoJSONのまま軽量化する(simplify)
  • TopoJSONに変換する

比較するポイントはシンプルです。

  • ファイルサイズ
  • 見た目の変化
  • 表示の体感

c3ff6024-aa91-4422-8679-4b14793e4085-1.png

使用するデータ

前回作成した、河川単位のGeoJSONを統合したファイルを使用します。

  • ファイル名:tokyo_flood_merged.geojson
  • サイズ:約85MB

このファイルを元データとして、別ファイルに加工していきます。

パターン①:GeoJSONのまま軽量化する

simplify の実行

今回は mapshaper の simplify を使用します。
座標の丸め(precision)は行わず、形状の簡略化のみを行います。

mapshaper data/output/tokyo_flood_merged.geojson \
  -simplify 10% \
  -o data/output/pattern1/tokyo_flood_simplified.geojson

ファイルサイズの変化

85MB → 20MB(約76%削減)

大きく軽量化できていることが分かります。

見た目の変化

c3ff6024-aa91-4422-8679-4b14793e4085-2.png

全体としての形状はほぼ維持されていますが、
細かい境界の表現は簡略化されています。

今回のデータはメッシュ(格子)由来のため、
元々の境界は階段状になっていますが、
simplifyによって頂点が削減され、より単純な形状になっています。

パターン②:TopoJSONに変換する

TopoJSONへの変換

同じGeoJSONから、TopoJSONに変換します。

mapshaper data/output/tokyo_flood_merged.geojson \
  -o format=topojson data/output/pattern2/tokyo_flood.topojson

ファイルサイズの変化

85MB → 27MB(約68%削減)

こちらも十分に軽量化されています。

見た目について

TopoJSONは構造を変えることでデータを圧縮する形式のため、
見た目自体はほとんど変化しません。

c3ff6024-aa91-4422-8679-4b14793e4085-3.png

軽量化の仕組みについては、以下の記事で整理しています。

結果の比較

今回の結果をまとめると、次のようになります。

データ形式 ファイル サイズ 削減率
元データ GeoJSON 85MB -
パターン① GeoJSON(simplify) 20MB 約76%削減
パターン② TopoJSON 27MB 約68%削減

どちらの方法でも軽量化の効果はありましたが、
今回の条件では simplify のほうがより小さなサイズになりました。

一方で、TopoJSONは構造による最適化であり、
データの内容や処理の組み合わせによって結果は変わります。

まとめ

今回は、同じGeoJSONに対して2つの軽量化手法を試してみました。

  • simplify:85MB → 20MB(約76%削減)
  • TopoJSON:85MB → 27MB(約68%削減)

どちらも十分な軽量化効果がありましたが、
今回の条件では simplify のほうがより小さなサイズになりました。

simplify は形状を削減する手法、
TopoJSONは構造を変換する手法であり、それぞれアプローチが異なります。

そのため、どちらが優れているというよりも、
データの性質や用途に応じて使い分けることになります。

今回の検証により、GeoJSONでも十分に軽量化できること、
またTopoJSONでも構造を変えることでサイズを抑えられることが確認できました。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?