Tôi có một bộ các trang web trong hàng ngàn. Không phải tất cả người dùng đều nhìn thấy cùng một Trang web trên bản đồ - do đó ACL. Dữ liệu được lưu trữ trong cơ sở dữ liệu không phải là GIS (mssql, ora, v.v.) và ngay bây giờ được truy xuất bằng truy vấn SQL tiêu chuẩn và được trả về máy khách (OpenLayers) bằng một tệp JSP.
Mã hiện tại đã được tối ưu hóa để thực hiện phân cụm phía máy khách (vì vậy ít gây ra sự lộn xộn trên máy khách, nhưng tất cả dữ liệu đều ở đó), truy xuất hộp giới hạn (vì vậy, một bộ dữ liệu phụ nhưng phải đến máy chủ cho mọi máy chủ pan / zoom cho dữ liệu mới) và thậm chí phân cụm phía máy chủ (để giảm dữ liệu được chuyển đến máy khách).
Thay vào đó, điều tôi muốn thay vào đó là tạo hình ảnh / gạch cho tất cả dữ liệu của mình, tương tự như cách Google Maps hiển thị hàng tấn chấm đỏ nhỏ cho tất cả các kết quả - http://bit.ly/d73qrw [google maps tìm kiếm "cà phê"] và hiển thị trên máy khách. Và khi nhấp vào, hãy thực hiện cuộc gọi ajax nhanh đến dịch vụ WMS để nhận thông tin. Đó là ý tưởng ít nhất.
Nhưng đây là vấn đề - Tôi không thể chỉ thiết lập một dịch vụ WMS tiêu chuẩn trước dữ liệu của mình vì không phải tất cả người dùng đều nhìn thấy cùng một dữ liệu. Có cách nào để tạo ra các ô này một cách nhanh chóng hoặc làm cho WMS ACL nhận biết không?
chỉnh sửa - 22/9/2010 - Vì vậy, tôi đã tìm ra cách google tạo ra các ô, hay đúng hơn là công nghệ đằng sau nó. Họ đang sử dụng Google Fusion Bảng. Lưu trữ N hàng trong các bảng của chúng và sau đó nếu dữ liệu nhận biết lat / lon, sản phẩm Fusion Table có thể tạo các ô ngay lập tức (!). Đây là thứ tôi đang tìm kiếm - bản đồ biểu diễn với hàng tấn dữ liệu. Nhưng tất nhiên tôi cần nó để được kiểm soát ACL. Liệu nó có ý nghĩa để viết một triển khai trọng lượng nhẹ tùy chỉnh của thông số WMS hoặc sửa đổi một sản phẩm hiện có? Mặc dù máy chủ địa lý có vẻ như rất nhiều "chỉ" sửa đổi để hỗ trợ ACL.
chỉnh sửa - 27/9/2010 - Một số thông tin khác kể từ khi thêm tiền thưởng. Dữ liệu của tôi là ở Oracle. Không gian Ora không được kích hoạt. Ngay bây giờ dữ liệu được trích xuất ở cấp độ kinh doanh và được chuyển đổi thành dữ liệu, được gửi đến máy khách nơi khách hàng đặt "dấu chấm" trên bản đồ. ACL được thực hiện ở mức logic nghiệp vụ, không phải DB hay ActivDir hay bất cứ thứ gì tương tự. Xác thực là đơn giản, nhưng Ủy quyền thì không và do đó phải được ghi lại trong mã. Muốn biết cách tạo dịch vụ WMS tốt nhất để phục vụ 1000 "dấu chấm" trên bản đồ nơi mỗi người dùng sẽ thấy một tập hợp các dấu chấm khác nhau. Câu trả lời có phải là CQL_FILTER không? Nhưng sau đó các tham số được đặt như thế nào? Một ý tưởng mà tôi có bây giờ là thực hiện quy trình 2 bước. Trước tiên hãy chạy truy vấn nội bộ để nhận danh sách ID mà người dùng được phép xem, sau đó xây dựng chuỗi yêu cầu WMS với các ID đó trong tham số CQL_FILTER. Có bất cứ điều gì đơn giản hóa quá trình này? Và nếu tôi thực hiện điều này, làm cách nào tôi có thể thêm lớp này dưới dạng lớp "WMS" vào máy khách Lớp mở vì OL điểm cuối là mã của tôi để lấy ID từ DB chứ không phải dịch vụ WMS thực tế trên ví dụ GeoServer?