Zum Hauptinhalt springen
Version: Preview

Vorbereitung MapServer Karten

Warnung

Diese Beschreibung ist in Bearbeitung und gilt nur Versionen höher 25.2.120

Vorraussetzungen

  • MapServer Karten müssen aus dem Darstellungsmodell erzeugt bzw. synchronisiert worden sein.
  • Die Map Dateien müssen im AppBuilder vorhanden sein.
  • Händisch erzeugte MapServer Karten müssen vorab händisch in der MapServer Map Datei konfiguriert werden.

TileServer Konfiguration

MapServer Karten werden im TileServer mittels WMS eingebunden.

Bei "Renderer.x.MapServerConnection" muss der Name der MapServer Verbindung stehen.
Dieser steht unter "Karten->MapServer Karten".
In Beispiel Screenshot ist der Name "DEFAULT"

Bei "Renderer.x.Maps.x.MapServerMapName" muss der Name der Karte eingetragen.
Dieser steht unter "Karten->MapServer Karten->Verbindungsname".
In Beispiel Screenshot ist der Name "LASVEGAS"

Beispiel:

#MapServer Maps
Renderer.3.Type=WMS
Renderer.3.URL=http://localhost/mapserver/mapserv.exe
Renderer.3.MapServerConnection=DEFAULT

#MapServer Map - Las Vegas
Renderer.3.Maps.1.Name=LasVegas_MapServer
Renderer.3.Maps.1.TileSystem=CustomBing
Renderer.3.Maps.1.MapRequestOptions=&map=C:\\MapServer\\maps\\LASVEGAS.map
Renderer.3.Maps.1.MapServerMapName=LASVEGAS
Renderer.3.Maps.1.Layers=STREET,BUS_ROUTE
Renderer.3.Maps.1.Styles=default
Renderer.3.Maps.1.RefSysInfoFile=http://localhost/MumGeoData/RefSysInfo/RefSysInfoLasVegas26911.xml
Renderer.3.Maps.1.SRS=EPSG:26911
Renderer.3.Maps.1.ValidZoomLevels=1-21
Renderer.3.Maps.1.PreRenderZoomLevels=1-16
Renderer.3.Maps.1.BufferNumberOfTiles=1

Wenn Sie im AppBuilder bei "Karten Server -> MapServer" mehr als eine MapServer Verbindung haben dann muss in der TileServer Konfiguration bei "Renderer.x.MapServerConnection" der Name der "MapServer Verbindung" zwingend angegeben werden. Wenn es nur eine Verbdiung gibt kann diese entfallen.

Warnung

Änderungen an der Tile Server Konfiguration greifen im Tile Updater erst wenn im Tile Updater die Karte aktualisiert wurde.

Mit dem Darstellungsmodel erzeugte (synchronisieren) Karten Dateien

Wenn die Karte mittels Darstellungsmodell (synchronisieren) erzeugt wurde, muss einmalig das Synchronisieren nochmals für die Karte ausgeführt werden. Diese fügt der Datei das Schlüsselwort "#MAPEDIT_TILEUPDATER_COLUMNS" hinzu. In diesem ist definiert welche Spalten der Layer verwendet.

Händisch erzeugte Kartendateien

Wurde die Karte selbst händisch aufgesetzt müssen "händische" Nachbearbeitungen geschehen damit die Karte mit dem Tile Updater verwendet werden kann.

Bei jedem Layer müssen diese drei Schlüsselwörter hinzugefügt werden

  • #MAPEDIT_CONNECTION_NAME
    Hier muss der Name der Datenbank definiert werden so wie sie im AppBuilder heisst.
  • #MAPEDIT_TABLE_NAME
    Der Name der Tabelle die der Layer verwendet
  • #MAPEDIT_TILEUPDATER_COLUMNS
    Alle verwendeten Spalten durch Komma getrennt, ohne Leerzeichen.
    Wenn Änderungen an den Daten diesen Spalten durch den Endanwender geschehen dann aktualisert der Tile Updater die Kacheln.

Beispiel:

Mit dem Menüpunkt "Schlüsselwörter für TileUpdater hinzufügen" im Map Datei Editor können diese Schlüsselwörter heuristisch hinzugefügt werden.

Hierbei muss jeder vom Progamm hinzugefügte Eintrag nochmal vom Anwender auf Richtigkeit geprüft und ggf korrigiert oder erweitert werden.

Tip

Statt bei "Layers" alle Ebenen einzeln auszulisten kann hier laut MapServer Dokumentation auch der Name der "Datei" ohne Pfad und Ednung angegeben werden udm alle Ebenen zurück zu bekommen.

Dies muss jedoch je Karte auf Funktionieren getestet werden.

Beispiel:

Renderer.3.Maps.1.Name=LasVegas_MapServer
Renderer.3.Maps.1.TileSystem=CustomBing
Renderer.3.Maps.1.MapRequestOptions=&map=C:\\MapServer\\maps\\LASVEGAS.map
Renderer.3.Maps.1.MapServerMapName=LASVEGAS
Renderer.3.Maps.1.Layers=LASVEGAS

Parameter "Latitude" bei Mobile Karten (Optional)

Beim Mobile Karten gibt es kein RefSysInfoFile Angabe.
Damit der Tile Updater die Masstabsbereiche in Zoomlevel umrechnen kann benötigt das Programm den groben Latitude Wert des Gebietes.

Wird kein Wert angegeben verwendet das Programm den Latitude Wert 50.

Dieser Wert entspricht grob der Lage von Europa (Deutschland,Schweiz,Frankreich) und Canada etc. Wenn Sie sich in anderen Ländern befinden sollten Sie hier einen Wert angeben.

Beispiel für Latitude Wert 36.17 (Las Vegas)

Renderer.2.Maps.2.Name=LasVegas_MapGuide2
Renderer.2.Maps.2.MapDefinition=Library://LasVegas/MapLasVegas2.MapDefinition
Renderer.2.Maps.2.TileSystem=Bing
Renderer.2.Maps.2.ValidZoomLevels=1-18
Renderer.2.Maps.2.PreRenderZoomLevels=1-16
Renderer.2.Maps.2.Latitude=36.17
Bitte beachten

Die Option greift nur wenn es keinen Parameter "RefSysInfoFile" gibt

Parameter "LevelMode" (Optional)

Mit dem Parameter "LevelMode" kann der Zoom Level der einzelnen Layer für den TileUpdater gesteuert werden.

Der Parameter kann folgende Werte haben:

OFF = Es werden für alle Layer die Werte von ValidZoomLevels/PreRenderZoomLevels für die Zoom Level verwendet

ON = Die Zoom Level Werte werden aus dem Masstabsbereich errechnet. (Dies ist die Standard Einstellung)

Zahlenwert = Die Zahl erweitert den aus dem Masstabsbereich errechnet Zoom Level um plus-minus die Zahl.
D.h. wird die Zahl 2 angegeben, dann wird aus dem errechneten minimum Zoom Level 15 der Wert 13, aus dem errechneten maximum Zoom Level 18 wird 20. Hierbei werden die in ValidZoomLevels/PreRenderZoomLevels angegebenen Werte jedoch nicht über oder unterschritten.
Wenn Sie z.B. Probleme haben das die berechneten ZoomLevel nicht 100% genau passen, dann kann hiermit eine Toleranz angegeben werden.

Beispiel:

Renderer.2.Maps.2.Name=LasVegas_MapGuide2
Renderer.2.Maps.2.MapDefinition=Library://LasVegas/MapLasVegas2.MapDefinition
Renderer.2.Maps.2.TileSystem=Bing
Renderer.2.Maps.2.ValidZoomLevels=1-18
Renderer.2.Maps.2.PreRenderZoomLevels=1-16
Renderer.2.Maps.2.LevelMode=OFF

Beispiel:

Renderer.2.Maps.2.Name=LasVegas_MapGuide2
Renderer.2.Maps.2.MapDefinition=Library://LasVegas/MapLasVegas2.MapDefinition
Renderer.2.Maps.2.TileSystem=Bing
Renderer.2.Maps.2.ValidZoomLevels=1-18
Renderer.2.Maps.2.PreRenderZoomLevels=1-16
Renderer.2.Maps.2.LevelMode=2