menu
language日本語
save_alt ダウンロード

Map Visualization

クエリ結果をインタラクティブな地図上にプロットします。ポイント、バブル、番号付きマーカー、ヒートマップ、クラスター、パス、塗りつぶし領域に対応しています。

作成者: rathboma コミュニティプラグイン

Readme

このテキストは第三者が書いたもので、自動翻訳されています。 英語の原文を読む

Beekeeper Studio の中で、クエリ結果をインタラクティブな地図上にプロットできます。座標、ジオメトリ、地名を含む任意の結果セットを指定し、描画方法を選ぶだけです。ドット、サイズ付きバブル、番号付きマーカー、クラスター、ヒートマップ、パス、フローライン、塗りつぶし領域から選べます。

デモ: クエリ結果をバブル、ヒートマップ、クラスター、米国の州、移動ライン、GPS パスとしてプロット

1.6倍速で再生しています。等速の動画を見る。

インストール

Beekeeper Studio では、コミュニティプラグインは初期状態で無効になっています。user.config.ini(Linux では ~/.config/beekeeper-studio/、macOS では ~/Library/Application Support/beekeeper-studio/、Windows では %APPDATA%\beekeeper-studio\)で有効にしてから、アプリを再起動してください:

[pluginSystem]
disabled = false
communityDisabled = false

プラグインがプラグインレジストリに掲載されたら、Tools → Manage Plugins から Map Visualization をインストールしてください。それまでは、開発の説明に従ってビルドし、プラグインフォルダにリンクしてください。

地図を開く

場所 動作
結果グリッドまたはテーブルビューの左上隅(または列ヘッダー)を右クリック → Plot on Map 選択したセルを地図に表示します。クエリは再実行されません。
クエリエディタで右クリック → Plot Query on Map 選択したテキスト(またはカーソル位置のクエリ)を実行し、地図に表示します。
サイドバーのテーブルを右クリック → View on Map テーブルに対して SELECT * … LIMIT 10000 を実行します。
新規タブのドロップダウン、または Tools → New Map 専用のクエリボックス付きの地図タブを開きます(Ctrl/Cmd+Enter で実行)。

クエリ結果はタブ下部の結果テーブルにも表示されるため、元の行データにいつでもワンクリックでアクセスできます。

位置情報の取得元

列は自動的に検出されます。検出結果は Location パネルで変更できます。

データ 例
緯度・経度の列 lat/lng、latitude/longitude、pickup_lat/pickup_lon、storeLat/storeLng。10進数の度数または DMS(40°42'46"N)
Web メルカトルのメートル値 EPSG:3857 の x/y。自動的に変換されます
ジオメトリ列 PostGIS EWKB の16進数、WKB、WKT / EWKT、GeoJSON(テキストまたはオブジェクト)、MySQL / GeoPackage バイナリ、{lat, lng} または {x, y} オブジェクト、Mongo の GeoJSON ポイント
テキスト形式の座標 "40.7128, -74.0060", (40.7, -74.0), S33.92 E18.42
ジオハッシュ dr5regw3p
国 国名、別名(UK、South Korea、Côte d'Ivoire)、ISO alpha-2/3 または数値コード
米国の州 州名、郵便略号、FIPS コード
都市 Paris、Paris, TX、London, Ontario。国・州の列で絞り込むことも可能。約34k都市、オフライン対応
米国の ZIP コード 02134、02134-1234、または先頭のゼロが欠落した数値

曖昧な入力は慎重に扱われます。緯度と経度の列が入れ替わっている場合は反転され(警告付き)、曖昧な都市名は最も人口の多い候補に解決されます。正確な中心点がない ZIP コード(私書箱)は3桁の ZIP エリアで代用され、配置できなかった行は件数としてカウントされます。ステータスバーの「位置情報なし N 件」をクリックすると、それらの行をテーブルで確認できます。他の SRID で投影されたジオメトリは、ST_Transform(geom, 4326) を使うヒントとともに報告されます。

描画方法

レイヤー 用途 オプション
ポイント ドット、バブル、番号付きマーカー 列に応じたサイズ(線形、平方根(面積比例)、対数)、外れ値を99パーセンタイルで上限処理、カテゴリまたは数値による色分け(線形、対数、分位数クラス。連続または発散)、ラベル(行番号または列)、不透明度
クラスター 重なり合う数千のポイント クラスターごとの件数表示、ズームインで分割
ヒートマップ 密度(列による重み付けも可能) 半径、ぼかし、重みスケール。強度はズームごとに正規化されるため、どの縮尺でもホットスポットが見やすく表示されます
パス GPS トラック、ルート、順序付きの訪問 グループ列ごとに1本のパス。任意の列(時刻、連番)または行順で並べ替え。開始・終了マーカー
ライン 出発地 → 目的地のフロー(移動、配送) 目的地の列、曲線または直線、列に応じた太さと色
塗りつぶし領域 国または米国の州のコロプレス図 行数のカウント、または列の合計・平均・最小・最大。線形、対数、分位数のカラースケール

人口でサイズ分けし、大陸で色分けしたバブル

マークにカーソルを合わせると概要が、クリックすると行全体が表示され、Show in table と Copy as JSON が使えます。凡例のカテゴリはクリックで非表示に、Alt+クリックでそのカテゴリのみ表示にできます。地図ツールバーのテーブルボタンを押すと、現在の表示範囲内のすべての行が下の結果テーブルに送られます。

州ごとに集計した米国の注文

出発地 → 目的地のラインで描いたタクシーの移動

ベースマップとエクスポート

このプラグインにはオフライン地図が付属しています。OpenStreetMap のデータから作成した20 MBの世界地図で、インターネット接続やサードパーティのタイルサーバーなしで地図を描画できます。国、地域、都市、主要道路を含み、国単位から都市圏単位までの地図をカバーします。街路レベルまでズームすると詳細が不足するため、ステータスバーからオンラインのベースマップに切り替えられます。

ベースマップの一覧は、オフラインで使える Built in の地図と、タイルサーバーからタイルをダウンロードする Online の地図に分かれています。選択中の地図には Offline または Online の表示と、使用するサーバーが示されます。

  • Built in: Match app theme(デフォルト)はオフライン地図をライトまたはダークで表示します。Country outlines は最もシンプルな地図です。
  • Online: Esri の道路地図、地形図、衛星画像、OpenStreetMap、OpenTopoMap、または任意のカスタム {z}/{x}/{y} タイル URL。
  • PNG(地図と凡例)としてエクスポート、画像をクリップボードにコピー、またはプロットした行を GeoJSON として保存できます。

より詳細なオフライン地図

Settings → Basemap の Detailed area → Load file… で、Protomaps ベースマップの .pmtiles ファイルを世界地図の上に重ねられます。たとえば pmtiles CLI で作成した、特定の都市や国の街路レベルの抽出データなどです。ファイルの範囲外では通常どおり世界地図が表示されます。

# street detail for New York City (about 100 MB)
pmtiles extract https://build.protomaps.com/20261014.pmtiles nyc.pmtiles --bbox=-74.26,40.48,-73.69,40.92 --maxzoom=15

最近のビルド日付のものを使用してください。他のタイルスキーマ(OpenMapTiles、ラスター)のファイルは読み込めません。

設定、クエリ、表示範囲はタブとともに保存されます。復元されたタブでクエリが自動的に再実行されるのは、以前に実行済みで、かつ単一の読み取り専用 SELECT の場合のみです。

既知の問題

6.1.5 以前の Beekeeper Studio には、このプラグインに影響する3つのバグがあります。修正はアップストリームで対応中です:

  • Community エディションでは、結果パネル付きのプラグインタブ(このプラグインなど)の高さが約150pxしか表示されません。
  • クエリエディタのコンテキストメニューの Plot Query on Map が動作しません(ホストがクエリテキストを渡さないため)。
  • Copy image はエラーで失敗します。Save as PNG… は動作します。

それまでの間は、他の起動方法をご利用いただけます。

開発

必要環境: Beekeeper Studio 5.5+、Node.js 20.19+、Yarn 1。

yarn install
yarn dev        # links the plugin into Beekeeper Studio's plugins folder and hot-reloads
yarn test       # unit tests (vitest)
yarn build      # type-check + production build into dist/

yarn dev はこのフォルダをプラグインディレクトリ(Linux では ~/.config/beekeeper-studio/plugins/bk-plugin-map-visualization)にシンボリックリンクします。リンク名は manifest.json の id と一致している必要があります。

src/
  App.vue                 data sources, state, popups, export
  components/             settings panel, legend, icons
  lib/geo/                WKB / WKT / geohash / DMS parsing, regions, offline geocoding
  lib/detect.ts           column auto-detection
  lib/build.ts            rows -> plottable items (CRS, axis order, geocoding)
  lib/model.ts            sizes, colors, aggregates, legends
  lib/renderer.ts         Leaflet layers
  lib/pack.ts             offline map packs: validation, PMTiles source
  lib/offlineMap.ts       bundled world map + detailed area (IndexedDB), shared by all map tabs
  data/                   generated lookup tables (see below)
basemaps/world.pmtiles    the offline world map, bundled into dist/

src/data/ のルックアップテーブルは公開データセットから生成されています:

# download cities15000.zip, countryInfo.txt and admin1CodesASCII.txt from https://download.geonames.org/export/dump/
# and 2023_Gaz_zcta_national.zip from the US Census gazetteer, unzip them into one folder, then:
yarn geodata /path/to/that/folder

basemaps/ のオフライン世界地図は、ズーム6までに切り詰めた Protomaps ビルドで、土地利用、土地被覆、POI のレイヤーを除外しています(サイズは約半分になり、データ地図ではこれらを描画しないため):

pmtiles extract https://build.protomaps.com/<YYYYMMDD>.pmtiles world-z6.pmtiles --maxzoom=6
yarn basemap world-z6.pmtiles basemaps/world.pmtiles

プラグインのダウンロードサイズを小さくしたい場合は、--maxzoom=5 にすると町や道路が少ない5 MBの地図になります。

リリース

bin/make-release.sh を実行します。既存のタグから次のバージョンを提案し、manifest.json と package.json の version を設定してコミットし、v1.0.0 のような対応するタグをプッシュします。リリースワークフローがテストとビルドを行い、manifest.json とプラグインの zip を含む GitHub リリースの下書きを作成します。

データソースとライセンス

  • 都市データ © GeoNames、CC BY 4.0。
  • 国と州の形状は world-atlas 経由の Natural Earth、および us-atlas 経由の US Census(パブリックドメイン)のものです。
  • ZIP コードの中心点は US Census Bureau の ZCTA gazetteer(パブリックドメイン)のものです。
  • オフライン地図は © OpenStreetMap contributors(ODbL)および Natural Earth のデータで、Protomaps のベースマップビルドを使用し、protomaps-leaflet(BSD-3-Clause)で描画しています。
  • 地図タイルは各サービス(Esri、OpenStreetMap、OpenTopoMap)がそれぞれの利用規約に基づいて提供しています。帰属表示は地図上に表示されます。
  • Leaflet、Leaflet.markercluster、Leaflet.heat を使用して構築されています。

このプラグインは GPL-3.0 でライセンスされています。LICENSE をご覧ください。