SQLiteとは何か、なぜ地図で見るのか
SQLiteは、独立したサーバープログラムとして動作するのではなく、データベース全体をディスク上の1つの単純なファイルに保存する、小型で高速なデータベースエンジンです。世界で最も広く使われているソフトウェアの1つで、スマートフォン、ブラウザ、アプリ、そして数え切れないほどのGISプログラムに組み込まれています。SpatiaLiteは、同じファイル形式に空間機能を追加する無料の拡張機能で、通常のSQLiteファイルにも、本格的なGISデータベースと同じようにポイント、ライン、ポリゴンを保存できるようにします。このビューアーは、どちらの種類のファイルもブラウザ上で直接開き、その中の位置データを実際の地図上に表示します。データベースソフトや本格的なデスクトップGISのインストールは必要ありません。
データの色を変更する
サイドバーの3つのコントロールを使えば、元のファイルに手を加えることなく、テーブル全体のスタイルをその場で変更できます:
- 色: スウォッチまたはカラーピッカーから好きな色を選べます。ライン、ポリゴンの塗りつぶしと輪郭線、ポイントマーカーにすぐに反映されます。
- 線の太さ: 輪郭線やラインを、細線からポスター向けの力強い太い線まで、細くしたり太くしたりできます。
- 塗りつぶしの不透明度: ポリゴンの塗りつぶしを、薄く透けた状態から完全に不透明な色まで、どれだけ濃くするかを調整できます。
変更はすべて、地図上に表示されているテーブルにその場で反映されるため、決める前にいくつかの見た目を数秒で試せます。
SQLite / SpatiaLiteファイルの構造
SQLiteファイルは、他のリレーショナルデータベースと同じ行と列のレイアウトで、一連のテーブルとして構成されています。.sqliteファイルや.dbファイルを開くということは、単にそれらのテーブルを読み込むことを意味します。SpatiaLite対応のファイルは、同じ構造の上に、標準化された少数の追加テーブルを持ちます。これにより、このツールをはじめとするSpatiaLite対応のソフトウェアは、当て推量ではなく自動的に地図データを見つけ出せます。
通常のテーブル
調査アプリ、モバイルアプリ、スクリプトから書き出された.sqliteファイルや.dbファイルを含む、ほとんどの単純なSQLiteファイルは、型付けされた列を持つ通常のテーブルとしてデータを保存しています。テーブルに緯度・経度らしき列がある場合(列名、または値の範囲から判断されます)、このツールは自動的にそれらを検出し、各行をポイントとしてプロットします。
SpatiaLiteのメタデータテーブル
SpatiaLite対応のファイルには、geometry_columnsのようなテーブルが追加されます。これは、ジオメトリを保持するすべてのテーブルを、そのジオメトリ列の名前や座標系とともに一覧にしたものです。また、spatial_ref_sysには、参照される各座標系の定義が、すぐに使えるproj4文字列を含めて保存されています。これらのテーブルを組み合わせることで、ビューアーはファイル内のすべての空間レイヤーを、テーブルを1つずつ手作業で調べることなく見つけ出せます。
ジオメトリの保存形式:SpatiaLiteのBLOB
SpatiaLiteファイルの内部では、ポイント、ライン、ポリゴンといった各ジオメトリが、1つの列にバイナリ値(BLOB)として保存されています。この形式は、座標系と高速なフィルタリングのための境界ボックスを含む短いヘッダーから始まり、続いてジオメトリの種類と座標が記録され、最後に固定のマーカーバイトで終わります。これは、形状をテキストではなく生のバイト列としてコンパクトに保存する方法です。このツールはそのバイナリ形式をブラウザ上で直接読み取り、地図上に表示される形状へと変換します。
複数のテーブルを扱う
1つのSQLiteまたはSpatiaLiteファイルには、地図化する価値のあるテーブルが複数含まれていることがよくあります。例えば、調査ポイントのレイヤーと、敷地境界のレイヤーが一緒に入っている場合などです。サイドバーの「Tables」リストには、ファイル内で見つかったすべてのテーブルが表示され、SpatiaLiteのジオメトリレイヤー、緯度・経度の列が検出されたテーブル、位置データのないテーブルのいずれかに分類されます。タグ付けされたテーブルをクリックすると、それまで表示されていたテーブルの代わりに地図上へ読み込まれます。
テーブルに緯度・経度とわかる名前の列がない場合は、小さなパネルで正しい2つの列を手動で選択できます。これはこのサイトのCSV to Mapツールと同じ仕組みで、"y_coord"や"pos_lng"のような珍しい列名を使っているテーブルも見逃されません。
座標系と再投影
SpatiaLiteのジオメトリは、単純な緯度・経度だけでなく、どんな座標系でも保存できます。このツールは各ジオメトリテーブルに記録された座標系を読み取り、それを認識できる場合(WGS84とWeb Mercatorがほとんどの実際のファイルをカバーしており、それ以外の座標系はspatial_ref_sysに保存されたproj4文字列を通じて可能な限り処理されます)、描画前にすべての形状を通常の緯度・経度に再投影します。そのため、元のファイルが座標をどのように保存していたかにかかわらず、地図は正しく表示されます。
表示内容をエクスポートする
"Download Table as GeoJSON"をクリックすると、現在読み込まれているテーブルを、ジオメトリをデコードして再投影した状態で、標準的なGeoJSONファイルとして保存できます。色などのスタイル変更は地図表示にのみ影響し、書き出されるファイルには反映されません。GeoJSONは、QGIS、ArcGIS、Leaflet、Mapbox GL JS、そしてほぼすべての最新のマッピングツールで問題なく開けます。
SQLiteの簡単な歴史
SQLiteは、D. Richard Hippによって2000年に書かれました。当時、彼は米海軍向けのソフトウェアに取り組んでいました。そのプロジェクトには、独立したデータベースサーバーをインストールして実行する必要のないデータベースが必要でした。そこでHippは、単一のファイルへの読み書きを直接行う小さなライブラリとして、データベースエンジンを作り上げました。サーバープロセスなし、個別のインストールなし、設定なしというこの1つの設計上の選択こそが、今日SQLiteがあらゆる場所で使われている理由です。
パブリックドメインであり、どんな製品にも無料で組み込めることから、SQLiteはウェブブラウザ、モバイルOS、デスクトップアプリ、そして数え切れないほどの開発者向けツールに急速に広まりました。AndroidとiOSのすべてのスマートフォンにはSQLiteが組み込まれており、世界で最も広く導入されているデータベースエンジンと呼ばれることも多く、そのインストール数は数十億台のデバイスにのぼります。
SpatiaLiteはその後に登場しました。Alessandro Furieriによって作られ、2008年頃に初めてリリースされました。libspatialiteとして配布される読み込み可能な拡張機能として動作し、空間SQL関数、R-Treeによる空間インデックス、そして通常のSQLiteファイルにジオメトリをBLOBとして直接保存する標準的な方法を追加します。これは、PostGISがPostgreSQLに空間機能を追加するのとほぼ同じ考え方です。QGISは長年にわたりSpatiaLiteをネイティブ形式の1つとしてサポートしており、フィールドデータの収集や、本格的なデータベースサーバーを必要としないデスクトップGISプロジェクトにおいて、今も軽量で単一ファイルの選択肢として広く使われています。
地図にデータを表示する2つの方法
お好みの方法で、ツールにデータベースを開いてみましょう:
- アップロード、またはドラッグ&ドロップ: "Upload"をクリックして.sqlite、.sqlite3、または.dbファイルを選ぶか、ファイルをファイルブラウザから地図上に直接ドラッグ&ドロップしてください。
- サンプルデータを試す: "Sample Data"をクリックすると、SpatiaLite形式のランドマークテーブルと、通常の緯度・経度形式のセンサーテーブルを含む小さなデモ用データベースが作成・読み込まれます。すぐにクリック、色の変更、テーブルの切り替えを試せます。
ファイルが読み込まれると、ツールはサイドバーに使用可能なすべてのテーブルを一覧表示し、最も適したテーブル(SpatiaLiteのジオメトリテーブルがあればそれ、なければ緯度・経度の列を認識できる最初のテーブル)を自動的にプロットして、そのデータに合わせて地図をズームします。リスト内の別のテーブルをクリックすると、そちらに切り替えられます。
手順









動画で見る — 1分でわかるSQLite ビューアー
読むより見るほうが早いという方のために、短い動画を用意しました。SQLiteまたはSpatiaLiteファイルのアップロード、データの地図表示、そして結果のエクスポートまで、一通りの流れを紹介しています。
実際の活用事例
SQLiteとSpatiaLiteのビューアーは、地図データが収集・共有され、ツール間で受け渡される場面ならどこでも役立ちます。特によく使われている場面を紹介します:
よくある質問
クリックですべての属性を確認
地図上のポイント、ライン、ポリゴンをクリックすると、その行に保存されているすべての列の値、名前、カテゴリ、数値、日付など、生のジオメトリ自体を除くテーブルの内容がポップアップに一覧表示されます。クリックしたフィーチャには明るいハイライトの輪郭線も表示されるため、密集していたり重なり合っていたりするテーブルでも、ポップアップがどの形状のものかが常にひと目でわかります。
その他のおすすめツール
Map tiles © OpenStreetMap contributors and Protomaps (hosted by KONAKTIVE), CARTO, Esri (satellite). Database reading powered by sql.js. Map rendering by Leaflet. All file reading and rendering is local, no data is uploaded to any server.
