Suche

Die GBD WebSuite implementiert eine einheitliche Suchfunktionalität, die mit verschiedenen Arten von Raum- und Sachdaten arbeitet. Grundsätzlich enthält eine Suchanfrage an den Server diese drei Parameter:

keyword ein Stichwort, nach dem gesucht werden soll
shape eine Geometrie. Falls vorhanden, ist die Suche räumlich auf diese Geometrie beschränkt.
layers eine Liste der Ebenen, auf denen die Suche durchgeführt werden soll. Das sind normalerweise die im Client sichtbare bzw selektierte Ebene

Die von anderen GIS-Systemen bekannte “Identifizieren” Funktion fällt in GWS auch unter dem Begriff Suche, in dem Fall, eine ohne Stichwort und mit einer Punkt-Geometrie.

Wenn der GBD WebSuite Server eine Suchanfrage erhält, verbindet er sich mit den konfigurierten Suchanbietern (provider) und verwendet automatisch die für jede Quelle gültige Methode. Beispielsweise werden für WMS-Quellen “GetFeatureInfo”-Anfragen gestellt, für Datenbankdaten wird eine “SELECT”-Abfrage durchgeführt und so weiter. Sobald der Server Ergebnisse aus verschiedenen Quellen erhält, werden sie konsolidiert, optional transformiert und formatiert (s. Features) und als Liste einheitlicher Features an den Client zurückgegeben.

Die Anbieter werden für das ganze Projekt oder für individuelle Layers konfiguriert. Die Layer-Anbieter werden nur dann aktiviert, wenn der layers Liste den entsprechende Layer-ID enthält.

Mit der Aktion search schalten Sie die Suchfunktionalität frei. Mit dem Parameter limit können Sie steuern, wie viele Suchergebnisse der Server zurückgibt (unter allen Anbietern).

Note

In der Zukunft können Sie auch ein limit pro Anbieter steuern.

Allgemeine Optionen

Für jeden Suchanbieter können Sie folgende allgemeine Optionen konfigurieren:

dataModel Transformation-Regel für Features (s. Features)
defaultContext räumliche Einschränkung der Suche, falls keine Geometrie vorhanden ist: die ganze Karte (map) oder die aktuelle Ansicht (view)
templates Formatierungsvorlagen für Features (s. Features)
tolerance räumliche Toleranz, entweder in Bildschirmpixeln (wie 10px) oder Karteneinheiten (wie 10m)
withGeometry wenn das auf false gesetzt wird, werden räumliche Abfragen von diesem Anbieter nicht bearbeitet (reine Stichwort-Suche)
withKeyword wenn das auf false gesetzt wird, werden Abfragen mit dem Stichwort von diesem Anbieter nicht bearbeitet (rein räumliche Suche)

Suchanbieter

nominatim

Schnittstelle zu Nominatim, der OSM-Suchmaschine. Sie können die Parameter country und language konfigurieren, um die Suchergebnisse anzupassen.

postgres

Bietet direkte Suche in Postgres/PostGIS Tabellen. Sie müssen und die zu durchsuchende Tabelle (table) angeben (s. Datenbanken). Zusätzlich können Sie die Spalte in der nach dem Stichwort gesucht werden soll (searchColumn) konfigurieren.

Wenn der Server eine Abfrage mit keyword und shape bearbeitet, wird ungefähr folgende SQL Abfrage ausgeführt:

SELECT * FROM {table}
    WHERE
        {searchColumn} ILIKE %{keyword}%
        AND ST_Intersects({geometryColumn}, {shape})

Anders gesagt, wird Stichword case-insensitiv mit beliebiger Platzierung und Geometrie mit der Überschneidung gesucht. Wenn searchColumn bzw geometryColumn fehlen, wird in dieser Abfrage nur eine Bedingung stehen.

Note

In der Zukunft wird es möglich sein, diese Abfrage flexibel zu konfigurieren.

wfs

Implementiert GetFeature-Anfragen für WFS-Quellen. Sie müssen die Service-URL bereitstellen. Es ist auch möglich, die Suche auf bestimmte Layer (oder “Typen”) zu beschränken.

wms

Implementiert GetFeatureInfo Anfragen für WMS-Quellen. Wie bei WFS, muss die Service-URL und optional die Suchlayers konfiguriert werden.

qgispostgres/qgiswms

Diese Anbieter werden intern bei der Konfiguration von QGIS Projekten verwendet.