Zum Hauptinhalt springen

Tooltips konfigurieren

Hier wird beschrieben, wie Sie Tooltips erstellen können, welche in der Karte den Anwendern angezeigt werden.

Beispiel Tooltip für Schacht

Die Anwender sehen die Tooltips nur dann, wenn diese im Client aktiviert sind, die Karte eingeschaltet ist, sowie die Tooltips in der definierten Zoomstufe vorhanden sind.

Vorraussetzungen

Um Tooltips nutzen zu können, muss eine Datenbankverbindung eingerichtet sein. Unterstützt werden Oracle, SQLite oder PostgreSQL Datenbanken.

Datenbank Verbindung

Datenbankverbindung

Kartenverwaltung Karte

Eingerichtet werden die Tooltips in der Kartenverwaltung bezogen auf die jeweilige Karte. Über den Button TOOLTIPS KONFIGURIEREN, können diese erstellt oder entfernt werden.

Tooltip Konfiguration

Konfiguration

Dies ist der Dialog zur Konfiguration der Tooltips in einer Karte.

Dialog Tooltip Konfiguration

Add & Remove

Über den Button Add kann einer neuer Tooltip angelegt werden. Über den Button
Remove kann ein ausgewählter Tooltip gelöscht werden.

Min & Max Zoom Level

Schränken Sie den Zoomlevel so gut es geht ein, damit Sie die beste Performance für die Anwender bekommen.

Es macht Sinn den "Min Zoomlevel" so einzustellen, dass diese sichtbar sind, wenn die Elemente des Tooltips erstellt sind und deutlich am Bildschirm zu erkennen sind. Je niedriger sie den "Min Zoomlevel" einstellen desto mehr Abfragen auf die Datenbank werden im Hintergrund generiert.

Empfehlung ist den "Min Zoomlevel" nicht höher als 18/19 einzustellen, sodass die Informationen beim Überfahren der Kartenelemente mit der Maus auch unterscheidbar sind.

Suchradius

Suchradius

Der Wert des Suchradius bestimmt die ungefähre Größenordnung am Bildschirm. Wenn man mit der Maus über ein Element fährt bei dem ein Tooltip definiert ist, dann wird der Tooltip erst angezeigt wenn sich die Maus innerhalb des Suchradius befindet.

Datenbankverbindung

Hier ist die Datenbankverbindung auszuwählen.

Auswahl Datenbankverbindung

Definition der SQL Abfrage

Die angegebene SQL-Abfrage muss als erstes Feld die FID oder anderes eindeutiges Feld und als zweites das GEOM-Feld zurück liefern. Danach können beliebige Felder folgen. Sollten sie Funktionen verwenden, vergeben sie bitte einen ALIAS Namen.

Beispiel: select f.fid, f.geom, f.NAME_NUMBER from ww_manhole f where {filter}

Der Parameter {filter} wird zur Laufzeit durch die Spatialabfrage ersetzt. Dieser ist zwingend notwendig und muss nach der where clause stehen.

Beispiel für erweitertes SQL:

select f.fid, f.geom, round(f.area) as area from DFK_GEBAEUDE f where sdo_relate(f.geom,mdsys.sdo_geometry(2003,**{srid}**,NULL,
mdsys.sdo_elem_info_array(1,1003,3), mdsys.sdo_ordinate_array(**{west},{south},{east},north}**)),
'mask=ANYINTERACT querytype=WINDOW') = 'TRUE'

Die Parameter in den geschweiften Klammern werden zur Laufzeit ersetzt.

Test SQL

Beim Ausführen der Funktion bzw. des Buttons TEST SQL wird das SQL getestet. Dazu wird sofern geöffnet der aktuelle Kartenausschnitt und Zoomstufe verwendet.

Meldung nach Ausführung von "Test SQL"

Es werden die Ausführungsdauer und der SQL-Query angezeigt der ausgeführt wird. Damit die beste Performance erreicht wird, sollte man immer genau prüfen inwiefern das SQL optimal ist. Wenn die Abfrage z.B. eine Sekunde dauert ist das langsam und wird bei jedem Zoom/Pan der Karte die Anzeige verzögern. (sofern die Tooltips aktiviert sind)

Die Ausführungsdauer schwankt selbstverständlich je nach Größe des Kartenausschnitt bzw. der Zoomstufe. Je mehr Elemente sichtbar sind, desto langsamer wird die Abfrage.

Tooltips bei Flächen

Wenn mehrere Flächen übereinanderliegen, dann kann der Tooltip die Infos der richtigen Fläche teilweise nicht sauber anzeigen. Dann muss man die Reihenfolge der Objekte im Select festlegen. Zum Beispiel kann nach der Flächengröße (Area) sortiert werden oder zum Beispiel nach einem Feld wo man eine Priorität festlegt. Wenn man nach der Flächengröße sortieren will, dann zeigt es so den Tooltip der kleinsten Fläche an.

Beispiel: select f.fid, f.geom from GRUENFLAECHEN f where {filter} order by area

Bei den Tooltips wird die Reihenfolge der Datensätze beachtet. D.h. wenn mehrere
Datensätze zu einem Objekt gefunden werden, wird nur der erste Datensatz angezeigt. Man kann dies durch setzten einer ORDER BY im SQL steuern.

Generell: Beachten Sie, dass performante und optimierte SQLs verwendet werden sollten, sonst wird die Geschwindigkeit von MapEdit beeinträchtigt. Zum Test hierzu die Funktion Test SQL verwenden, da bekommen sie Daten zur Ausführungsdauer.

Schablone

Beispiel Schablone

Bei der Schablone geben Sie den Text an, der im Tooltip angezeigt werden soll an.
Es können Werte aus dem Eintrag bei SQL verwendet werden. Dazu diese in geschweiften Klammern Beispiel: {NAME_NUMER} und in Großbuchstaben angegeben. Zeilenumbrüche müssen nicht durch Steuerzeichen angegeben werden, sondern werden einfach durch Drücken der ENTER-Taste eingegeben.

Beispiel Tooltip für Schacht

XAML (optional)

Man kann an jeder Stelle in dem XAML Code-Feldnamen in { } verwenden. Bei der Tooltipkonfiguration gibt man im Feld "Schablone" folgendes ein wenn man zum Beispiel ein Bild einbauen möchte:

<Grid Height="180" Width="250" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<StackPanel>
<Image Height="31" Source="https://www.mum.de/-/media/mum/images/configure-tooltips/logos/logo-mum-320x63.png" />
<TextBlock Text="Fid:{FID}"/>
</StackPanel>
</Grid>

Vor dem <Grid> dürfen keine Leerzeichen stehen und die Gross/Kleinschreibung muss genauso aussehen. Also <Grid> am Anfang und am Ende steht </Grid>. Ansonsten erkennt MapEdit nicht das es sich um einen XAML Tooltip handelt.

Da wo in diesem Beispiel die URL zu dem MuM Bild steht, könnte auch ein Feldnamen verwendet werden, beispielsweise {BILDURL} um ein dynamisches Bild anzuzeigen. Hier noch ein erweitertes Beispiel:

<Grid Height="180" Width="250" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<StackPanel>
   <TextBlock Foreground="Blue" Width="250" Height="20" TextWrapping="Wrap">
         Wasserleitung: {DIAMETER_INSIDE}mm {FUNKTION} {MATERIAL}
   </TextBlock>
   <TextBlock Foreground="Red" Width="250" Height="20" TextWrapping="Wrap">
       <Bold>
         Für weitere Informationen bitte Formular öffnen.
      </Bold>
   </TextBlock>
   <Image Height="31" Source="https://www.mum.de/-/media/mum/images/configure-tooltips/logos/logo-mum-320x63.png" />
</StackPanel>
</Grid>

Tooltip mit XAML

Zeilenvorschub in XAML kann mit diesen Zeichen erreicht werden: &#10 oder hexadezimal &#x0A Wagenrücklauf in XAML kann mit diesen Zeichen erreicht werden: &#13 oder hexadezimal &#xD

XAML Tooltip mit direkter Anzeige hinterlegter Fotos

Man kann beim Tooltip hinterlegte Fotos gleich direktanzeigen lassen.

Beispiel:

Tooltip mit hinterlegtem Foto

Und wenn kein Bild vorhanden ist, dann klappt sich der Tooltip ein:

Tooltip ohne hinterlegtes Foto

Und hier der erforderliche XAML Code:

<Grid Background="LemonChiffon" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">

<Grid.ColumnDefinitions>
<ColumnDefinition Width="300"/>
</Grid.ColumnDefinitions>

<Grid.RowDefinitions>
<RowDefinition Height="30" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>

<Border Grid.Row="0" Grid.Column="0" Background="LightGray" />

<TextBlock Grid.Row="0" Grid.Column="0" Margin="5" Text="Incident/réparation des infrastructures du SIDEN." FontWeight="Bold" />
<TextBlock Grid.Row="1" Grid.Column="0" Margin="5" Foreground="Blue" Text="{DESCRIPTION}" TextWrapping="Wrap" />

<Image Grid.Row="2" Grid.Column="0" Margin="5" Height="Auto" Source="{LINKBILD1}" />
<TextBlock Grid.Row="3" Grid.Column="0" Margin="5" Foreground="DarkGray" Text="(autres image(s) --&gt; selection et ouvrir formulaire!)" TextWrapping="Wrap" />
</Grid>

### Hinweise zur Benutzung von Tooltips

In dem MapEdit Projekt kann der Anwender die Tooltips bei Bedarf ein- und ausschalten:

![Tooltips ausgeschaltet](images/configure-tooltips/Tooltip1-7.jpg)

An der Farbe dieses Optionenfeldes *Tooltip* kann man erkennen, ob das Laden der
Tooltips fertig ist oder noch andauert. Wenn es schwarz angezeigt wird, dann ist der
Tooltip fertig. Bei langsamen Selects kann das etwas dauern. Oder wenn man in einem Gebiet ist, wo es keine Objekte mit diesem Tooltip gibt, wird die Option ausgegraut angezeigt:

![Tooltips aktiviert und geladen](images/configure-tooltips/Tooltip1-8.jpg)

Wenn die Tooltips nicht angezeigt werden, können Sie im MapEdit Desktop Client unter Log die Abfrage/SQL sich anzeigen lassen und prüfen ob hier ein Fehler aufgetreten ist.

![Aufruf der Log Anzeige](images/configure-tooltips/Tooltip.png)

![Angezeigter SQL aus Logdatei](images/configure-tooltips/Tooltip-1.jpg)

Solange sie den Zoombereich nicht verschieben, wird die Tooltip Abfrage nicht nochmals ausgeführt, da die Elemente bereits geladen sind. Daher muss die Karte an einen neuen Koordinatenbereich geschoben werden, bevor man einen Eintrag in den Log Optionen angezeigt bekommt.

### Weiterführende Informationen

Hier finden sie einen Link zu einem Beispiel für eine Tooltip Konfiguration welche auf ein View mit SQL-Befehl `EXISTS` geht. Mit dem `EXISTS`-Operator wird geprüft, ob ein Datensatz in einer Unterabfrage vorhanden ist. Öffnen sie den *Ordner Knowledgebase*, dort befindet sich ein PDF zu den Tooltips.

[Tooltip Beispiel View mit `EXISTS`](https://data.mapedit.de/links/SoftwareRepository)

Hyperlinks sind nur in Verbindung mit Tooltips möglich.

Die Hyperlinks können durch das Drücken der Taste CTRL/STRG während der Tooltip sichtbar ist aktiviert werden. Beim Text Hyperlink tragen sie die zu öffnende URL ein. Wie bei den Tooltips können Feldwerte aus dem SQL in { } angegeben werden.

SQL im Tooltip: select f.FID, f.GEOM, f.NAME, f.SCHACHT_FID from VIEW_AW_SCHACHT f where {filter} order by area

Und hier ein Beispiel für einen Hyperlink Eintrag um auf einer Seite der Funktion zum Anzeigen von Bildern die FID dynamisch als Parameter mit zu übergeben: http:\\\\www.schachtbauwerke.de?ZeigeBilderZuSchacht={FID}

Es können auch komplexe Hyperlinks zur Weiterleitung konfiguriert werden.

Sofern ein Hyperlink angegeben ist wird dies unterhalb des Tooltips angezeigt und durch das Drücken der CTRL/STRG Taste ausgeführt.

Anzeige wenn ein Hyperlink definiert ist

Via Hyperlink können MapEdit Generic Formulare geöffnet werden.

Hierfür muss beim Hyperlink folgende Syntax verwendet werden

OPENDIALOG Datenbankverbindungsname.Tabelle.Vorlage, Filter

Beispiel:

OPENDIALOG STMORITZ_EW.EL_POINT.DEFAULT,FID={FID}

Via Hyperlink können beliebige EXE Dateien ausgeführt werden.

Hierfür muss beim Hyperlink folgende Syntax verwendet werden

START "Exe Datei name"

Beispiel:

START c:\meine.exe

Das kann man auch dazu verwenden wenn man gezielt nicht den Standardbrowser aufmachen will sondern einen anderen Browser.

Beispiele:

START CHROME https://www.google.de
START IEXPLORE https://www.google.de (Kein schreibfehler IEXPLORE not IEXPLORER)

Via Hyperlink können MapEdit C#/VB Scripte ausgeführt werden.

Hierfür muss beim Hyperlink folgende Syntax verwendet werden

RUNSCRIPT PluginName, Functionname, Parameter

für PluginName "null" angeben wenn es im normalen Scripting Code von MapEdit ist.

Beispiel:

RUNSCRIPT null,Test123,Hello {FID}

Das Vorgehen ist ähnlich wie bei "Skripte->Funktion via Ribbon Knopf aufrufen" https://help.mapedit.de/admin-guide/mapedit-appbuilder/scripts/ribbon-button-function

d.h.

Im Skript Editor auf das Register "Funktionen" gehen. Hinzufügen drücken und einen Funktionsnamen eingeben z.B. "Test123" und dann diese Code eingeben und danach KOMPILIEREN und Speichern drücken.

c# Beispiel:

public override void Execute(string parameter)
{
this.MessageBox("Test " + parameter)
}

VB Beispiel:

Public Overrides Sub Execute(parameter as string)

Me.MessageBox("Test " & parameter)

End Sub
Bitte beachten

Achten Sie darauf das rechts oben die richtige Sprache (also C# pder VB) gewählt ist!