Zum Hauptinhalt springen

Starten per URL Parameter

Der Aufruf von MapEdit Desktop kann über Parameter gesteuert werden. Das ist hilfreich, um z.B. von anderen Programmen aus die Anwendung automatisiert zu starten und Informationen (Karte, Position, Sachdaten) anzuzeigen.

Allgemeines Beispiel zum Aufruf per URL über diese mögliche Varianten:

Über die Befehlszeile: "\\MUM-THIL-NB2\MapEdit\MapEditStarter\MapEdit.exe" Username=THOMAS.HILLER@MUM.DE~Password=12345

Über die MapEdit.RemoteControl.exe: mapeditdesktop://Execute?Username=THOMAS.HILLER@MUM.DE&Password=12345

Über die MapEdit.RemoteControl.Listener.exe: http://localhost:60026/mum.geo.services/RemoteControl.html?Username=THOMAS.HILLER@MUM.DE&Password=12345

Die letzten beiden Beispiele verwenden die Zusatzprogramme MapEdit.RemoteControl.exe oder MapEdit.RemoteControl.Listener.exe. Hierzu gibt es einen separaten Artikel, der die Unterschiede und Möglichkeiten beschreibt.

Ohne Parameter mit Installation für den aktiven Benutzer https://SERVERNAME/Mum.Geo.Services/GetUpgradePackage.ashx

Basis Parameter

Achtung

Nach dem ? darf kein Leerzeichen und nach dem " (erstes Beispiel oben Befehlszeile) muss eines vorhanden sein.

Wird MapEdit Desktop nicht über einen Browser aufgerufen, sondern über ein Programm (z.B. AutoCAD), dann müssen diese Parameter statt mit & durch ~ getrennt werden.

Username und Password

Beim Benutzernamen ist die Groß/Kleinschreibung nicht relevant, allerdings muss diese beim Passwort und allen anderen Parametern beachtet werden.

Beispiele:

Username=Thomas.Hiller@mum.de&Password=Geheim%21

Username=THOMAS.HILLER@MuM.de&Password=NULL
Achtung

Alle Werte hinter einem Parameter und dessen = müssen URL-Endcoded sein. Dies gilt generell für alle Parameter. Dh. wenn als Wert z.B. ein Leerzeichen oder ein & und ~ übergeben werden sollen, müssen diese als URL codieren. Siehe auch Beispiele bei Filter.

Info

Wird kein Kennwort vergeben, dann muss in der URL bei Password NULL angeben werden. Der Benutzer muss also sein Passwort eingeben und anschließend wird MapEdit mit allen anderen Parameterwerten gestartet.

Project (optional)

Es kann zudem der Projektname übergeben werden: Username=THOMAS.HILLER@MUM.DE&Password=Geheim%21&Project=GIS

Sprache (optional)

Es kann per URL auch die Sprache eingestellt werden.

  • Language=en für English
  • Language=de für Deutsch
  • Language=fr für Francaise
  • Language=it für Italiano

Beispiel: mapeditdesktop://Execute?Username=THOMAS.HILLER@MUM.DE&Password=12345&Project=GIS&Language=de

Tooltips (optional)

Mit diesem Parameter kann man die Tooltipps automatisch ein-/auschalten.

Tooltips=On bzw Tooltips=Off

Beispiele:

Username=THOMAS.HILLER@MUM.DE&Password=Geheim%21&Project=GIS&Tooltips=On
Command=Highlight&ConnectionName=STROM&TableName=EL_POINT&Key=101&ZoomLevel=18&Tooltips=Off

ActiveDirectory (optional)

Damit wird geschaltet ob Active Directory dh. die Windows Benutzerverwaltung und Authentifizierung benutzt wird. (siehe auch Starten von MapEdit)

Beispiel: ActiveDirectory=1

In der MapEdit.ini kann dieser Parameter auch gesetzt werden. Sofern er dort vorhanden ist, muss dieser als Parameter nicht nochmals gesetzt werden. Denkbar wäre eben nur für parametrisierte Zugriffe diese Option zu nutzen.

Weitere Parameter

Es gibt derzeit fünf verschiedene Kommandos (command) welche unterschiedliche Funktionen bereitstellen. Diese haben jeweils unterschiedliche Parameter, können bzw. müssen mit den Basis Parametern kombiniert werden:

  • Highlight
  • OpenDialog
  • Switchlayer
  • Zoom
  • Custom
Achtung

Man kann nicht mehrere Kommandos innerhalb des gleichen Aufrufs angeben. Also man kann nicht z.B. OpenDialog und SwitchLayer miteinander kombinieren.

Command=Highlight

Um nach dem Start ein bestimmtes Objekt in der Karte zu markieren kann das Kommando Highlight verwendet werden. Hierbei müssen auch noch die anderen Parameter ConnectionName, TableName, Key und ZoomLevel konfiguriert werden.

Beispiel:

Command=Highlight&ConnectionName=STROM&TableName=EL_POINT&Key=101

ConnectionName

Hier wird der Name der Datenbankverbindung angegeben. Diese muss innerhalb des Projektes vorhanden sein.

TableName

Hier wird der Name der Tabelle/View/Synonym angegeben. Diese muss in der definierten Datenbankverbindung vorhanden sein.

Key

Der Key ist ein numerischer Wert welcher sich auf die Spalte FID der Tabelle bezieht. Wenn kein KeyColumnName als Parameter gesetzt ist, wird erwartet das die Tabelle/View eine Spalte FID hat.

Beispiel: Key=101

KeyColumnName (optional)

Per Default ist der KeyColumnName auf FID gesetzt und muss nicht angegeben werden. Siehe auch Parameter Key. Wenn eine andere Schüsselspalte verwendet werden soll muss dieser Parameter und Key verwendet werden.

Beispiel:

KeyColumnName=SAP_ID&Key=12345

Filter (optional)

Wird dieser Parameter verwendet und kein nummerischer Wert als Filter übergeben, müssen diese encodiert sein.

Beispiel:

Filter=FID%3D101

Beispiel von oben anstatt Key mit Filter: Command=Highlight&ConnectionName=STROM&TableName=EL_POINT&Filter=FID%3D101

Anmerkung

%3D steht für das Gleichzeichen (URL encoding) und FID%3D101 bedeutet FID=101. Leerzeichen, & und ~, die als Wert übergeben werden, muss man URL codieren. Falls nicht bekannt, hierzu gibt es eine Webseite welche die Zeichen automatisch umwandelt bzw. codiert anzeigt.

https://www.urlencoder.org/

Weitere Beispiele:

&Filter=FLURSTUECKSKENNZEICHEN IN ('096617___020920006__','096617___020920007__','096617___020920008__')

&Filter=FLURSTUECKSKENNZEICHEN%3D'096617___020920006__' OR FLURSTUECKSKENNZEICHEN%3D'096617___020920008__'

OpenDialog (optional)

Beim Kommando Highlight kann man optional auch noch ein Formular öffnen lassen.

Beispiel:

OpenDialog=STROM.EL_LINK_BOX.AUSKUNFT
Anmerkung

Nicht zu verwechseln mit dem Kommando OpenDialog. Dies hier ist ein Parameter, welcher beim Kommando Highlight verwendet werden kann.

ZoomLevel (optional)

Beispiel:

Command=Highlight&ConnectionName=STROM&TableName=EL_POINT&Filter=FID%3D101&ZoomLevel=18

Wenn nicht angegeben nimmt es den Default Zoom Level des Projektes bzw. der Einstellungen (Settings) in den Optionen des Projektes.

Ab Version 23.2.136

Wird bei ZoomLevel=Auto oder ZoomLevel=-1 angegeben, dann wird auf die Ausdehnung des Objektes (der Objekte) gezoomt.

Beispiel:

Command=Highlight&ConnectionName=XRT_LASVEGAS&TableName=PARK&Key=3788120&ZoomLevel=Auto

Ist das Objekt ein einzelnes Objekt vom Typ Objekt, dann wird auf den Default Zoom Level gezoomt.

Wenn die Ausdehnung nicht in die Min-Max Zoom Level der Karteneinstellung passt (sprich das Objekt zu gross ist) dann kann ggf nicht auf die Ausdeshnung gezoomt werden.

SwitchLayer On/Off (optional)

Beispiel:

SwitchLayersOn=Basis/Luftbilder
und/oder
SwitchLayersOff=Basis/OpenStreetmap

Mehr Hinweise siehe auch "Command=SwitchLayer"

Anmerkung

Die Syntax zum setzen der Layer/Kartenamen ist wie beim Kommando SwitchLayer. (siehe unten)

Command=OpenDialog

Hiermit kann man ein Formular öffnen. Hierzu müssen die Parameter DialogName und Filter konfiguriert werden.

Beispiel:

Command=OpenDialog&DialogName=STROM.EL_LINK_BOX.AUSKUNFT&Filter=FID%3D101
Info

Hierbei muss zwischen Tabelle und Formularname ein . gesetzt sein. Wenn es für die Tabelle mehrere unterschiedliche Formulare gibt, muss der Formularname noch angegeben werden. (hier im Beispiel AUSKUNFT)

Sowie die Tabelle bzw. das Formular muss natürlich in der Datenbankverbindung vorhanden sein.

In dem Beispiel oben wird dann direkt auf das Objekt mit der FID 101 im Formular gefiltert.

http://localhost:60026/Mum.Geo.Services/RemoteControl.html?Command=OpenDialog&DialogName=ALKIS.AX_Flurstueck&Filter=FLURSTUECKSKENNZEICHEN%3D'096617___020920006__'

Beispiel als URL mit der RemoteControl Variante um ein bestimmtes Flurstück und dessen Formular aufzurufen:

Command=SwitchLayer

Mit diesem Parameter kann man Layer bzw. Karten beim Aufruf direkt ein/ausschalten.

Beispiel:

Username=Feuerwehr&Password=feuer&Project=GIS&Command=SwitchLayer&Off=Basis/Luftbilder|Basis/Vermessungskarte&On=Basis/OpenStreetMap|Thema/Feuerwehrplan

Hinter Parameter SwitchLayer gibt es die Werte Off bzw. On und hinter diesen müssen die aus/einzuschaltenden Layer angeben werden. Es kann auch nur einer von beiden genutzt werden. Der Layername entspricht dem angezeigtem Text in der Kartenverwaltung des Projektes.

Info

Mehrere Layer/Karten müssen mit dem Pipe-Zeichen (|) getrennt werden. Wenn der Layer in einem Unterorder liegt dann müssen alle Zweige der Gruppen innerhalb der Kartenverwaltung durch ein / getrennt angegeben werden.

Um den vollen Layer Namen herauszufinden öffnen Sie das "Log" Fenster und schalten Sie den gewünschten Layer ein oder aus. Im "Log" Fenster sehen Sie dann einen Eintrag mit dem vollen Layernamen.

Beispiel: Change Layer 'MAPGUIDE\Bus\Bus Stops' to OFF Ändern Sie die "\" Zeichen in "/" Zeichen um.

Command=Zoom

Mit diesem Kommando kann man den zu einer definierten Koordinate/Position in der Karte navigieren. Entweder über Zoomfaktor + Koordinate oder ein Rechteck. Hierbei sind die Parameter Scale, x, y, xmin, xmax, ymin, ymax und ShowPin (optional bei Position) zulässig.

Beispiel Position: Command=Zoom&Scale=16&x=3434450&y=5794724

Mit der Option ShowPin (Marker): Command=Zoom&ShowPin=True&Scale=16&x=3434450&y=5794724

Beispiel mit einem rechteckigen Bereich: Command=Zoom&xmin=3434000&ymin=5794000&xmax=3435000&ymax=5795000

Neben dem lokalen Koordinatensystem ist auch ein Aufruf mit WGS84 Koordinaten möglich:

Command=Zoom&ShowPin=true&Scale=14&lat=52.303195&lon=8.108761

Command=Custom

Mit diesem Kommando können Anwendungsentwickler eigene Parameter in Ihren API-Plugins oder Scripts programmieren. Dabei muss der Parameter CustomCommand gesetzt werden und wie bei den anderen Parametern oben beschrieben auch die key/value-Werte übergeben werden.

Beispiel:

Command=Custom&CustomCommand=MeinBefehlsName&Parameter1=4711&Parameter2='Stuttgart'

Der Entwickler kann dann den Event "Application.ExecuteCustomUrlAction" in der MapEdit API nutzen um die eigenen Commands abzufangen.