Wie beschleunige ich Dynamic Map-Dienste?

16

Ich arbeite an einer ESRI Flex-basierten Anwendung, die Daten von einem dynamischen Kartendienst anzeigt. Es muss dynamisch sein, da der Endbenutzer die Option zum Aktivieren und Deaktivieren von Layern haben sollte. Dies ist nur mit Dynamic Map-Diensten und nicht mit Tiled Map-Diensten möglich.

Welche Schritte können unternommen werden, um die Geschwindigkeit zu erhöhen, mit der Kacheln vom Server an den Client gesendet werden?

Ich sehe mir die dynamischen Karten von ESRI an, die in ArcGIS online verfügbar sind, und sie sind recht schnell. Hast du eine Idee, wie sie so gute Leistung bringen?

Devdatta Tengshe
quelle
4
Sie können für jeden Layer separate Karten-Services mit Kacheln verwenden und diese anschließend aktivieren oder deaktivieren.
Britt Wescott
@Seth: Ich bin zum selben Schluss gekommen wie du. Mit der Anzahl der Ebenen, die wir verwenden, und der erwarteten Anzahl gleichzeitiger Benutzer erzielen separate gekachelte Karten-Services die beste Leistung.
Devdatta Tengshe
Wir haben das gleiche Problem. Ich habe eine Erweiterungsanforderung an ESRI gesendet, um Unterstützung für die parallele Ausführung der Layer in dynamischen Kartendiensten zu erhalten. Ich denke, dies würde die Leistung erheblich steigern.
MathiasWestin

Antworten:

11

Möglicherweise haben Sie dies bereits getan, aber es ist erwähnenswert, wenn andere mitkommen. Wenn Sie in ArcMap einige Zeit mit der Symbolleiste zum Veröffentlichen von Kartendiensten verbringen, kann dies die Leistung eines dynamischen Kartendienstes erheblich verbessern. Das Werkzeug Karte analysieren eignet sich gut zum Auffinden von Problemen, die die Kartendienste verlangsamen. Das Speichern und Veröffentlichen als Karten-Service-Definition (MSD) anstelle einer MXD ermöglicht außerdem erhebliche Leistungssteigerungen.

Einige Links:

Brenner256
quelle
Während andere Antworten gültige Punkte ansprechen, hatte ich diese bereits berücksichtigt. Das Seminar, auf das Sie verlinkt haben, lieferte mir einige Informationen, die mir nicht bekannt waren, zusätzlich zu allen von anderen vorgeschlagenen Lösungen. Daher werde ich Ihre Antwort als akzeptiert markieren, da Ihre Links mehr Punkte und eine ganzheitliche Lösung des Problems bieten.
Devdatta Tengshe
14

Ich würde davon ausgehen, dass Sie nur für einen Live-Webkartendienst möchten, dass Ihr Kartenserver so wenig wie möglich "denkt". Mit anderen Worten, berechen Sie alles vor, was Sie können.

  1. Stellen Sie alle Ihre Daten in den gleichen SRS, damit keine Projektion "on-the-fly" stattfindet.
  2. Erstellen Sie räumliche Indizes für Ihre Daten.
  3. Erstellen Sie verallgemeinerte Übersichten Ihrer Daten und verwenden Sie die Skalenabhängigkeit, um die entsprechende Ebene für eine bestimmte Skala auszuwählen. (ZB macht es keinen Sinn, eine Poly mit 10.000 Eckpunkten zu zeichnen, wenn das Ausgabebild nur 250 x 250 Pixel groß ist.)
DavidF
quelle
8

Ein paar andere Punkte, die zur Antwort von DavidF hinzugefügt werden sollten:

  • Wenn Sie können, stellen Sie sicher, dass Sie einen optimierten (MSD) -basierten Dienst verwenden. Sie zeichnen schneller als ein regulärer Dienst (MXD), und beim Erstellen des MSD-Diensts werden einige Analysen auf Ihrer Karte ausgeführt, die Probleme aufdecken können, die zu langsamen Zeichnungszeiten führen können.

  • Verwenden Sie nach Möglichkeit vereinfachte Renderer. Vermeiden Sie komplexe Zeichenvorgänge wie Dithering, Farbverläufe und Rastermarkierungen.

  • Verwenden Sie die Mindestmenge an Daten, die Ihren Geschäftsanforderungen entspricht. Wenn Ihre Daten Attribute enthalten, die nicht zum Zeichnen der Karte verwendet werden, entfernen Sie diese. Selbst wenn Sie über die Daten Bericht erstatten müssen, können Sie diese bei Bedarf vom Client beziehen (obwohl dies zusätzlichen Programmieraufwand bedeutet).

  • Aktivieren Sie die ausführliche Protokollierung für Ihre Karte und überprüfen Sie die Protokolldateien, um festzustellen, was ArcGIS Server beim Zeichnen einer Karte tut. Anweisungen zum Konfigurieren der ausführlichen Protokollierung finden Sie auf der Blog-Site von Esri . Dies gilt für Version 9.3, der Konfigurationsspeicherort ist jedoch für ArcGIS 10 derselbe.

Denken Sie daran, dass das Stimmen ein sehr spezifischer Vorgang ist, der sehr subjektiv und spezifisch für das ist, was Sie tun. Das Vergleichen der Leistung Ihrer eigenen Karte mit sich selbst ist wertvoller als das Vergleichen Ihrer Leistung mit der Leistung einer anderen Person.

Wanderer
quelle
Ich habe die ersten drei Punkte angesprochen, aber können Sie etwas mehr Licht auf die ausführliche Protokollierung für die Karte werfen? Ich habe versucht, dies herauszufinden, aber die einzigen Links, die ich finde, beziehen sich auf ArcIMS-Services.
Devdatta Tengshe
Ich habe einen Link zu Esris Blog über die ArcGIS Server-Protokollierung hinzugefügt.
mwalker