Schnell-Suche
Mit der Schnellsuche ist es möglich Sachdaten Formulare zu einem Objekt einer Tabelle mittels klicken in der Karte zu öffnen ohne das zuerst das Sachdaten Formular geöffnet werden muss und der Info Knopf gedrückt werden muss.
Der Administrator kann hier Suchen die vom Anwender häufig genutzten einrichten und gruppieren. Lesen Sie detaillierte Informationen auch ganz unten unter "Warum muss man vorab die Tabelle wählen?"
Konfiguration
Wenn Sie viele Suchen haben kann es hilfreich sein Gruppen zu bilden um mehr Übersichtlichkeit zu erreichen. Legen Sie im linken Bereich mit dem "grünen Stern" Knopf mindestens eine Gruppe an.
Zu jeder Gruppe können nun beliebig viele Suchen zugeordnet werden. Benutzen Sie den rechten "grünen Stern" Knopf um eine neue Suche zu erzeugen.
Wählen Sie zuerst Ihre Datenbankverbindung aus und dann bei "Karten Tabelle" die Tabelle in der die Geometrie gesucht werden soll.
Karten Tabelle
Wenn der Anwender den "Info" Knopf klickt und dann in die Grafik die Koordinaten Position des gesuchten Objektes anklickt such das Programm mittels dieser Koordinate in der bei "Karten Tabelle" angegebenen Tabelle.
Geben Sie hier die Tabelle an die Sie in MapGuide/MapServer für die Darstellung der Zeichenebene/Layer verwendet haben.
Bei Utility Model Tabellen kann hier auch die Attribut Tabelle angegeben werden. Die Suche sucht dann automatisch in der zugehörigen Geometry Tabelle statt der Attribut Tabelle. Bei "Formular Filter" muss in diesem Fall nichts angegeben werden.
Karten Filter
Der Eintrag "Karten Filter" ist optional und bleibt im Standardfall leer. Der "Karten Filter" dient ggf dazu die Suche weiter einzuschränken. Z.B. wenn aus der Kartentabelle nicht alle Datensätze gefunden werden sollen sondern nur bestimmte. Der Eintrag bei Karten Filter ist ein SQL Bedingung. Diese Bedingung wird an den den Such SQL mit einem SQL AND angefügt.
Beispiel, bei "Karten Filter" wird eingegeben
alter>10
Damit sollen in dem Beispiel nur Bäume die älter als 10 Jahre sind gefunden werden.
An das interen Such SQL wird dies dann hinten mit einem AND angehängt.
Beispiel:
SELECT f.FID, f.GEOM FROM BAUM f WHERE (SPATIAL FILTER) AND (alter>10)
Formular nach dem Highlighten öffnen
Wenn Sie diese Option deaktivieren wird kein Dialog geöffnet. Das Objekt wird dann nur in der Grafik markiert.
Formular
Bei "Formular" wird festgelegt welches Formular geöffnet werden soll.
Wenn Sie bei "Karten Tabelle" einen View angegeben haben aber die Tabelle zu dem View anzeigen wollen geben Sie hier einfach den Dialog der Tabelle an.
Dies Funktioniert nur wenn die FID im View die gleiche ist wie die FID der Tabelle. Wenn das nicht der Fall ist müssen Sie bei "Formular Filter" die Relation zwischen dem View und der Tabelle angeben.
Formular Filter
Der Eintrag "Formular Filter" ist optional und bleibt im Standardfall leer.
Dieser Eintrag kann benutzt werden wenn im Formular nicht das in der Grafik gefundene Objekt angezeigt werden soll sondern ein anderes damit verbundenes Objekt.
Hier wird eine SQL-Where Bedingung eingegeben. Mit dem Platzhalter {Filter} wird der Suche das Ergebnis der Suche übergeben.
FID_POI in (select FID from POI where {Filter})
Bei der SQL Bedingung bei der {Filter} angegeben wird sollte immer der bei der Einstellung "Karten Tabellenname" angegebene Tabellenname stehen. Wird diese nicht gemacht kann es sein das ein Objekt in der Karte gehighlited wird aber im Formular kein Datensatz angezeigt wird.
ANYTHING in (select FID from IHR_KARTEN_TABELLENAME where {Filter})
Es können auch komplexere SQLs angegeben werden
FID in (select fid_parent from baum where fid_child in (select FID from IHR_KARTEN_TABELLENAME where {Filter}))
Bei Utility Featuren ist nicht notwendig hier einen "Formular Filter" einzutragen. Einfach bei Karten Tabelle und Formular die Utility Attribut Tabelle eintragen.
Wenn der "Formular Filter" leer ist und es sich nicht um ein Utility Feature handelt dann liest das Programm vorhandene Formular Redirects und wendet diese an.
In {Filter} steht je nach Auswahlmodus unterschiedliche werte
z.B.
FID=17
FID in (17,18,19)
oder ein Spatial Query Ausdruck
Tab Index/Name
Wenn das zu öffnende Formular mehrerer Register hat kann hier mit gesteuert werden welches Register aktiviert werden soll.
Rechte
Mit dem "gelben Schloss" Knopf können Sie optional festlegen welche Benutzergruppen den Eintrag sehen dürfen.
Menüpunkt "(Alle Objektklassen)" anzeigen
Die Checkbox Menüpunkt (Alle Objektklassen) anzeigen erlaubt das Suchen in allen Objektklassen die in der Ebenenverwaltung eingeschaltet sind.
Die Suche dauert jedoch länger als eine explizit aufgesetzte Suche, da nach dem Klick in die Grafik alle Tabellen die in der Ebenenverwaltung eingeschaltet sind durchsucht werden müssen.
Die Funktion geht NICHT alle aufgesetzten Suchen durch sondern allen Objektklassen die in der Ebenenverwaltung eingeschaltet sind.
Die Funktion "(Alle Objektklassen) anzeigen" ist für MapServer Karten erst ab Version 23.1.185
nutzbar und muss im MapFile entsprechend eingerichtet werden.
Siehe:
https://help.mapedit.de/admin-guide/mapedit-appbuilder/map-definitions/map-mapfile#schnellsuche-auswahl-von-alle-objektklassen
Bedenken Sie dass die Grafik in MapEdit Desktop ein Bild ist das anders bei einem CAD System keinerlei Informationen über die Objekte im Bild hat. D.h. alle Tabellen aller Ebenen müssen nach der Koordinate durchsucht werden. Dies funktioniert nur für MapGuide-Karten die eine Oracle/Postgres oder SQLite FeatureSource (Datenbankverbindung) haben. Also nicht mit SDE oder anderem. Hierbei muss der Datenbank Username und Servicenamen der Exakt gleiche Name sein wie ein im AppBuilder Definierte Datenbank Verbindung. Des weiteren muss im Ribbon Designer mindestens ein Formular mit der Datenbankverbindung eingebunden sein. Ansonsten liefert diese Funktion kein Ergebnis.
Ab Version 23.1.186 wird, wenn der Servicename in MapGuide und Oracle/Postgres nicht gleich sind, aber es eine Datenbank vom gleichen Datenbanktyp wie in Oracle gibt und der Verbindungsnamen und Datenbank Username der Gleiche ist, die Verbindung auch genutzt.
Filter für (alle Objekte)
Hiermit kann "(Alle Objektklassen)" weiter eingeschränkt werden. Listen Sie hier mit Komma getrennt die Tabellen die durchsucht werden sollen. Dem Tabellennamen muss jeweils der Datenbank Verbindungsname vorangestellt werden.
Dieses Beispiel beschränkt die Suche auf zwei Tabellen
WASSER.WA_STRANG,WASSER.WA_HALTUNG
Sie können auch *
Filter verwenden.
Dieses Beispiel beschränkt die Suche auf Tabellen aus den Datenbanken Wasser und Gas.
WASSER.*,GAS.*
Dieses Beispiel beschränkt die Suche auf Tabellen aus den Datenbanken Wasser die mit WA anfangen und Tabellen aus Gas die mit GA anfangen.
WASSER.WA_*,GAS.GA_*
Mehrfach Suche Kombinieren
Sie können in einem Eintrag auch mehrere Suchen nacheinander ausführen lassen.
Mit der Option "Stop Search after a Feature was found/Suche nach finden anhalten" können Sie optional
die Suche abbrechen nachdem ein Feature gefunden wurde.
Ansonsten werden alle Suchen durchgeführt und ggf mehrere Formulare geöffnet.
Um eine weitere Suche im gleichen Eintrag hinzuzufügen drücken Sie auf den Plus Knopf oben Rechts. Zum entfernen einer Suche drücken Sie den Minus Knopf.
Die Mehrfachsuche beachtet nur Ebenen die eingeschaltet sind. Hierbei muss der Tabellenname/View Name der bei Kartentabelle eingetragen wurde der gleiche sein wie der der für die Ebene in MapGuide/MapServer verwendet wurde.
Beispiel Sie wollen mit einem Klick in den beiden Tabelle GRUENFLAECHEN und BAUM_GRUPPE suchen.
Abschliessend die Suche dem Projekt zuweisen
Nach dem Konfiguration und Speichern der Schnellsuche muss die Schnellsuche den Projekten zugewiesen werden in der Schnellsuche verwendet werden soll.
Wählen Sie im AppBuilder Baum unter Projekten das Projekt, wählen Sie in der Liste "Schnell Suchen", Kicken Sie auf den "Zuweisen" Knopf und wählen Sie ihre gerade erzeugte Schnellsuche aus.
Sie können einem Projekt beliebig viele Schnellsuchen zuweisen.
Knöpfe neben der Schnellsuche
Objekt in der Karte wählen und Formular öffnen
Bezogen auf das in der Liste links ausgewählte Formular
Objekt in der Karte wählen und Highlighten
Bezogen auf das in der Liste links ausgewählte Formular
Formular öffnen
Öffnet das in der Liste links ausgewählte Formular ohne Auswahl in der Grafik und ohne setzen eines Filters.
Formular der in der Karte selektierten Objekte öffnen
Öffnet zu allen in der Grafik gerade gehighlighteten Objekten das jeweilige Formular.
Reihenfolge der Schnellsuche Gruppen
In Versionen kleiner 23.2.71 gilt:
Bei der Schnellsuche werden die Gruppennamen immer alphabetisch sortiert. Die Reihenfolge der Gruppen kann stand heute innerhalb einer Definition nicht festgelegt werden.
Wenn in einem Projekt mehrere Schnellsuchen zugewiesen werden dann werden diese gemischt und alphabetisch nach Gruppen sortiert.
Ab Version 23.2.71 und höher gilt:
Die Reihenfolge der Gruppen kann eingestellt werden und ist nicht alphabetisch.
Wenn in einem Projekt mehrere Schnellsuchen zugewiesen sind gilt ausser dem die Reihenfolge der Einstellung im Projekt. Wenn mehrere Schnellsuchen den gleichen Gruppennamen haben dann werden diese jeweils kombiniert.
Wie gross ist der Suchradius?
Die Folgende Beschreibung bezieht sich auf den Auswahl Modus "Einzelnes Objekt" und Version 24.1. und höher.
Punkt Objekte: Es wird der Punkt mit dem kürzesten Abstand zum angeklickten Punkt in der Karte zurück geliefert. Es werden hierbei nur Punkte im Radius von 1cm Bildschirm Einheiten um den angeklickten Punkt ausgewertet. Die 1cm sind bezogen auf den Bildschirm und nicht auf Natur. d.h. abhängig von aktuellen Masstab. Wenn sehr viele Punkte nahe bei einander liegen sollten Sie so weit wie möglich zoomen um den korrekten Punkt zu finden.
Linien Objekte: Von allen Linien im Abstand von 1cm Bildschirm Einheiten (nicht 1cm in Natur!) um den angeklickten Punkt wird die Linie mit dem kürzesten Abstand zurück gegeben. Wenn es mehrere Linien mit dem gleichen Abstand gibt wird die kürzeste Linie zurück gegeben.
Flächen Objekte: Es wird die Fläche zurück gegeben in der der angeklickte Punkt liegt. Werden mehrere Flächen gefunden wird die Fläche mit dem kleinsten Flächeninhalt zurück gegeben. Wird hiermit keine Fläche gefunden wird die Fläche zurückgegeben deren Umring den kürzesten Abstand zum angeklickten Punkt hat.
Beispiele
Beispiel 1
Es liegen in Fachschale Strom zwei Leitungen übereinander. Eine außer Betrieb und eine in Betrieb (20kV). Die Leitungen außer Betrieb werden in der Grafik nicht eingeblendet.
Wenn man nichts weiter konfiguriert, erscheint beim Ergebnis der Suche auch die Leitungen die nicht in Betrieb sind.
Um das zu verhindern kann man beim "Karten Filter" eine Bedingung eingeben, die erzwingt, dass nur Leitungen angezeigt werden, die in Betrieb sind.
Beispiel:
f.FID_ATTR in (select fid from EL_CONDUCTOR where ID_DISPOSITION_State = 12000 and f.fid=f.fid_attr)
Beispiel 2
Man hat eine Tabelle POI
(Tabelle mit Punktgeometrie) und das Formular POI_DATA
(Attributtabelle). Es wird in der Grafik POI
ausgewählt und das Formular POI_DATA
soll aufgehen. POI
hat ein Feld FID
und in POI_DATA
gibt es ein Feld FID_POI
über die die beiden Tabellen verknüpft sind.
Bei Formular Filter trägt man dann ein: FID_POI in (select FID from POI where {Filter})
Bei {Filter}
die Gross-/Kleinschreibung beachten. Dieser Filter wird dann als Filter der zu öffnenden Maske übergeben. Bei {Filter}
steht z.B. FID=17
oder FID=17
or FID=18
oder ein spatial select etc..... je nach gewähltem Auswahlmodus.
Beispiel 3
Wenn in der Karte Strom Niederspannung angezeigt wird, dann sollen auch nur Niederspannungsleitungen im Formular angezeigt werden. Da die Software sich bei der grafischen Auswahl nicht an der grafischen Darstellung orientiert, sondern die Koordinatenwerte mit der Datenbank abgleicht, werden auch eventuell parallel verlaufende Mittelspannungsleitungen angezeigt. Daher kann man in der Schnellinfo das Formular Leitungsabschnitt durch unterschiedliche Filter aufteilen:
Wird die Karte Niederspannung aufgerufen und der Anwender möchte im Formular nur NSP Leitungsabschnitte angezeigt haben, dann wählt man die entsprechende Objektklasse aus:
Wenn der Eintrag Formular und Tabelle von der Tabelle her nicht gleich sind, dann liest das
System bei Map die Tabelle TB_GN_INFO_REDIRECT
und bei TB2
die Tabelle TB_GEN_INFO
und lenkt den Filter zum entsprechenden Objekt um. Zum Beispiel die Umleitung von
einem Anschrieb auf das übergeordnete Objekt.
Beispiel 4
Anwender möchten die Schnellinfo von 2 Objektklassen zusammenfassen, sodass entweder Gebäude oder Anlagen automatisch aufgehen, ohne dass die Anwender bei der Schnellinfo eine Auswahl getroffen haben. Weil die Anwender nicht wissen, ob die Infos in Gebäude oder in Anlage zu finden sind.
Eingetragen wird in die Zeile Filter für (Alle Objekte) nur mit Komma getrennt die Tabellen mit der Datenbankverbindung.Tabellenname,Datenbankverbindung.Tabellenname usw.
Beispiel:
OSNAB.Gebaeude,OSNAB.Anlage
Beispiel 5
In manchen Anwendungsfällen ist es gewünscht bei der Auswahl über die Schnellinfo nicht das Formular der gewählten Objektklasse zu öffnen, sondern stattdessen ein verknüpftes Formular.
In der Karte Strom möchte der Anwender das Formular vom Leitungsabschnitt über die Querschnittsanzeige aufrufen.
Die graphische Auswahl geschieht über die Tabelle EL_CS_CONDUCTOR
.
Dies wird durch eine SQL Anweisung im "Formular Filter" erreicht.
Formular Filter:
FID in (
select c.fid from EL_CONDUCTOR c where c.fid in (
select d.FID_CONDUCTOR from EL_DUCT_CONDUCTOR d where d.fid in (
select q.FID_DUCT_CONDUCTOR from EL_CS_CONDUCTOR q where {Filter})
)
)
Wenn in der Stromfachschale mehrere Leitungen mit unterschiedlichen Spannungen in einer Trasse verlaufen, soll das Formular nur die Niederspannungen anzeigen. Da die Software bei der graphischen Auswahl sich nicht an der Darstellung orientiert, sondern die Koordinatenwerte mit der Datenbank abgleicht, werden auch eventuell parallel verlaufene Mittelspannungskabel angezeigt. Mittels einem Dialogfilter kann die Anzeige eingegrenzt werden.
Anwendung des Dialogfilters
Formular Filter:
ID_VOLTAGE=2 and FID in (select FID_ATTR from EL_LINE where {Filter})
Warum muss man vorab die Tabelle wählen?
Die MapEdit Desktop Grafik stellt Karte als Pixelbildern dar.
Dies können vorgerenderte Kacheln z.B. aus MapGuide/MapServer sein, Satelliten Bilder/Luftbilder
oder auch "Live" abgerufene Pixel Bilder aus MapGuide/Mapserver etc.
All diese Bilder sind Pixel Bilder und enthalten keine Informationen darüber welche Objekte in der Grafik dargestellt sind. Man kann sich das wie eine Fotoaufnahme vorstellen, Sie sehen zwar Ihre Tante Erna im Foto aber das diese Ihre Tante Erna ist wissen nur Sie und am Foto sind keine weiteren Textuellen (Metadaten) Informationen dazu vorhanden. D.h. jemand anderes weis nicht wer da im Foto abgebildet ist.
D.h. um ein Objekt in der Grafik zu identifizieren, klickt der Anwender auf einen Pixel Punkt auf dem Bildschirm in der Nähe des Objektes. Diese Bildschirm Pixel Koordinate rechnet das System in Welt Koordinaten (Meter) um und durchsucht dann die angegebene Tabelle nach dem Objekt das am nächsten zu dieser Koordinate liegt.
Wenn man die Tabelle nicht vorgeben würde, dann müsste das System alle Tabellen der Datenbanken (oder gar mehrerer Datenbanken) durchsuchen. Diese ist geschwindigkeits Technisch sehr langsam und der Anwender müsste dann bei jedem Klick sehr lange warten.
Aber beim meinem CAD System muss ich doch die Tabelle auch nicht wählen?
Ein CAD System Arbeit nicht mit Pixel Bildern sondern mit Vektor Daten. also Linien, Punkte etc. die in den Hauptspeicher geladen werden. Dadurch kann das System dies schnell durchsuchen.
Die funktioniert jedoch nur mit "kleinen" Datenmengen. Nehmen wir an Sie zeigen die Stadt Berlin in ihrer Karte an und diese hat Millionen von Strassen, Häusern, Kanälen etc. Die Datenbank auf dem Server ist viele Terrabyte gross. Das laden all dieser Millionen Objekte würde sehr lange dauern und würde mehr sein als der Hauptspeicher ihres Rechners verkraftet.
D.h. ein CAD System ist ok wenn man wenige Datenmengen hat oder wenn man nur einen Ausschnitt der Datenmengen anzeigt. Damit verbunden ist jedoch das man nicht schnell zwischen den Daten Navigieren, also zoomen und verschieben, kann.
Aus diesem Grund verwenden System die schnell viele Daten anzeigen wollen wie z.B. Google Maps, Apple Maps und eben auch MapEdit Pixel Bilder und nicht Vektor Daten.
Die Suche funktioniert nicht
- Prüfen Sie ob die richtige Suche im Projekt zugeordnet ist.
Führen Sie die Suche aus, öffnen Sie das "Log" Fenster und stellen Sie diese auf den Modus "Trace". Hier werden alle Informationen zur Suche geloggt. Wenn Sie hiermit das Problem nicht selbst finden können schicken Sie bitte das Log an die MuM Hotline.