Dotyczy to ArcGIS Server 9.3 z JavaScript API 2.4.
Moim celem jest kliknięcie mapy i uruchomienie zadania Identyfikacja na wszystkich widocznych warstwach dynamicznych.
IdentifyTask wymaga adresu URL do punktu końcowego REST, przy czym IdentifyParameters określa, na których warstwach identyfikator powinien zostać wykonany.
Wygląda na to, że narzędzie Identify oczekuje, że wszystkie warstwy będą dostępne z tego samego punktu końcowego REST (tj. Z tego samego ArcGIS Server).
W moim przypadku warstwy są obsługiwane z wielu instancji ArcGIS Server - w jaki sposób narzędzie Identify może to obsługiwać? Na przykład, jeśli warstwy budynków i działek na tej mapie pochodzą z oddzielnych serwerów ArcGIS.
(Jest to związane z moim poprzednim pytaniem , ale zdaję sobie sprawę, że muszę najpierw odpowiedzieć na to pytanie)
źródło
Odpowiedzi:
Po pierwsze, oto uproszczony przykład interfejsu API JavaScript, który pokazuje koncepcję użycia DeferredList do przetwarzania wielu zadań związanych z identyfikacją:
Oto przykład w jsFiddle, który moim zdaniem robi to, co chcesz, działa przy użyciu wszystkich widocznych warstw na wszystkich widocznych dynamicznych warstwach mapy na mapie.
http://jsfiddle.net/blordcastillo/mULcz/
Wszystkie literówki są teraz naprawione :)
Podstawową ideą jest to, że za każdym razem, gdy klikana jest mapa lub zmieniana jest widoczność, identyfikacja jest uruchamiana ponownie. Po uruchomieniu identyfikacji liczba uruchomionych zadań związanych z tożsamością zależy od liczby widocznych warstw i czeka na powrót wszystkich warstw do wyświetlenia wyników.
źródło
Zadanie identyfikacji może odwoływać się tylko do jednej usługi mapy, więc będziesz musiał:
Natrafiłem na podobne sytuacje z aplikacją, w której chciałem być w stanie zidentyfikować się w usłudze mapowania DEM oraz w usłudze map wyników na poziomie morza z zadania geoprzetwarzania. Wybrałem uruchomienie dwóch IdentifyTasks. Jedyne, co naprawdę musisz dodać, to dowiedzieć się, kiedy oba zadania zostaną wykonane.
Podstawowy przepływ to (to było przy użyciu Silverlight / C #)
źródło
Odtworzyłem ten scenariusz z odroczoną listą, ale trudna część polegała na identyfikacji tylko na warstwach w skali. Dotyczy to wersji 3.2 jsapi http://www.spatialexception.org/posts/arcgis-javascript-identifytask-returns-scale-dependent-layers
źródło