Απεικόνισε αποτελέσματα query σε διαδραστικό χάρτη, μέσα από το Beekeeper Studio. Διάλεξε οποιοδήποτε σύνολο αποτελεσμάτων με συντεταγμένες, γεωμετρία ή ονόματα τοποθεσιών και επίλεξε πώς θα σχεδιαστεί: κουκκίδες, φυσαλίδες με μέγεθος, αριθμημένοι δείκτες, συστάδες, heatmaps, διαδρομές, γραμμές ροής ή χρωματισμένες περιοχές.

Επιταχυμένο 1.6×. Δες το βίντεο σε κανονική ταχύτητα.
Εγκατάσταση
Το Beekeeper Studio έρχεται με τα plugins κοινότητας απενεργοποιημένα. Ενεργοποίησέ τα στο user.config.ini (~/.config/beekeeper-studio/ σε Linux, ~/Library/Application Support/beekeeper-studio/ σε macOS, %APPDATA%\beekeeper-studio\ σε Windows) και μετά κάνε επανεκκίνηση της εφαρμογής:
[pluginSystem]
disabled = false
communityDisabled = false
Μόλις το plugin εμφανιστεί στο μητρώο plugins, εγκατάστησε το Map Visualization από το Tools → Manage Plugins. Μέχρι τότε, κάνε build και σύνδεσέ το στον φάκελο plugins όπως περιγράφεται στην ενότητα Ανάπτυξη.
Άνοιγμα χάρτη
| Πού | Τι συμβαίνει |
|---|---|
| Δεξί κλικ στην πάνω αριστερή γωνία (ή σε κεφαλίδα στήλης) ενός πλέγματος αποτελεσμάτων ή προβολής πίνακα → Plot on Map | Απεικονίζει τα επιλεγμένα κελιά. Το query δεν εκτελείται ξανά. |
| Δεξί κλικ στον query editor → Plot Query on Map | Εκτελεί το επιλεγμένο κείμενο (ή το query κάτω από τον κέρσορα) και το απεικονίζει. |
| Δεξί κλικ σε πίνακα στην πλαϊνή μπάρα → View on Map | Εκτελεί SELECT * … LIMIT 10000 στον πίνακα. |
| Μενού νέας καρτέλας ή Tools → New Map | Ανοίγει καρτέλα χάρτη με δικό της πεδίο query (το Ctrl/Cmd+Enter το εκτελεί). |
Τα αποτελέσματα του query εμφανίζονται και στον πίνακα αποτελεσμάτων στο κάτω μέρος της καρτέλας, οπότε οι ακατέργαστες γραμμές είναι πάντα ένα κλικ μακριά.
Από πού προέρχονται οι τοποθεσίες
Οι στήλες εντοπίζονται αυτόματα. Μπορείς να παρακάμψεις τον εντοπισμό από το πάνελ Location.
| Δεδομένα | Παραδείγματα |
|---|---|
| Στήλες γεωγραφικού πλάτους / μήκους | lat/lng, latitude/longitude, pickup_lat/pickup_lon, storeLat/storeLng· δεκαδικές μοίρες ή DMS (40°42'46"N) |
| Μέτρα Web Mercator | x/y σε EPSG:3857, με αυτόματη μετατροπή |
| Στήλες γεωμετρίας | PostGIS EWKB hex, WKB, WKT / EWKT, GeoJSON (κείμενο ή αντικείμενα), δυαδικά MySQL / GeoPackage, αντικείμενα {lat, lng} ή {x, y}, σημεία Mongo GeoJSON |
| Συντεταγμένες σε κείμενο | "40.7128, -74.0060", (40.7, -74.0), S33.92 E18.42 |
| Geohashes | dr5regw3p |
| Χώρες | ονόματα, εναλλακτικά ονόματα (UK, South Korea, Côte d'Ivoire), κωδικοί ISO alpha-2/3 ή αριθμητικοί |
| Πολιτείες ΗΠΑ | ονόματα, ταχυδρομικοί κωδικοί, κωδικοί FIPS |
| Πόλεις | Paris, Paris, TX, London, Ontario, προαιρετικά με περιορισμό από στήλες χώρας / πολιτείας· ~34k πόλεις, offline |
| Ταχυδρομικοί κωδικοί ZIP ΗΠΑ | 02134, 02134-1234, ή αριθμοί που έχασαν το αρχικό μηδέν |
Οι ασαφείς τιμές αντιμετωπίζονται συντηρητικά: οι αντεστραμμένες στήλες lat/lng διορθώνονται (με προειδοποίηση), τα αμφίσημα ονόματα πόλεων αντιστοιχίζονται στην πολυπληθέστερη, οι κωδικοί ZIP χωρίς ακριβές κεντροειδές (ταχυδρομικές θυρίδες) καταλήγουν στην περιοχή ZIP 3 ψηφίων τους και ό,τι δεν μπορεί να τοποθετηθεί καταμετράται. Κάνε κλικ στο «N χωρίς τοποθεσία» στη γραμμή κατάστασης για να δεις αυτές τις γραμμές στον πίνακα. Για προβαλλόμενες γεωμετρίες σε άλλα SRID εμφανίζεται υπόδειξη για ST_Transform(geom, 4326).
Τρόποι σχεδίασης
| Επίπεδο | Χρήση | Επιλογές |
|---|---|---|
| Σημεία | Κουκκίδες, φυσαλίδες, αριθμημένοι δείκτες | Μέγεθος βάσει στήλης (γραμμικό, τετραγωνική ρίζα (πιστό στο εμβαδόν) ή λογαριθμικό), περιορισμός ακραίων τιμών στο 99ο εκατοστημόριο, χρώμα ανά κατηγορία ή αριθμό (γραμμικές, λογαριθμικές ή ποσοστημοριακές κλάσεις· διαδοχικές ή αποκλίνουσες), ετικέτες (αριθμός γραμμής ή στήλη), αδιαφάνεια |
| Συστάδες | Χιλιάδες επικαλυπτόμενα σημεία | Πλήθος ανά συστάδα, κάνε zoom για διαχωρισμό |
| Heatmap | Πυκνότητα, προαιρετικά σταθμισμένη από στήλη | Ακτίνα, θόλωση, κλίμακα βάρους. Η ένταση κανονικοποιείται ανά επίπεδο zoom ώστε τα hot spots να φαίνονται σε κάθε κλίμακα |
| Διαδρομή | Ίχνη GPS, δρομολόγια, διαδοχικές επισκέψεις | Μία διαδρομή ανά στήλη ομαδοποίησης, ταξινομημένη βάσει οποιασδήποτε στήλης (χρόνοι, αριθμοί σειράς) ή της σειράς γραμμών· δείκτες αρχής / τέλους |
| Γραμμές | Ροές αφετηρίας → προορισμού (διαδρομές, αποστολές) | Στήλες προορισμού, καμπύλες ή ευθείες, πάχος και χρώμα βάσει στήλης |
| Χρωματισμένες περιοχές | Χωροπληθικοί χάρτες χωρών ή πολιτειών ΗΠΑ | Καταμέτρηση γραμμών ή άθροισμα / μέσος όρος / ελάχιστο / μέγιστο στήλης· γραμμική, λογαριθμική ή ποσοστημοριακή χρωματική κλίμακα |

Πέρνα τον δείκτη πάνω από ένα σημάδι για σύνοψη και κάνε κλικ για ολόκληρη τη γραμμή, με Show in table και Copy as JSON. Με κλικ στις κατηγορίες του υπομνήματος τις κρύβεις, ενώ με Alt-κλικ εμφανίζεις μόνο αυτή την κατηγορία. Το κουμπί πίνακα στη γραμμή εργαλείων του χάρτη στέλνει κάθε γραμμή της τρέχουσας προβολής στον πίνακα αποτελεσμάτων από κάτω.


Χάρτες βάσης και εξαγωγή
Το plugin περιλαμβάνει offline χάρτη: έναν παγκόσμιο χάρτη 20 MB φτιαγμένο από δεδομένα OpenStreetMap, ώστε οι χάρτες να σχεδιάζονται χωρίς σύνδεση στο internet ή tile server τρίτων. Περιέχει χώρες, περιφέρειες, πόλεις και κύριους δρόμους, αρκετά για χάρτες από επίπεδο χώρας έως μητροπολιτικής περιοχής· σε επίπεδο δρόμου η λεπτομέρεια δεν επαρκεί και η γραμμή κατάστασης προτείνει online χάρτη βάσης.
Η λίστα χαρτών βάσης χωρίζεται σε Built in χάρτες, που λειτουργούν offline, και Online χάρτες, που κατεβάζουν tiles από tile server. Ο επιλεγμένος χάρτης φέρει την ένδειξη Offline ή Online, μαζί με τον server που χρησιμοποιεί.
- Built in: το Match app theme (προεπιλογή) χρησιμοποιεί τον offline χάρτη σε ανοιχτό ή σκούρο θέμα· το Country outlines είναι ο απλούστερος χάρτης.
- Online: δρόμοι, τοπογραφικοί και δορυφορικοί χάρτες Esri, OpenStreetMap, OpenTopoMap ή οποιοδήποτε προσαρμοσμένο tile URL
{z}/{x}/{y}. - Εξαγωγή ως PNG (χάρτης και υπόμνημα), αντιγραφή της εικόνας στο πρόχειρο ή αποθήκευση των απεικονισμένων γραμμών ως GeoJSON.
Πιο λεπτομερείς offline χάρτες
Το Detailed area → Load file… στο Settings → Basemap προσθέτει ένα αρχείο .pmtiles Protomaps basemap πάνω από τον παγκόσμιο χάρτη, όπως ένα απόσπασμα σε επίπεδο δρόμου για μία πόλη ή χώρα φτιαγμένο με το 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
Χρησιμοποίησε πρόσφατη ημερομηνία build. Αρχεία σε άλλα tile schemas (OpenMapTiles, raster) απορρίπτονται.
Οι ρυθμίσεις, το query και η προβολή αποθηκεύονται μαζί με την καρτέλα. Μια καρτέλα που επαναφέρεται εκτελεί ξανά αυτόματα το query της μόνο αν είχε εκτελεστεί πριν και είναι ένα μεμονωμένο read-only SELECT.
Γνωστά προβλήματα
Τρία bugs του Beekeeper Studio επηρεάζουν αυτό το plugin στην 6.1.5 και παλαιότερες· οι διορθώσεις εκκρεμούν upstream:
- Στην έκδοση Community, οι καρτέλες plugin με πάνελ αποτελεσμάτων (όπως αυτή) εμφανίζονται με ύψος μόνο περίπου 150px.
- Το Plot Query on Map στο μενού του query editor δεν κάνει τίποτα (η εφαρμογή δεν περνά το κείμενο του query).
- Το 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 δημιουργεί symlink αυτού του φακέλου στον κατάλογο plugins (~/.config/beekeeper-studio/plugins/bk-plugin-map-visualization σε Linux). Το όνομα του link πρέπει να ταιριάζει με το id στο 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/
Οι πίνακες αναζήτησης στο 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
Ο offline παγκόσμιος χάρτης στο basemaps/ είναι ένα build Protomaps περιορισμένο στο zoom 6, χωρίς τα επίπεδα χρήσεων γης, κάλυψης γης και 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 με λιγότερες πόλεις και δρόμους, αν η λήψη του plugin πρέπει να είναι μικρότερη.
Έκδοση
Εκτέλεσε το bin/make-release.sh. Προτείνει την επόμενη έκδοση βάσει των υπαρχόντων tags, ορίζει το version στα manifest.json και package.json, κάνει commit και push ένα αντίστοιχο tag όπως v1.0.0. Το release workflow εκτελεί τα tests, κάνει build και δημιουργεί ένα draft GitHub release με το manifest.json και το zip του plugin.
Πηγές δεδομένων και άδειες
- Δεδομένα πόλεων © GeoNames, CC BY 4.0.
- Σχήματα χωρών και πολιτειών από το Natural Earth μέσω
world-atlas, και από το US Census μέσωus-atlas(δημόσιος τομέας). - Κεντροειδή ταχυδρομικών κωδικών ZIP από το ZCTA gazetteer του US Census Bureau (δημόσιος τομέας).
- Ο offline χάρτης είναι © συντελεστές του OpenStreetMap (ODbL) και Natural Earth, από build χάρτη βάσης Protomaps, σχεδιασμένος με protomaps-leaflet (BSD-3-Clause).
- Τα tiles χαρτών παρέχονται από τις αντίστοιχες υπηρεσίες (Esri, OpenStreetMap, OpenTopoMap) υπό τους δικούς τους όρους· η απόδοση εμφανίζεται στον χάρτη.
- Φτιαγμένο με Leaflet, Leaflet.markercluster και Leaflet.heat.
Αυτό το plugin διατίθεται με άδεια GPL-3.0. Δες το LICENSE.