Sử dụng dịch vụ xử lý địa lý ESRI từ máy khách không phải ESRI (Python)?


8

Tôi nghĩ rằng có thể sử dụng dịch vụ Công cụ địa lý ESRI từ tập lệnh python mà không cần gọi ArcPy hoặc cần cài đặt ESRI trên máy khách. Ví dụ: tôi tạo một dịch vụ xử lý địa lý lấy một loạt vị trí điểm và trả về tệp csv với các giá trị bên dưới chúng dưới dạng tệp. Tôi muốn bao gồm cuộc gọi dịch vụ này trong một ứng dụng khách python sẽ chạy trên các máy không có bất kỳ cài đặt ESRI nào. Bạn không thể tạo cuộc gọi còn lại để khởi động dịch vụ và sử dụng kết quả mà không bị hỏng?

Có ai có một ví dụ về cách bạn có thể làm điều này?

Cảm ơn, Colin

Câu trả lời:


8

ArcGIS for Server sẽ cung cấp cho bạn JSON qua HTTP. Python có công cụ máy khách HTTP được tích hợp sẵn (urllib, v.v.) và các gói cộng đồng tốt hơn (Yêu cầu, omeplib2). Và JSON và Python đi cùng nhau như chip và salsa.


Tôi đã làm mọi thứ với urllib và owslib trong Python để tôi có thể thấy điều đó có thể đi cùng nhau như thế nào. Tôi sẽ xem xét cách giải tuần tự hóa phản hồi JSON. Tôi đoán rằng tôi cảm thấy bối rối nhất về cách cấu trúc phản hồi còn lại với những thứ như tham số mô hình, chỉ định đầu vào từ hệ thống tệp khách hàng, v.v.
Colin Talbert

Để gửi yêu cầu bài đăng đến dịch vụ mã hóa địa lý ESRI, tôi đang sử dụng mô-đun Yêu cầu Python như thế này: r = request.post (geocoderUri, params = {"địa chỉ": payload, "f": "json", "outSR": 4326}) var payload chứa đối tượng json mã hóa dữ liệu địa chỉ theo định dạng mà dịch vụ đang mong đợi.
DavidF

2

Để cấu trúc phản hồi còn lại, có thể giúp xem xét cách API javascript tương tác với các dịch vụ xử lý địa lý bằng cách sử dụng Fireorms trong Firefox. Thông thường, tất cả các tham số đều ở dạng trần hoặc trong một số đối tượng JSON và được thêm vào chuỗi truy vấn của url (hoặc được gửi qua yêu cầu POST) theo định dạng UrlEncoding. Sau đó, bạn chỉ cần phân tích các kết quả JSON được trả về mà bạn có được bằng cờ f = json trong yêu cầu.


2

Esri đã xuất bản những gì họ gọi là Đặc tả REST của GeoService có thể được truy cập từ đây .

Nó chứa rất nhiều chi tiết về giao tiếp REST và là nền tảng mà ArcGIS Server dựa trên. Điều này cung cấp rất nhiều chi tiết về cấu trúc yêu cầu và phản hồi cho từng loại dịch vụ. Mục 6.0 (trang 52) là phần liên quan đến Dịch vụ GP, có lẽ điều này sẽ giúp làm sáng tỏ cách bạn nên cấu trúc các yêu cầu của mình.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.