Iwan7 - Konfiguration

Die Konfiguration ist minimal. Der Port und das Basis-Verzeichnis wird beim Starten übergeben (entweder interaktiv oder als Dienst-Argument).

Folgende Parameter müssen angegeben werden:

-port: Die Portnummer, an der der Http Listener läuft (empfohlener Wert: 8287)

-baseDir: Das Basis-Verzeichnis für die (Projekt) Konfigurationsdateien

Globale Standard-Parameter

Im baseDir kann eine .iwan.config Datei angelegt werden. Dabei können einige Standardwerte vordefiniert werden. Bei der Datei handelt es sich um eine Json-Datei, die auch Kommentare enthalten darf.

Zur Laufzeit können diese Parameter durch Aufruf an /config modifiziert werden.

Wenn die Werte null sind (empfohlen), werden die "besten" Standardeinstellungen gesetzt. Diese können sich von Version zu Version unterscheiden.

{
    /*
    Trace-Level (TraceError)
    einer der Werte: 
       TraceNone
	   TraceWarning,
	   TraceError,
	   TraceInfo,
	   TraceDebug,
	   TraceDetail,
	   TraceDetailEx
    */
    
    "traceLevel": null,

    /*
    Zeichen-Modi (UseVectorQueue,RenderLayersParallel)
    eine Kombination der Wert:
        NoParallel
        RenderLayersParallel,
        UseVectorQueue,
        DebugRenderSkipVRendering
    */

    "renderMode":null,

    /*
    Optimierung für komplexe Polygone (true) (siehe ShapeFile)
    */
    
    "enableComplexPolyRenderCache":null,

    /*
    Grafik-Engine (Agge)
    einer der Werte:
        GdiPlus,
        Direct2d,
        Agge    
    */

    "renderEngine":null

    /*
    Objekt, mit Proxy-Einstellungen (*1)

     {
        proxyUri:"http://localhost:8888",
        useDefaultProxy:false,
        proxyBypassList:null,
        proxyCredentials:{
            "userName":"usr",
            "passWord":"\encrypted..."
           }
     }
    */

    "defaultProxy": null

    /*
    Liste mit Bounding-Boxes, die für das Schätzen von EPSG Codes verwendet wird.
    Wenn nicht angegeben, dann sind dies die Standardwerte: (siehe unten unter CRSEstimates):
    */
    "CRSEstimates":null

    /*
    Anzahl der Worker-Threads, der Standardwert sind 64
    Bei 0 entsprechend der CPU Zahl des Servers
    */
     "ThreadPoolSize":null
}

(*1) Die Proxy-Einstellungen werden derzeit noch nicht verwendet und sind für zukünftige Anwendungszwecke gedacht.

Projektspezifische Konfigurationen

Einige Konfigurationsparameter sind Projektspezifisch.

Projekte dienen der Isolation von Ebenen untereinander. Meist ist solch ein Projekt mit einer cardo Instanz assoziiert. Der Projektname kann/muss in jedem Request mit übergeben werden.

Die Projektdateien sind ebenfalls im baseDir zu finden. Der Name der Datei ist immer in der Form .config anzugeben.

Ein Sonderfall ist dabei die Datei $default.config.

Beim Starten des Servers werden alle *.config Dateien in baseDir eingelesen. Die so ermittelten Dateien definieren gleichzeitig die verfügbaren Projektnamen.

{
     "workingDir":null,
     "tempDir":null,
     "projectBBox":null
}
  • workingDir: Das Arbeitsverzeichnis, relative Pfadangaben werden zu diesem ausgewertet, wenn nicht angegeben, dann identisch mit baseDir

  • tempDir: Verzeichnis für temporäre Dateien, wenn nicht angegeben, dann wird workingDir/tempFiles angenommen.

  • projectBBox: Die Standard-Boundingbox für das jeweilige Projekt als Objekt in der Form {minx, "miny":number,"maxx":number,"maxy":number,"epsgCode":number} Geplant ist, beim Rendern den Pinsel-Ursprung auf die linke untere Ecke dieser Boundingbox auszurichten.

  • logonUserName,logonUserPassword: Ein Windows Benutzer-Account, der für die impersonisierung des Arbeits-Threads bei Aufrufen an dieses Project verwendet werden soll. Das Kennwort für den logonUserName, kann auch als EncryptedString angegeben werden.

nur in der $default.config:

Laden von Ebenen beim Serverstart

In Verbindung mit cardo ist diese Option nicht erforderlich, da cardo die Ebenen verwaltet und das Laden erledigt.

Beim Start des Dienstes wird im baseDir Verzeichnis nach Dateien gesucht, die die Ebenendefinitionen enthalten.

Der Name lautet LayerDef.json für das globale Projekt, bzw. LayerDef.{ProjectName}.json.

Die dort definierten Ebenen werden dann bei jedem Programmstart geladen.

Ein möglicher Einsatzzweck ist das Bereitstellen von Ebenentypen, die z.Z. in der cardo-Oberfläche nicht definiert werden können. Bspw. für die Definition eines Virtuellen Layer

Die Datei sollte UTF8 kodiert gespeichert sein und enthält ein Array der Ebenenbeschreibungen. Bsp.-Inhalt:

[
    {
    "STR": {
        "type": "Shapefile",
        "filename": "..\\strasse.shp"
       }
    },
    {
    "WEG": {
        "type": "Shapefile",
        "filename": "..\\wege.shp"
       }
    }
]

Siehe auch die Liste der Datenquellen mit den Beschreibungen. Für das Testen der Einstellungen verwende die UI.


Zuletzt geändert: 20.09.2024 07:22:06 (erstmals erstellt 01.02.2018)