SQL クエリから GIS データを可視化するには?

クエリのジオメトリをグリッド横の地図で見られ、テキストを別プログラムへコピーする必要はありません。範囲を描いて、ポリゴンを SQL に戻せます。

結果の POLYGON や POINT は、ほとんどテキストで出ます。WKT、EWKT、GeoJSON はセルに収まるので、普通はコピーして QGIS に貼るか、ブラウザーのビューアーを開きます。

クエリは SQL クライアントに残り、地図は別のプログラムにあります。描いた範囲はエディターに戻りません。

Kerry Studio は、そのジオメトリをグリッドの横に描きます。地図 ボタンで OpenStreetMap 上に分割が開きます。WKT、EWKT、GeoJSON のテキスト列があれば足ります。ネイティブ列(geometry、SDO_GEOMETRY、POINT など)は、エンジンの空間サポートが要ります。

範囲を見てポリゴンを描き、その SQL をエディターへ戻せます。別のプログラムへ移る必要はありません。

地図の開き方

開いた workspace、接続済みの SQL タブ、ジオメトリのある結果が必要です。空間列がなく、セルにもジオメトリがなければ、地図 ボタンは出ません。

  1. 空間列、WKT、EWKT、GeoJSON を返す SELECT を実行します。
  2. 結果パネルで 地図 をクリックします。
  3. グリッドと地図が並びます。分割をドラッグすると、地図側を広げられます。拡大アイコンは地図を重ねウィンドウで開きます。地図を閉じる はスペース全部をグリッドに戻します。

パレット(⌘K / CtrlK)→ 結果マップの表示を切り替え も同じです。分割は勝手に開きません。開いたままにすると、タブが覚えます。

ジオメトリのセルでは、地図で表示 がその値だけを地図にします。JSON ボタンと同じです。

地図に表示されるもの

結果のジオメトリ列ごとに色が付きます。点と面は別のパレットです。凡例は列名、SELECT にエイリアスがあればそれを使います。SELECT が i.location AS home と z.geom AS flood なら、凡例は home と flood です。JOIN は SQL のままです。地図は、すでに結果に来たものだけを塗ります。

ピンをクリックすると、その列名をタイトルにしたカードが開き、行のほかの値が並びます。ジオメトリはカードに入りません。

全体を表示 は、結果のすべてのジオメトリを枠に入れます。地図を初めて開くとき、この枠はすでに掛かっています。経度と緯度を入れ替え は描画だけを変えます。グリッドの値は、データベースが返したもののままです。

描いてポリゴンを SQL に戻す

ラッソ、長方形、楕円 は地図上に描きます。既定のツールは 選択 です。ポリゴンを SQL に貼る は、エディターのカーソルへ、選んだポリゴンを入れます。何も選んでいなければ、描画のすべてです。1 つなら POLYGON になります。複数なら、タブの方言の空間和になります。

PostgreSQL と MySQL では Kerry は ST_GeomFromText を貼ります。Oracle では SDO_GEOMETRY、SQLite では GeomFromText です。この SQL はエンジンの空間関数を要します。ST_Intersects は、タブのエンジンの SQL のままです。

測量 は各ポリゴンの大きさを、選んだ単位で出します。m²、ha、km² です。結合 は選択をグループにし、和を塗ります。クエリのジオメトリと描画を結合できます。

地図をエクスポート メニューは PNG、SVG、WebP、GeoJSON を保存します。印刷 は同じスイッチを使います。

データベースごとに必要なもの

Kerry は空間拡張を代わりに入れません。セルにすでに返ってきた WKT、EWKT、GeoJSON は、拡張がなくても描きます。

PostgreSQL。 PostGIS 拡張が要ります。なくても、テーブル作成とテーブル変更には GEOMETRY と GEOGRAPHY が出て、Kerry はその型が PostGIS を要すると知らせます。PostgreSQL 本体では、CREATE EXTENSION postgis がデータベースに PostGIS を入れます。

MySQL と MariaDB。 空間型はネイティブです(GEOMETRY、POINT、POLYGON など)。追加の拡張はありません。

Oracle。 Locator または Spatial が要ります。データベースに SDO_GEOMETRY 型がなければ、Kerry はテーブル作成とテーブル変更で知らせます。

SQLite。 SpatiaLite が要ります。SQLite 接続の 拡張 で拡張ファイルを足し、接続時に読み込む をオンにします。

タブの 4 エンジン、PostgreSQL、MySQL/MariaDB、Oracle、SQLite で動きます。別プロジェクトの @プロジェクト.テーブル を含むクエリは、行をタブの接続へ実体化します。その先に GIS があれば、一時テーブルはネイティブの空間型です。なければ、ジオメトリは EWKT テキストになります。

各コントロールの説明は 結果の地図 にあります。