Please activate JavaScript!
Please install Adobe Flash Player, click here for download

arcAKTUELL 2.2015 - Städte und Dörfer

TIPPS UND TRICKS Für Anwender Ein einfaches Szenario: Sie möchten Daten aus einer Datei (beispielswei- se einem Shapefile) in einem Geoprocessing-Dienst verarbeiten. Doch wie gehen Sie dabei am sinnvollsten vor? Hier bietet es sich an, die Upload Operation zu nutzen, mit der jeder GP-Dienst ausgestattet ist. Nicht nur Geoprocessing-Dienste bringen diese Standard Operation mit, sondern ein Großteil der ArcGIS Dienste: http://resources.arcgis.com/en/help/rest/apiref/uploads.html Diese Onboard-Lösung ist standardmäßig für Dateien bis 2 GB Größe gerüstet. Dies lässt sich anpassen, ebenso wie die erlaubten Datei­ formate: http://resources.arcgis.com/en/help/main/10.2/index. html#//0057000000m1000000. Beim Publizieren eines ArcGIS GP Dienstes haben Sie die Möglichkeit, die Upload Operation als Option zu aktivieren. Damit nimmt der Dienst dann Dateien entgegen. Nach erfolgtem Upload erhält man eine Item-ID als Referenz zur hoch- geladenen Datei, diese lässt sich dann an den GP-Dienst über­geben. Folgender JavaScript-Code zeigt, wie das aussehen könnte: Hier wird in der Funktion „upload“ in Zeile 11ff. die eigentliche Datei hochgeladen, sobald eine Aktion „uploadForm“ ausgelöst wird. Dies ist zudem die Referenz auf die hochzuladende Datei, die man zuvor in einem Web-Frontend ausgewählt hat. Zurück kommt eine Item-ID, auf welche man zugreifen kann (Zeile 23). Diese wird als Input-Parameter für den GP-Dienst benötigt. Und hier ist nun zu beachten, dass bei der Parameterübergabe eine gewisse Syn- tax eingehalten werden muss. Während der „To“-Parameter eine reine Textzuweisung ist, muss bei der Übergabe einer Item-ID die Syntax, wie in Zeile 27 gezeigt, gewahrt werden. Dadurch erkennt der GP-Dienst, dass hier eine Referenz übergeben wird und holt sich die passende Da- tei dazu von selbst. Sehen Sie hier die serverseitige Implementierung eines Python-Skripts, das als GP-Dienst veröffentlicht wurde: In Zeile 10 wird hier auf den ersten Inputparameter zugegriffen, der bei der Diensterstellung als ShapeZip-Parameter definiert wurde und damit dem entspricht, was wir als Item-ID übergeben haben. Hier findet sich nun jedoch nicht mehr der kryptische Text „itemID:irgendwas“, denn dieser wurde durch die physische Datei vom ArcGIS Dienst ersetzt. Tat- sächlich können wir „infile“ wie eine Dateireferenz behandeln und da- her Dateioperationen darauf ausführen, wie das Shapefile zunächst zu entpacken. Natürlich könnten Sie auch einen anderen Mechanismus für den Up- load von Dateien vorsehen, beispielsweise einen eigenen Webservice implementieren. Dies hat jedoch den Nachteil, dass man sich um einige Dinge wie Authentifizierung oder Dateiübergabe an den GP-Dienst selbst kümmern muss. Für viele Anforderungen ist diese standard­mäßig verfügbare Möglichkeit daher die bessere, weil einfachere Lösung. Maximilian Glas Esri Deutschland GmbH Kranzberg ++ Wie man Dateien in einem Geoprocessing-Service hochlädt und verarbeitet t ipps u nd t ric k s48

Seitenübersicht