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
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
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.
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 EnglishLanguage=de
für DeutschLanguage=fr
für FrancaiseLanguage=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
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
%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.
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
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"
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
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.
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.