Maptip im cardo
  • Aufruf bei Klick auf ein Objekt in der Karte
  • Anzeige Maptipinformationen aller getroffenen Objekte an diesem Punkt – alle sichtbaren Ebenen werden abgefragt
  • Alle mit dem Objekt möglichen Aktionen sind aus dem Maptip startbar
  • Anzeige von bestimmten Sachinformationen im Maptip administrativ steuerbar
  • Einstellungen wie bisher im Managementcenter/Reiter Zusatzeigenschaften

  • Maptip-Fenster wird immer angezeigt, auch wenn die Einstellung explizit auf nein steht!

Einstellungen im Parameterfeld Aktivieren:

Leer:

ja -> Maptip definiert:

nein:

Aktivierung Maptip / Selektionsgeometrie
  • Aktivieren: Gibt an, ob Maptips für diese Ebene im Auskunftssystem aktiviert werden sollen.
    Werteliste:
    • Ja: der Maptip für diese Ebene wird aktiviert
      Für einen Maptip Inhalt sind die Felder Spalten und HTML Vorlage im nächsten Abschnitt zu füllen.
    • nein: der Maptip für diese Ebene wird nicht aktiviert
    • leer: Maptip wird angezeigt (cardo4), im cardo3 wird der Maptip NICHT angezeigt

Hinweis: auch bei leerem Feld Aktivieren oder dem Wert "Nein" wird das Maptipfenster beim Klick auf ein Objekt in der Karte angezeigt. Lediglich der Maptipinhalt wird nicht angezeigt.

Die Eigenschaft wird primär gegenüber den vererbten Eigenschaften ausgewertet. D. h. enthält diese Eigenschaft keinen Wert und ist die Vererbung aktiviert, dann wird die geerbte Einstellung herangezogen. Wurde jedoch ein Wert (ja oder nein) zugewiesen, wird in jedem Fall dieser Wert zur Aktivierung des MapTips verwendet.

  • Ausgabelimit im Zeilen: Legt die maximale Anzahl der Zeilen pro MapTip für Treffer dieser Ebene fest.
  • Selektionsgeometrie: Legen Sie hier fest, wie die Selektionsgeometrie für den Klick-Punkt bestimmt werden soll.
    Aufbau: RadiusInKarteneinheiten, MinPixelSize, MaxPixelSize.
    Bsp.: 10, 5, 20
    Alle Argumente werden von links nach rechts gelesen und sind optional.
    Punkte/Kreis: Geben Sie als Radius "0" ein, dann wird ein Punkt generiert. Ist der Radius > 0, wird ein Kreis verwendet. Der Standard ist 5.
    Flächen: Für die Selektion von Flächen sollte grundsätzlich als Radius "0" eingestellt werden.
    Die Argumente MinPixelSize und MaxPixelSize begrenzen die minimale und maximale Ausdehnung der Selektionsgeometrie.

Meldungen

Hinweis zur Fehlermeldung: cant apply query, missing Field "..." in source. Bitte überprüfen Sie die Spaltennamen, ob der angezeigte Name auch wirklich in der Datenquelle vorhanden ist.

Formatierung Maptip

Hinweis: Das Verwenden eines Nullwertersatzes (wie im cardo.Map) ist an dieser Stelle (noch) nicht möglich.

  • Spalten: Erwartet eine kommagetrennte Liste der Spaltennamen, die bei einem Treffer ausgegeben werden sollen. Wird keine Liste angegeben, werden alle Spalten angezeigt. Die hier definierten Spalten werden in der Reihenfolge über HTML-Vorlage angesprochen.
    Beispiel: txt,recid
  • HTML-Vorlage: Erlaubt die Angabe einer String-Vorlage für die Ausgabe als HTML. Verwenden Sie Platzhalter mit {index}, wobei Index die Spaltennummer ist. Entweder wie in Spalten definiert oder wie die Reihenfolge in der Quelle ist. Wenn keine Definition erfolgt, wird eine einfache Tabelle der Spalten ausgegeben. Sind keine Sachdaten für das Thema vorhanden, wird ausschließlich die Überschrift des Themas im MapTip-Fenster angezeigt.
    Hinweis: Die Umsetzung über Templates, wie im cardo.Map wird für cardo3/4 noch nicht unterstützt.
    Wird der Parameter HTML-Vorlage frei gelassen, so wird automatisch der Maptip in Tabellenform dargestellt, d.h. zu Beginn wird der Spaltenname + der Inhalt der Spalte aufgelistet.
    z.B. Ort: Dresden
    Stadteil: Hellerau
  • HTML-Vorlage (%PARENTTPL%): Erlaubt am Ordner eine Vorlage für mehrere Ebenen zu definieren, welche mit %PARENTTPL% in MapTipHtmlTemplate an der Ebene verwendet werden kann.

In der Hilfebeschreibung am Eigenschaftendialog kann der Nutzer die HTML-Vorlage übersetzen. Klicken Sie dazu auf den Eintrag [Translate]. (weitere Infos)

Wichtiger Hinweis: Für formatierte Zahlenausgaben im Maptip von cardo4 müssen die Formatierungen an dieser Stelle vorgenommen werden, insofern nicht der Standardmaptip verwendet wird.  

Beispiel:
Sie haben in eine Datenquelle mit verschiedenen Zahlenangaben, welche Sie formatiert im Maptip ausgeben möchten:

Spalte 1 (z. B. Flächengröße) : Name: AREA=> Inhalt: 17,4567 - Angabe in ha 

Spalte 2 (z. B. Art der Fläche) : Name: FLAECHE =>Inhalt: Industrie- und Gewerbeflächen

Sie möchten die Flächengröße ohne Nachkommastellen angeben:

Defintion muss lauten.

im Parameter Spalten: AREA, FLAECHE

im Parameter HTML Vorlage:

Beispiel: 

Flächenart: <b>{1}</b> <br />
Größe: <b>{0:#} ha</b>

 

Ergebnis:

Maptip auf Polygone bringt zu viele Ergebnisse

Werden beim Maptip auf eine Ebene mit angrenzenden Polygonen zu viele Objekte (das von Interesse und die Nachbarobjekte) getroffen, so sollten Sie an der Ebene in den Zusatzeigenschaften die Selektionsgeometrie dieser Ebene anpassen (0,0,0). Es kann vorkommen, dass der Standardwert des Radius von 5 Karteneinheiten zu groß ist.

Anforderung Maptip bei sehr großen Geometrien

Es ist zu beachten: wird ein Maptip auf sehr große Geometrien angefordert, so kann der Abruf einige Sekunden dauern.

Formatierung Maptip

Beispiel: Nachkommastellen von Dezimalzahlen

Spalten: Shape_area

HTML Vorlage:

Größe: <b>{0:0.0}</b>  mit einer Nachkommastelle

Größe: <b>{0:0.00}</b>  mit zwei Nachkommastellen

Größe: <b>{0:#}</b>    ohne Nachkommastellen

Beispiel: Datum

erstellt: {0:dd.MM.yyyy} führt zu -> erstellt: 10.11.2021

Button Plan im Maptip verlinken

Der Maptip muss mit HTML definiert werden. Für den Button Plan kommt ein Link in den Maptip:

https://cardo/net3/button/run.aspx?plan=Plantitel&FlstId={bp_id}&Zielformat=PDF

cardo = Adresse ihres cardos

plan = Name des Buttonplans

Flstid und Zielformat = Parameter, die dem Plan übergeben werden

als Link:

<a href="https://cardo/net3/button/run.aspx?plan=Plantitel&FlstId={1}&Zielformat=PDF"> Button Plan für Flurstücke im PDF Format</a>

{1} = bp_id

Anzeige eines Bildes im cardo Maptip
  1. Hinterlegen Sie das Bild in das Verzeichnis: ...\cardoSystem\_Projekt_XYZ\IISvirtualDir (ggf. erstellen Sie im IISvirtualDir noch ein Unterverzeichnis)
  2. Definieren Sie den Maptip im Feld HTML-Vorlage: <img src="\project\Bilder\Beispielbild.png">
  3. Überprüfen Sie die Anzeige im cardo4 (ggf. ist der cardo Cache im Managementcenter zu löschen)

 
 
Öffnen einer Datei über Maptip

Ablegen der Dateien im Ordner:

...\cardoSystem\_Projekt_XYZ\IISvirtualDir

Es können auch dort weitere Unterverzeichnisse anlegt werden:

...\cardoSystem\_Projekt_XYZ\IISvirtualDir\Pdfs

Verlinkung im Maptip:

Datei öffnen: <a href="\project\Pdfs\{0}" target="_blank"> PDF</a>

{0} muss die Spalte sein, in welcher der Name der Datei steht.

Im cardo ist der Cache über das Dashboard zu leeren, wenn Änderungen am Maptip vorgenommen wurden!

 

Daten-Browser Pfad über Maptip öffnen

Im Maptip ist es möglich mittels JavaScript einen Ordner im Daten-Browser anzuzeigen. Im Maptip kann dazu folgendes notiert werden:

<a href='JavaScript:IduIT.Cardo4.Apps.FileBrowser.openAndNavigateTo("Rasterdateien","//Beispiel für Hilfe");'>Projektordner öffnen</a>

Rasterdateien: dies ist der Aliasname, welcher administrativ in den Einstellungen zum Daten-Browser für diesen Pfad hinterlegt wurde.

Hinweis: wird eine Pfadangabe im Alias genutzt, so müssen die Pfadangaben maskiert werden:

D:\\Testfiles\\Raster

D:\Testfiles\Raster\Beispiel für Hilfe: ist der relative Pfad zum Ordner im Daten-Browser. Alternativ kann natürlich auch hier eine Pfadangabe aus den Sachdaten genutzt werden (bspw. mit {1}).

Projektordner öffnen: ist der Linktitel, der im Maptip erscheint.

Daten-Browser Tabelle über Maptip öffnen

Mittels folgendem Link, kann auf eine DB Tabelle im Daten-Browser verlinkt werden. Mit Klick auf dem Link im Maptip wird die Sachdatenanzeige mit allen Datensätzen geöffnet.

DB_ALIAS: ist der Alias der DB

schema: der Schemaname

tabelle: der Tabellenname

Linkname: Linktitel der im Maptip angezeigt wird

 

<a href="#" onclick="IduIT.cardo.Core.Applications.AnyDatasource.AnyDataSourceApplication.

showTableDataByObjectIdentifier('dbdb://DB_ALIAS::schema.tabelle');">Linkname</a>

Maptip eines WMS Dienstes als separates Fenster öffnen? (cardo4)

Vorgehensweise zur Formatierung des Maptipergebnisses für WMS Dienste

Hinweis für den Administrator: Einstellung -WMS - Eigenschaften:
Parameter =>  wmsGetFeatureInfoFormatOrder: text/plain / text/html

Wird der Parameter wmsGetFeatureInfoFormatOrder gesetzt, so wird automatisch im Maptip folgender Link definiert:

 

Mit Klick auf den Link öffnet sich ein weiterer Tab mit dem Inhalt des Klickpunktes: (HTML)

 

CSS Datei im Maptip einbinden

Die Formatierung für den Maptip soll aus einer CSS Datei gelesen werden. Diese speichern Sie bitte im Projektordner unter IISVIRTUALDIR. Dort können Sie einen weiteren Unterordner anlegen, bpsw. ...\_IHRPROJECT\IISvirtualDir\css.

Die CSS Datei kann folgenden Inhalt haben:

p {
  background-color: red;
}

Das HTML im Maptip kann folgendermaßen definiert werden:

<link rel="stylesheet" href="/Project/css/NameDerCSSDatei.css?1">
<p> Bundesland: {0} </p>

Das ?1 hinter dem Link lädt die CSS Datei beim Aufruf neu, da das CSS im cardo4 gecacht wird. Diese Ergänzung ist zum Einrichten des Maptips hilfreich.

Maptip mit Link

Links auf Sachdatenspalten können Sie auch im Maptip notieren.

Ist die Sachdatenspalte leer, so gibt es im Moment nicht die Möglichkeit diese leeren Sachdatenspalten zu prüfen bzw. im Maptip nicht anzuzeigen. Die Umsetzung mittels Templates (siehe nächster Eintrag) ist noch nicht implementiert.

Sie könnten nur im Maptip auf die Sachdatenanzeige verweisen. Dort findet die Linkauswertung korrekt statt.

Auswertung von Templates im cardo Maptip

Templates in der Form:

<Tpl
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tpl="http://schemas.webs.idu.de/cardo3/templates"
xsi:noNamespaceSchemaLocation="http://webs.idu.de/xsdschemas/Cardo/Button/templates.xsd">
<!-- immer ausgeben ... -->
   <tpl:plain>Wert: {0}</tpl:plain>
   <tpl:if>
     <!-- Bedingung definieren -->
     <ButtonComparision xmlns="http://schemas.webs.idu.de/cardo3/Button">
       <SingleComparison compareBehavior="Default">
         <ColumnName>CellValue</ColumnName>
         <Is>202</Is>
       </SingleComparison>
     </ButtonComparision>
     <!-- wenn zutrifft ..-->
  ...

werden im cardo4 noch nicht ausgewertet.

 

WMS und Maptip

WMS und Maptip - Hintergrundinfos

Seitens der IDU wird es keine Unterstützung für WMS und Maptip geben.

In der Art und Weise, wie der Maptip intern funktioniert ist es technisch nicht möglich diesen korrekt abzufragen. Für die Maptip-Funktion muss die Datenquelle "strukturiert" und "abfragbar" sein.  

WMS GetFeatureInfo bietet nichts davon. Die einzige Abfrageform ist ein Punkt. Es ist allerdings nicht möglich, diesen Punkt mit absoluten geografischen Koordinaten anzugeben, sondern es muss ein virtuelles "Kartenbild" konstruiert und dann eine relative lokale Koordinate (Pixel) dieses Bildes angeben werden. Selbst wenn man hier eine Sonderbehandlung einführen würde. Die Antwort ist dann "irgendwas". Man kann sich meistens noch wünschen, ob HTML oder purer Text (siehe Parameter wmsGetFeatureInfoFormatOrder) geliefert werden soll.

Die Anzeige der Informationen im Maptip von cardo4, statt in einem neuen Browserfenster, ist schwer möglich, da besonders die HTML-Antworten das Potential haben, die ganze Webseite zu beeinträchtigen, in der sie eingebettet sind (CSS, JavaScripte). Korrekt aussehen tun sie im eingebetteten Zustand praktisch nie (hier auch wieder CSS-Konflikte). Die Textform kann man i.d.R. auch keinem Nutzer anbieten. I.d.R. kann der Aufrufer auch nicht erkennen, ob das GetFeatureInfo nun einen Treffer geliefert hat oder nicht. 

Hinweis zu WMS Maptips, wenn der WMS viele Layer enthält

Meldung, dass der Maptip nicht aufgerufen werden kann "Der Maptip für Ebene "... " konnte nicht abgerufen werden: SOURCE:iwan angeforderte Ressource https://... wurde nicht gefunden. Statuscode 404.

Für alle Layer wird ein GetFeature-Request abgesetzt. Dieser wird bei einem WMS mit sehr vielen Layern zu lang. Der GetFeature Request hat aber eine Zeichenlängenbegrenzung, welche die Fehlermeldung hervorruft.

Lösung: stellen Sie weniger Layer für diese WMS Dienst ein.

Wird das GetFeatureinfo geliefert, kommt es bei diesen Diensten vor, dass zu viele Ebenen in der HTML Ansicht gezeigt werden. Auch hier sollten Sie den WMS auf weniger Layer beschränken.

 

FeatureFormats für WMS Maptips

FeatureFormats müssen vom Dienst bereitgestellt werden. Weitere Infos zur Implementiertung.

application/json

(noch keine Beschreibung)

application/geo+json

Maptip für Biotope

Quelle: luis.sachsen.de/arcgis/services/natur/biotope_offenland_1994_2008/MapServer/WMSServer?request=GetCapabilities&service=WMS

 Explitzite Maptip-Defintion möglich

Anzeige bei falschen Datennamen:

 

application/geojson

s.o. geo+json

 

text/plain

Maptip für Biotope

Quelle: luis.sachsen.de/arcgis/services/natur/biotope_offenland_1994_2008/MapServer/WMSServer?request=GetCapabilities&service=WMS

 

text/html

Maptip für Biotope

Quelle: luis.sachsen.de/arcgis/services/natur/biotope_offenland_1994_2008/MapServer/WMSServer?request=GetCapabilities&service=WMS

Anzeige im Browser

Fehlermeldung bei der Maptip Definition "Der Index, basierend auf 0 (null),..."

Fehlermeldung: Der Maptip für Ebene XYZ konnte nicht abgerufen werden: Der Index, basierend auf 0 (null), muss größer als oder gleich NULL sein, und kleiner als die Größe der Argumentenliste.

Lösung: Überprüfen Sie in der Maptip Definition, ob der Index bei 0 beginnt und im Maptip auch enthalten ist. Wenn Sie bpsw. 3 Argumente (Land, Stadt, Straße) in der Argumentenliste notiert haben, so müssen diese als Index im Maptip wiederzufinden sein, beginnend bei 0:

Bsp. Maptip:

Land: {0} </br>

Stadt:{1} </br>

Straße: {2}

 
Meldung Maptip: "Der MapTip für Ebene Ebenenname (Lxx) konnte nicht abgerufen werden: SOURCE:iwan FetchERROR: ... "

Betrifft: Maptip soll für ein Objekt in der Karte angezeigt werden

Meldung: Der MapTip für Ebene Ebenenname (Lxx) konnte nicht abgerufen werden: SOURCE:iwan FetchERROR: GEOSRelatePattern: TopologyException: side location conflict at 447597.77779999998 5697198.9066996397

Ursache: die angeklickte Geometrie ist nicht valide, d.h. fehlerhaft.

Lösung: Geometrie korrigieren (bspw. bei einer Postgres DB mit der Funktion st_makevalid die Geometrie korrigieren)

---

Betrifft: Maptip soll für ein Objekt in der Karte angezeigt werden

Meldung: Der MapTip für die Ebene Ebenenname (Lxx) konnte nicht abgerufen werden: SOURCEiwan Fehler beim Verarbeiten des Headers. Statuscode 400

Ursache: Der Maptip wird auf einen WMS Dienst ausgeführt.

Lösung: Richten Sie beim Parameter wmsGetFeatureInfoFormatOrder: text/html ein