menu
languageΕλληνικά
save_alt Λήψη

Map Visualization

Απεικόνισε αποτελέσματα query σε διαδραστικό χάρτη: σημεία, φυσαλίδες, αριθμημένοι δείκτες, heatmaps, συστάδες, διαδρομές και χρωματισμένες περιοχές.

από rathboma Plugin κοινότητας

Readme

Αυτό το κείμενο γράφτηκε από τρίτους και μεταφράστηκε αυτόματα. Διάβασε το πρωτότυπο στα αγγλικά

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

Demo: απεικόνιση αποτελεσμάτων query ως φυσαλίδες, heatmap, συστάδες, πολιτείες ΗΠΑ, γραμμές διαδρομών και ίχνη GPS

Επιταχυμένο 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.