Wie visualisiere ich GIS-Daten aus einer SQL-Abfrage?
Sehen Sie die Geometrie der Abfrage auf einer Karte neben dem Raster, ohne den Text in ein anderes Programm zu kopieren. Sie können eine Fläche zeichnen und das Polygon zurück ins SQL holen.
Ein POLYGON oder ein POINT im Ergebnis erscheint fast immer als Text. WKT, EWKT und GeoJSON passen in die Zelle, also ist der übliche Weg kopieren, in QGIS einfügen oder einen Viewer im Browser öffnen.
Die Abfrage bleibt im SQL-Client und die Karte bleibt in einem anderen Programm. Die Fläche, die Sie gezeichnet haben, kommt nicht in den Editor zurück.
Kerry Studio zeichnet diese Geometrie neben dem Raster. Die Schaltfläche Karte öffnet die Teilung über OpenStreetMap. Eine Textspalte mit WKT, EWKT oder GeoJSON reicht schon. Eine native Spalte (geometry, SDO_GEOMETRY, POINT und die übrigen) braucht die räumliche Unterstützung des Motors.
Sie sehen die Fläche, zeichnen das Polygon und holen dieses SQL zurück in den Editor, ohne zu einem anderen Programm zu wechseln.
So öffnen Sie die Karte
Sie brauchen einen offenen Workspace, einen verbundenen SQL-Tab und ein Ergebnis mit Geometrie. Ohne räumliche Spalte und ohne Geometrie in den Zellen erscheint die Schaltfläche Karte nicht.
- Führen Sie ein
SELECTaus, das eine räumliche Spalte, WKT, EWKT oder GeoJSON zurückgibt. - Im Ergebnispanel klicken Sie auf Karte.
- Raster und Karte stehen nebeneinander. Ziehen Sie den Teiler, wenn Sie mehr Platz für die Karte wollen. Das Vergrößern-Symbol öffnet die Karte in einem Overlay-Fenster. Karte schließen gibt den ganzen Platz an das Raster zurück.
Die Palette (⌘K / CtrlK) → Ergebniskarte ein-/ausblenden tut dasselbe. Die Teilung öffnet sich nicht von allein. Wenn Sie sie offen lassen, merkt sich der Tab das.
In der Geometriezelle öffnet Auf der Karte anzeigen eine Karte nur für diesen Wert, wie die JSON-Schaltfläche.
Was die Karte zeigt
Jede Geometriespalte im Ergebnis bekommt eine Farbe. Punkt und Fläche nutzen unterschiedliche Paletten. Die Legende verwendet den Spaltennamen, oder den Alias, wenn das SELECT einen hat. Hat das SELECT i.lage AS wohnung und z.geom AS hochwasser, zeigt die Legende wohnung und hochwasser. Der JOIN bleibt im SQL. Die Karte malt nur, was schon im Ergebnis angekommen ist.
Ein Klick auf die Nadel öffnet eine Infokarte mit dem Namen dieser Spalte im Titel und den übrigen Werten der Zeile. Die Geometrie kommt nicht auf die Infokarte.
Ansicht anpassen rahmt alle Geometrien des Ergebnisses. Beim ersten Öffnen der Karte ist dieser Rahmen schon gesetzt. Lon/Lat tauschen ändert nur die Zeichnung. Der Wert im Raster bleibt, was die Datenbank geliefert hat.
Zeichnen und das Polygon zurück ins SQL holen
Lasso, Rechteck und Ellipse zeichnen auf der Karte. Auswählen ist das Standardwerkzeug. Polygon in SQL einfügen setzt an den Cursor im Editor das ausgewählte Polygon, oder alle Zeichnungen, wenn keines ausgewählt ist. Ein Polygon wird zu POLYGON. Mehrere werden zur räumlichen Vereinigung im Dialekt des Tabs.
Auf PostgreSQL und MySQL fügt Kerry ST_GeomFromText ein. Auf Oracle SDO_GEOMETRY. Auf SQLite GeomFromText. Dieses SQL braucht die räumlichen Funktionen des Motors. Der Operator ST_Intersects bleibt SQL des Motors am Tab.
Messungen zeigt die Größe jedes Polygons, in der gewählten Einheit: m², ha oder km². Zusammenführen gruppiert die Auswahl und malt die Vereinigung. Sie können eine Geometrie aus der Abfrage mit einer Zeichnung zusammenführen.
Das Menü Karte exportieren speichert PNG, SVG, WebP und GeoJSON. Drucken verwendet dieselben Schalter.
Was jede Datenbank braucht
Kerry installiert die räumliche Erweiterung nicht für Sie. Die Karte zeichnet weiterhin WKT, EWKT und GeoJSON, die schon in der Zelle ankamen, auch ohne Erweiterung.
PostgreSQL. Braucht die Erweiterung PostGIS. Ohne sie erscheinen GEOMETRY und GEOGRAPHY beim Tabellenerstellen und Tabellenändern, und Kerry warnt, dass der Typ PostGIS braucht. In PostgreSQL selbst installiert CREATE EXTENSION postgis PostGIS in der Datenbank.
MySQL und MariaDB. Die räumlichen Typen sind nativ (GEOMETRY, POINT, POLYGON und die übrigen). Es gibt keine Extra-Erweiterung.
Oracle. Braucht Locator oder Spatial. Ohne den Typ SDO_GEOMETRY in der Datenbank warnt Kerry beim Tabellenerstellen und Tabellenändern.
SQLite. Braucht SpatiaLite. An der SQLite-Verbindung fügen Sie unter Erweiterungen die Erweiterungsdatei hinzu und schalten Beim Verbinden laden ein.
Es funktioniert auf allen vier Motoren des Tabs: PostgreSQL, MySQL/MariaDB, Oracle und SQLite. Eine Abfrage mit @projekt.tabelle aus einem anderen Projekt materialisiert die Zeilen auf der Verbindung des Tabs. Hat dieses Ziel GIS, nutzt die temporäre Tabelle den nativen räumlichen Typ. Hat es keins, geht die Geometrie als EWKT-Text.
Die einzelnen Steuerelemente stehen unter Karte in den Ergebnissen.