Ta usługa map jest usługą dynamicznej mapy ArcGIS Server, która zazwyczaj zwraca tylko obrazy i określone wyniki zapytań, podobnie jak WMS. Niektóre usługi graficzne ArcGIS Server umożliwiają pobieranie danych, ale nie jest to jedna z nich.
Informacje, których szukasz, możesz uzyskać za pomocą operacji zapytania, ale zajmie to wiele zapytań, ponieważ maksymalny limit zwrotu rekordów w tej usłudze wynosi 1000, a sama warstwa v14 zawiera ponad 58000 rekordów.
Aby przesłać zapytania, przejdź do punktu końcowego warstwy i przewiń w dół dla obsługiwanych operacji, a następnie kliknij Zapytanie . Aby znaleźć całkowitą liczbę rekordów, wpisz 1 = 1 w polu Gdzie i wybierz Prawda tylko dla Licznika zwrotów, wygląda jak 58919 rekordów. Zwróci tylko 1000 rekordów na raz, więc będziesz musiał wydać 59 zapytań, aby uzyskać wszystkie rekordy. Najłatwiej jest filtrować według OBJECTID, więc pierwszym zapytaniem byłoby WHERE OBJECTID <1000, Out Fields = *, Return Geometry = TRUE, Return Count = False, a Format to HTML . Usługa zwraca wszystkie funkcje 1- 999 i ich atrybuty. Możesz zmienić format wyjściowy na KMZ i później przekonwertować na żądany format, iterować i mieć wszystkie dane.
Inną metodą, która działałaby, jest programowe przechwytywanie informacji o poszczególnych elementach za pomocą punktu końcowego elementu. W powyższej sformatowanej odpowiedzi HTML atrybut OBJECTID jest tak naprawdę hiperłączem do atrybutów tylko dla tej funkcji . Adres URL REST kończy się na OBJECTID, więc możesz po prostu zwiększyć to i pobrać każdą odpowiedź w JSON, aby ułatwić parsowanie.
UWAGA - niektóre z tych funkcji / łączy dotyczą tylko punktów końcowych REST ArcGIS Server 10.1.
return IDs only
zwrócenie wszystkich 58919 identyfikatorów.Zawsze znajduję się w sytuacjach, w których muszę wyeksportować wszystkie dane z usługi mapy do pliku kształtu. Oto bardzo łatwe w użyciu narzędzie, które eksportuje każdą funkcję z usługi i zapisuje ją jako plik kształtu i geojson, jeśli jest to potrzebne. Musisz mieć lub zainstalować node.js.
https://github.com/tannerjt/AGStoShapefile
Po umieszczeniu plików w systemie przejdź do folderu, dodaj usługę mapowania do pliku services.txt i uruchom go z wiersza polecenia:
Upewnij się, że wstawiłeś potok (|) w pliku services.txt, aby dodać nazwę swojej usługi.
Mam nadzieję, że pomoże to innym, którzy potrzebują tej funkcji.
źródło
Pobierz dane przechowywane na ArcGIS REST MapServer pojedynczo, używając wiersza poleceń i pyesridump pakietu Python .
Przykładowe polecenie:
źródło
Musiałem to zrobić niedawno i to była moja najlepsza jak dotąd próba. Początkowo próbowałem zrobić,
"objectid non in {}".format(ids)
gdzie id będzie krotką zebranych identyfikatorów objectid, ale adres URL nie zwróci żadnych danych, musi istnieć limit długości łańcucha klauzuli where. część tego kodu jest na stałe zakodowana i jeśli identyfikatory nie są sekwencyjne, ten skrypt najprawdopodobniej nie zadziała. ale i tak mam nadzieję, że to pomożeźródło