menu
languagePortuguês (Brasil)
save_alt Baixar

Visualização em Mapa

Exiba resultados de consultas em um mapa interativo: pontos, bolhas, marcadores numerados, mapas de calor, clusters, trajetos e regiões preenchidas.

por rathboma Plugin da comunidade

Readme

Este texto foi escrito por terceiros e traduzido automaticamente. Leia o original em inglês

Exiba resultados de consultas em um mapa interativo, direto no Beekeeper Studio. Aponte para qualquer conjunto de resultados com coordenadas, geometria ou nomes de lugares e escolha como desenhá-lo: pontos, bolhas dimensionadas, marcadores numerados, clusters, mapas de calor, trajetos, linhas de fluxo ou regiões preenchidas.

Demonstração: resultados de consultas exibidos como bolhas, mapa de calor, clusters, estados dos EUA, linhas de viagens e trajetos de GPS

Acelerado 1.6×. Assista ao vídeo em velocidade normal.

Instalação

O Beekeeper Studio vem com os plugins da comunidade desativados. Ative-os no user.config.ini (~/.config/beekeeper-studio/ no Linux, ~/Library/Application Support/beekeeper-studio/ no macOS, %APPDATA%\beekeeper-studio\ no Windows) e reinicie o app:

[pluginSystem]
disabled = false
communityDisabled = false

Quando o plugin estiver listado no registro de plugins, instale o Map Visualization em Tools → Manage Plugins. Até lá, compile-o e crie um link na pasta de plugins conforme descrito em Desenvolvimento.

Abrindo um mapa

Onde O que acontece
Clique com o botão direito no canto superior esquerdo (ou no cabeçalho de uma coluna) de uma grade de resultados ou visualização de tabela → Plot on Map Mapeia as células selecionadas. Nenhuma consulta é executada novamente.
Clique com o botão direito no editor de consultas → Plot Query on Map Executa o texto selecionado (ou a consulta sob o cursor) e a mapeia.
Clique com o botão direito em uma tabela na barra lateral → View on Map Executa SELECT * … LIMIT 10000 na tabela.
Menu de nova aba ou Tools → New Map Abre uma aba de mapa com sua própria caixa de consulta (Ctrl/Cmd+Enter executa).

Os resultados da consulta também aparecem na tabela de resultados inferior da aba, então as linhas brutas estão sempre a um clique de distância.

De onde vêm as localizações

As colunas são detectadas automaticamente. A detecção pode ser substituída no painel Location.

Dados Exemplos
Colunas de latitude / longitude lat/lng, latitude/longitude, pickup_lat/pickup_lon, storeLat/storeLng; graus decimais ou DMS (40°42'46"N)
Metros Web Mercator x/y em EPSG:3857, convertidos automaticamente
Colunas de geometria PostGIS EWKB hex, WKB, WKT / EWKT, GeoJSON (texto ou objetos), binário MySQL / GeoPackage, objetos {lat, lng} ou {x, y}, pontos GeoJSON do Mongo
Coordenadas em texto "40.7128, -74.0060", (40.7, -74.0), S33.92 E18.42
Geohashes dr5regw3p
Países nomes, apelidos (UK, South Korea, Côte d'Ivoire), códigos ISO alfa-2/3 ou numéricos
Estados dos EUA nomes, siglas postais, códigos FIPS
Cidades Paris, Paris, TX, London, Ontario, opcionalmente refinadas por colunas de país / estado; ~34 mil cidades, offline
CEPs dos EUA (ZIP) 02134, 02134-1234 ou números que perderam o zero à esquerda

Entradas ambíguas são tratadas com cautela: colunas de lat/lng trocadas são invertidas (com um aviso), nomes de cidades ambíguos resolvem para a correspondência mais populosa, ZIP codes sem centroide exato (caixas postais) recorrem à área de ZIP de 3 dígitos, e tudo o que não pode ser posicionado é contado. Clique em “N sem localização” na barra de status para ver essas linhas na tabela. Geometrias projetadas em outros SRIDs são informadas com uma dica para usar ST_Transform(geom, 4326).

Formas de desenhar

Camada Use para Opções
Pontos Pontos, bolhas, marcadores numerados Tamanho por coluna (linear, raiz quadrada (fiel à área) ou log), limite de outliers no percentil 99, cor por categoria ou número (classes linear, log ou quantil; sequencial ou divergente), rótulos (número da linha ou uma coluna), opacidade
Clusters Milhares de pontos sobrepostos Contagem por cluster, aproxime para separar
Mapa de calor Densidade, opcionalmente ponderada por uma coluna Raio, desfoque, escala de peso. A intensidade é normalizada por zoom para que os pontos quentes fiquem visíveis em qualquer escala
Trajeto Trilhas de GPS, rotas, visitas ordenadas Um trajeto por coluna de agrupamento, ordenado por qualquer coluna (horários, números de sequência) ou pela ordem das linhas; marcadores de início / fim
Linhas Fluxos origem → destino (viagens, remessas) Colunas de destino, curvas ou retas, largura e cor por coluna
Regiões preenchidas Mapas coropléticos de países ou estados dos EUA Contagem de linhas ou soma / média / mín / máx de uma coluna; escala de cores linear, log ou por quantil

Bolhas dimensionadas por população e coloridas por continente

Passe o mouse sobre uma marca para ver um resumo e clique nela para ver a linha completa, com Show in table e Copy as JSON. Clique nas categorias da legenda para ocultá-las, ou use Alt+clique para mostrar só aquela categoria. O botão de tabela na barra de ferramentas do mapa envia todas as linhas da visualização atual para a tabela de resultados abaixo.

Pedidos nos EUA agregados por estado

Viagens de táxi desenhadas como linhas origem → destino

Mapas base e exportação

O plugin inclui um mapa offline: um mapa-múndi de 20 MB feito com dados do OpenStreetMap, para que os mapas sejam desenhados sem conexão com a internet nem servidores de tiles de terceiros. Ele tem países, regiões, cidades e estradas principais, o que cobre mapas de países até regiões metropolitanas; ao aproximar até o nível das ruas, faltam detalhes, e a barra de status oferece um mapa base online no lugar.

A lista de mapas base é dividida em mapas Built in, que funcionam offline, e mapas Online, que baixam tiles de um servidor. O mapa selecionado é identificado como Offline ou Online, com o servidor que utiliza.

  • Built in: Match app theme (padrão) usa o mapa offline em claro ou escuro; Country outlines é o mapa mais simples.
  • Online: ruas, topografia e imagens de satélite da Esri, OpenStreetMap, OpenTopoMap ou qualquer URL de tiles personalizada {z}/{x}/{y}.
  • Exporte como PNG (mapa e legenda), copie a imagem para a área de transferência ou salve as linhas plotadas como GeoJSON.

Mapas offline mais detalhados

Detailed area → Load file… em Settings → Basemap adiciona um arquivo .pmtiles de mapa base Protomaps sobre o mapa-múndi, como um recorte em nível de rua de uma cidade ou país feito com a CLI pmtiles. Fora da área do arquivo, o mapa-múndi aparece normalmente.

# 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

Use uma data de build recente. Arquivos em outros esquemas de tiles (OpenMapTiles, raster) são rejeitados.

As configurações, a consulta e a área visível são salvas com a aba. Uma aba restaurada só executa a consulta novamente de forma automática se ela já tiver sido executada e for um único SELECT somente leitura.

Problemas conhecidos

Três bugs do Beekeeper Studio afetam este plugin na versão 6.1.5 e anteriores; as correções estão pendentes upstream:

  • Na Community Edition, abas de plugin com painel de resultados (como esta) são renderizadas com apenas cerca de 150px de altura.
  • Plot Query on Map no menu de contexto do editor de consultas não faz nada (o host não repassa o texto da consulta).
  • Copy image falha com um erro; Save as PNG… funciona.

Os outros pontos de entrada funcionam enquanto isso.

Desenvolvimento

Requisitos: 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 cria um symlink desta pasta no diretório de plugins (~/.config/beekeeper-studio/plugins/bk-plugin-map-visualization no Linux). O nome do link deve corresponder ao id em manifest.json.

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/

As tabelas de consulta em src/data/ são geradas a partir de datasets públicos:

# 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

O mapa-múndi offline em basemaps/ é um build do Protomaps cortado no zoom 6, sem as camadas de uso do solo, cobertura do solo e POIs (cerca de metade do tamanho, e um mapa de dados não as desenha):

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

--maxzoom=5 gera um mapa de 5 MB com menos cidades e estradas, caso o download do plugin precise ser menor.

Publicação

Execute bin/make-release.sh. Ele sugere a próxima versão com base nas tags existentes, define version em manifest.json e package.json, faz o commit e envia uma tag correspondente, como v1.0.0. O workflow de release testa, compila e cria um rascunho de release no GitHub com o manifest.json e o zip do plugin.

Fontes de dados e licenças

  • Dados de cidades © GeoNames, CC BY 4.0.
  • Formas de países e estados do Natural Earth via world-atlas, e do US Census via us-atlas (domínio público).
  • Centroides de ZIP codes do gazetteer ZCTA do US Census Bureau (domínio público).
  • O mapa offline é © colaboradores do OpenStreetMap (ODbL) e Natural Earth, a partir de um build de mapa base do Protomaps, desenhado com protomaps-leaflet (BSD-3-Clause).
  • Os tiles de mapa são fornecidos pelos respectivos serviços (Esri, OpenStreetMap, OpenTopoMap) sob seus próprios termos; a atribuição é exibida no mapa.
  • Feito com Leaflet, Leaflet.markercluster e Leaflet.heat.

Este plugin é licenciado sob a GPL-3.0. Veja LICENSE.