Wie viele Ebenen sollte ein MapService enthalten - was sind die Kompromisse?

9

Beim Einrichten von MapServices für ArcGIS wird häufig ein mxd mit vielen Ebenen angezeigt, der zum Veröffentlichen aufgefordert wird.

Sollte ich mehr Mapservices mit jeweils weniger Layern oder weniger Mapservices mit jeweils mehr Layern haben?

Was sind die Kompromisse?

Kirk Kuykendall
quelle

Antworten:

5

Kartendienste sind ziemlich teuer. Sie erfordern mindestens 1 ArcSOC-Prozess, um immer ausgeführt zu werden und immer Speicher zu verbrauchen (60 - 100 MB / Stück auf meiner Box - nicht gerade unbedeutend). Windows hat auch einen begrenzten Desktop-Heap, der beim Starten vieler Prozesse problematisch sein kann. Ich habe häufig gesehen, dass Clients die Route "Lasst uns weiterhin Kartendienste hinzufügen" durchlaufen, nur um herauszufinden, dass sie schnell die Spitze dessen erreichen, was ihr Server unterstützen kann. Jeder Kartendienst würde auch seine eigenen Datenbankverbindungen erfordern, was möglicherweise wichtig ist.

Ich würde annehmen, dass es auch Leistungseinbußen bei einer großen Anzahl von Schichten in einem einzelnen Dienst gibt. Ich habe keine Informationen darüber, aber ich kann mir nicht vorstellen, dass es so teuer ist wie zusätzliche Kartendienste.

Brandon Copeland
quelle
4

Bei der Veröffentlichung eines Dienstes ist es immer gut, die Zielgruppe und ihre Zwecke in der Karte zu berücksichtigen. Benötigen sie eine schnelle Karte? Benötigen sie eine genaue Karte? Eine hübsche? Wollen sie Dinge aus dem Weg wischen? Werden sie überall darauf kritzeln?

Wenn Ihre Ebenen mehrere unterschiedliche Datenquellen haben, kann das Gruppieren der Ebenen, die aus ähnlichen Datenquellen stammen (entweder genau dieselbe oder dieselbe Projektion oder dieselbe Durchschnittsgeschwindigkeit), gut funktionieren. Dann warten Sie nicht darauf, dass die langsamste Ebene geladen wird, um Ihr gesamtes Kartenbild zu erhalten.

Wenn es wahrscheinlich ist, dass Ihre Benutzer einen bestimmten Geschäftsbedarf für eine Reihe von Ebenen haben, ist es praktisch, den Dienst deaktivieren oder ausblenden zu können. Es ist viel einfacher, ein ganzes Kartenbild mit 50% Transparenz auf dem Client zu zeichnen, als den Server dazu zu bringen, es auf diese Weise zu malen.

Wenn Beschriftung und Rendering sehr wichtig sind, funktionieren weniger Dienste mit mehr Ebenen wahrscheinlich besser. Wenn mehrere Services ihre eigenen Labels rendern und dann zusammensetzen, führt dies zu mehr Labelkollisionen als ein einzelner Service mit vielen Ebenen, da ArcGIS Server nicht in der Lage ist, zu "planen", wo jedes Label in den verschiedenen Services abgelegt wird.

Wenn Sie mit halbtransparenten Polygonen arbeiten, ist es für das Zusammensetzen der Bilder besser, alle in einem Dienst zu haben, insbesondere wenn Sie auch mit einer Fotoebene zeichnen, bei der die JPEG-Komprimierung hilfreich ist.

Walker
quelle
2
Ich würde dieser Liste Sicherheit hinzufügen. Die ArcGIS Server-Sicherheit wird auf Serviceebene beendet. Wenn Sie Sicherheit auf Ebenenebene benötigen, müssen Sie Ihre Ebenen in viele Kartendienste aufteilen.
Ryan Taylor
0

Gruppieren Sie die fcs nach Möglichkeit in Untertypen, die die Überlastung des Servers verringern und die Möglichkeit bieten, weniger fc in einem Kartendienst zu verwalten.

Ramakrishna Billakanti
quelle