Erweiterte Druckfunktionen für Webkarten

Der PrintingTools-Service und die zugehörigen Widgets für Client-Druck in den ArcGIS-Web-APIs sind zum Standarddrucken auf kleinen Papierformaten vorgesehen. Wenn Sie Karten in einem Format darstellen möchten, das größer ist als 11 x 17 Zoll, sollten Sie die Verwendung eines Python-Skriptes erwägen, um die Webkarte in ein Kartendokument (MXD) zu konvertieren. Es gibt eine Vielzahl von arcpy.mapping-Funktionen, mit denen eine MXD-Datei in unterschiedliche Formate zum Drucken auf großen Papierformaten oder zum Einbeziehen in Kartenbücher exportiert werden können.

Konvertieren einer Webkarte in ein Kartendokument mit Python

Das Drucken von Webkarten in ArcGIS hängt davon ab, ob die Webkarte im Format JSON bzw. JavaScript Object Notation dargestellt werden kann. Esri hat die ExportWebMap-Spezifikation erstellt, anhand derer definiert wird, wie eine Webkarte im JSON-Format mit Ausdehnungs- und Layer-Informationen zum Drucken strukturiert werden kann. Die ArcGIS-Web-APIs können die aktuelle Webkarte lesen und die JSON-Datei für Sie erstellen. In einem einfachen Druckszenario liest der PrintingTools-Service von ArcGIS Server die JSON-Datei und gibt ein Kartenbild zurück, das gedruckt werden kann.

In erweiterten Druckszenarien muss die JSON-Datei der Webkarte nicht an den PrintingTools-Service gesendet werden. Stattdessen können Sie die JSON-Datei in eine MXD-Datei konvertieren. Verwenden Sie dazu die Python-Funktion "arcpy.mapping.ConvertWebMapToMapDocument". Sie können die resultierende MXD in anderen arcpy.mapping-Funktionen wie ExportToPDF oder ExportToPNG verwenden, um die Karten für den Druckvorgang vorzubereiten. Sie können die Karte vor dem Drucken sogar einem Kartenbuch hinzufügen oder einige der gekachelten Layer auf der Karte durch eigene Vektor-Layer austauschen, um ein Bild mit höherer Auflösung zu erhalten. Diese Techniken werden im Referenzthema ConvertWebMapToMapDocument beschrieben.

Abrufen von Skripten aus dem Web

Wie verwenden Sie ein arcpy.mapping-Skript in Ihrer Webanwendung, nachdem Sie es zum Drucken geschrieben haben? ArcGIS Server bietet Geoverarbeitungs-Services, die Ihnen die Möglichkeit bieten, Skripte, Werkzeuge und Modelle als Web-Services bereitzustellen. Hierdurch können Sie leicht über ArcGIS-Web-APIs abgerufen werden.

Nachdem Sie ein Python-Skript geschrieben haben, das die Karte für den Druck vorbereitet, können Sie es in ein Geoverarbeitungsskriptwerkzeug einkapseln. Führen Sie einen Testlauf für das Werkzeug durch und veröffentlichen Sie das Ergebnis als ArcGIS Server-Geoverarbeitungs-Service. Die ArcGIS-Web-APIs verfügen über Klassen, mit deren Hilfe Sie diese Services, wie beispielsweise die Geoprocessor-Klasse in ArcGIS API for JavaScript, aufrufen können.

Die einfachste Vorgehensweise beim Entwickeln dieses Typs von Geoverarbeitungsskriptwerkzeug besteht darin, sicherzustellen, dass es die gleichen Parameter wie der Standard-PrintingTools-Service oder eine Teilmenge dieses Service bereitstellt. Der Eingabe-JSON-Parameter ist der erforderliche Mindestparameter. Wenn Sie den Service auf diese Weise entwerfen, können die Druck-Widgets der ArcGIS Web Mapping APIs und Web Viewer den Service verwenden, ohne dass Sie benutzerdefinierten Code bereitstellen müssen. Wenn Sie dem Werkzeug jedoch Parameter hinzufügen, die nicht in PrintingTools enthalten sind, sind die Druck-Widgets von Esri nicht mit dem Werkzeug kompatibel und Sie müssen eigenen Code oder ein eigenes Widget schreiben, um das Werkzeug aufrufen zu können.

9/23/2013