Dies gilt für ArcGIS Server 9.3 mit der JavaScript-API 2.4.
Mein Ziel ist es, auf die Karte zu klicken und die Aufgabe "Identifizieren" auf allen sichtbaren dynamischen Ebenen auszuführen.
IdentifyTask erfordert eine URL zum REST-Endpunkt, wobei IdentifyParameters angibt, für welche Layer-IDs der Identifizierungsvorgang ausgeführt werden soll.
Das Werkzeug "Identifizieren" erwartet anscheinend, dass alle Layer vom selben REST-Endpunkt (dh vom selben ArcGIS-Server) aus zugänglich sind.
In meinem Fall werden Layer von mehreren ArcGIS Server-Instanzen bereitgestellt. Wie kann das Tool "Identifizieren" dies unterstützen? Wenn beispielsweise die Layer "Buildings" und "Parcels" in dieser Karte von unterschiedlichen ArcGIS-Servern stammen.
(Dies hängt mit meiner vorherigen Frage zusammen , aber mir ist klar, dass ich diese Frage jetzt zuerst beantworten muss.)
quelle
Antworten:
Hier ist zunächst ein vereinfachtes JavaScript-API-Beispiel, um das Konzept der Verwendung von DeferredList zur Verarbeitung mehrerer Identifizierungsaufgaben zu veranschaulichen:
Dann ist hier ein Beispiel in jsFiddle, von dem ich denke, dass es das tut, was Sie wollen, und das unter Verwendung aller sichtbaren Ebenen in allen sichtbaren dynamischen Kartenebenen in der Karte ausgeführt wird.
http://jsfiddle.net/blordcastillo/mULcz/
Alle Tippfehler sind jetzt behoben :)
Die Grundidee ist, dass jedes Mal, wenn auf die Karte geklickt oder die Sichtbarkeit umgeschaltet wird, die Identifizierung erneut ausgeführt wird. Wenn die Identifizierung ausgeführt wird, hängt die Anzahl der ausgelösten Identitätsaufgaben von der Anzahl der sichtbaren Ebenen ab und es wird gewartet, bis alle Ebenen zurückkehren, um die Ergebnisse anzuzeigen.
quelle
Die Identifizierungsaufgabe kann nur auf einen Karten-Service verweisen, daher müssen Sie entweder:
Mit einer App, mit der ich mich auf einem DEM-Karten-Service und auf einem Karten-Service mit Ergebnissen für den Anstieg des Meeresspiegels aus einer Geoverarbeitungsaufgabe identifizieren wollte, bin ich auf ähnliche Situationen gestoßen. Ich habe zwei IdentifyTasks ausgeführt. Das einzige, was Sie wirklich hinzufügen müssen, ist herauszufinden, wann beide Aufgaben erledigt sind.
Der grundlegende Ablauf ist (dies war mit Silverlight / C #)
quelle
Ich habe dieses Szenario mit verzögerter Liste neu erstellt, aber der schwierige Teil bestand darin, nur auf skalierten Ebenen zu identifizieren. Dies ist für Version 3.2 jsapi http://www.spatialexception.org/posts/arcgis-javascript-identifytask-returns-scale-dependent-layers
quelle