Vorbereitung MapServer Karten
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.
Ä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
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