Sử dụng WPS có sẵn hoặc Xây dựng chúng
Có toàn bộ mô tả / hướng dẫn về các dịch vụ xử lý web (WPS) được tìm thấy ở đây . Hầu hết điều này sẽ được thực hiện bằng cách sử dụng các yêu cầu HTTP được gửi đến một máy chủ như GeoServer đang lưu trữ quá trình này. Liên kết GeoServer sẽ phác thảo quá trình lưu trữ và gọi WPS chung bằng phần mềm của họ. Phần mở rộng WPS của GeoServer đi kèm với các quy trình JTS Topology Suite, là thư viện của các chức năng không gian phổ biến như bộ đệm và các hoạt động giao nhau. Dưới đây là ví dụ của họ về việc thực hiện thao tác đệm bằng thư viện JTS.
Những cách khác
Có nhiều cách khác để làm điều đó mặc dù. Nhóm web của chúng tôi sử dụng các truy vấn đối với cơ sở dữ liệu PostGRE / PostGIS của họ để thực hiện phân tích đơn giản, nhưng tôi không quen với điều đó.
Một ý tưởng tôi đã bắt đầu nghiên cứu liên quan đến việc sử dụng các tập lệnh python mã nguồn mở như PySal / GDAL để phân tích không gian. Bạn sẽ cần sử dụng một số JavaScript / AJAX (hoặc bất kỳ ngôn ngữ phía máy chủ nào) để thực thi các tập lệnh đó trên máy chủ của bạn và đưa ra kết quả. Nó sẽ là một tùy chọn phức tạp, nhưng tôi tin rằng nó sẽ cung cấp cho bạn các tùy chọn tùy chỉnh tốt hơn so với ESRI.
Tôi nghĩ bạn nên có thể chia nhỏ các tính năng thành một chuỗi GeoJSON để chuyển dưới dạng tham số vào các tập lệnh python. Từ đó, bạn sẽ cần phải chuyển đổi kết quả đó trở lại thành chuỗi GeoJSON để gửi lại cho máy khách để hiển thị. Các gói Python như Shapely có thể diễn giải chuỗi GeoJSON. Những người khác có thể cần một số cách giải quyết bằng văn bản để sử dụng GeoJSON hoặc có thể có một lựa chọn tốt hơn mà tôi chưa từng nghĩ đến khi sử dụng.
Một tùy chọn khác là sử dụng GeoTools để viết lên một ứng dụng web Java để phân tích không gian. Điều này cũng hỗ trợ các chuỗi GeoJSON và có một số chức năng phân tích không gian được tích hợp. Họ có một số ảnh chụp màn hình cho thấy các ứng dụng khác nhau của họ.
Có thể tạo WPS của riêng bạn hoặc chạy tập lệnh phía máy chủ. Sẽ không dễ như ESRI tạo ra, nhưng nó sẽ miễn phí nếu bạn đang sử dụng nguồn mở.
Dù bạn quyết định lộ trình nào, hãy cập nhật nó ở đây vì đây là một chủ đề tuyệt vời!