Các tính năng điểm biến mất trong Geoserver sử dụng WMS


10

Tôi có một shapefile với khoảng 6.500 điểm trên toàn thế giới mà tôi đang cố gắng phục vụ với Geoserver 2.2.1 bằng WMS. Tất cả đều ổn với nó cho đến khi tôi triển khai tính năng lọc trên ứng dụng khách của mình sử dụng tờ rơi. Khi tôi thêm CQL_FILTER (bộ lọc thuộc tính, không phải không gian) vào truy vấn WMS, tôi nhận thấy các tính năng bị thiếu khi thu nhỏ. Khi tôi phóng to lại, đôi khi chúng sẽ xuất hiện lại, nhưng không phải lúc nào cũng vậy. Xem hình ảnh bên dưới -

So sánh cạnh nhau

Ở mức thu phóng bên trái, Atlanta không được hiển thị. Khi tôi phóng to, nó là. Tuy nhiên, đôi khi, ngay cả điểm ở Tampa cũng không được hiển thị ở mức thu phóng bên trái. Nếu tôi thu nhỏ thêm 3 cấp độ, sẽ không có điểm nào được hiển thị. Tôi không chắc vấn đề là thông số CQL_FILTER, vì với 6.500 điểm, thật khó để nhận thấy một vài điểm bị thiếu ở quy mô toàn cầu, nhưng bộ lọc cụ thể tôi hiển thị ở đây dưới dạng ví dụ chỉ lọc 3 tính năng và khi 1 đến 3 trong số chúng bị thiếu tùy thuộc vào mức thu phóng đặc biệt đáng chú ý.

Tôi có thể tạo lại hành vi tương tự này trong bản xem trước lớp của máy chủ địa lý bằng Bộ lọc CQL trong các tùy chọn bản đồ nâng cao, vì vậy tôi khá chắc chắn đó không phải là ứng dụng khách của tôi.

Đối với các bước của riêng tôi khi gỡ lỗi vấn đề này, tôi đã thử tệp kiểu sld / sld mặc định để loại trừ kiểu dáng lớp của riêng tôi. Tôi đã tắt tất cả các bộ nhớ đệm mà tôi biết. Tôi đã kiểm tra lại xem các dự đoán của mình có đúng không - Tôi đã tạo shapefile trong ArcGIS 10 bằng cách sử dụng WGS_1984_Web_Mercator_Auxadder_Sphere làm hình chiếu và lớp được đặt thành EPSG: 3857 trong máy chủ địa lý, mà tôi nghĩ là tương đương. Tôi cũng đã nâng cấp từ geoserver 2.2 lên 2.2.1 và đã có cùng một vấn đề trong cả hai. Tôi cũng đã xóa tệp chỉ mục không gian của máy chủ địa lý (.qix) và để nó được tạo lại vì tôi đã thấy các vấn đề tương tự trong Arc với các chỉ mục không gian bị hỏng, nhưng rõ ràng điều đó cũng không hoạt động.

Đây là ảnh chụp nhanh từ bản xem trước lớp của Geoserver với Bộ lọc CQL được bật và phóng to vào cùng một khu vực như được hiển thị ở trên. Vòng tròn màu đỏ là khoảng nơi tôi sẽ thấy một điểm khác (Atlanta).

Ví dụ về Openlayers

Tôi đã thử điều chỉnh mọi cài đặt khác mà tôi có thể nghĩ ra, nhưng không gặp may. Tôi cũng đã xem và ghi nhật ký máy chủ địa lý và kích hoạt ghi nhật ký chi tiết và không thấy bất kỳ lỗi / ngoại lệ nào. Tôi cũng không thấy bất kỳ yêu cầu xấu nào trong các công cụ dành cho nhà phát triển của chrome.

Nếu tôi thiếu bất kỳ thông tin quan trọng nào, tôi sẽ cung cấp những gì tôi có thể, nhưng đây là một ứng dụng nội bộ / không công khai.


1
Loại trừ điều hiển nhiên: bạn, trong mọi trường hợp, có phong cách phụ thuộc vào quy mô không? (tức là một điểm chỉ được hiển thị giữa các tỷ lệ nhất định)
unicoletti

1
Bạn có thể xác minh rằng các giá trị trong VENUE_TYPE là hợp lệ / nhất quán không? Các kết quả không nhất quán mà bạn nhìn thấy có thể là do các tính năng được trả về theo một thứ tự khác (do sự khác biệt nhỏ trong hộp) và một trong số đó là 'xấu' theo một cách nào đó, khiến kết xuất bị dừng trước khi nó xuất hiện ở Atlanta. Có thể là khôn ngoan khi kiểm tra xuất dữ liệu của bạn sang định dạng khác sau đó 1) kiểm tra mọi thứ được di chuyển như mong đợi và sau đó 2) kiểm tra lại bộ lọc / kết xuất của bạn
tomfumb

1
@unicoletti Trên lớp hiển thị trong ảnh chụp màn hình, có các phụ thuộc tỷ lệ, nhưng tôi thấy kết quả tương tự khi tôi sử dụng kiểu 'điểm' mặc định do Geoserver cung cấp, không có phụ thuộc tỷ lệ, tôi thấy các điểm giống hệt nhau biến mất ở cùng tỷ lệ .
MWrenn

1
@tomfumb Tôi đã xem qua các giá trị trong cột VENUE_TYPE và tất cả chúng đều là chữ và số tiếng Anh ngoại trừ một dấu gạch chéo thỉnh thoảng '/' hoặc dấu và '&'. Tôi sẽ lấy ra các bản ghi với dấu gạch chéo và ký hiệu và xem điều đó có làm nên sự khác biệt không. Như một lưu ý phụ, DBF của shapefile này được mã hóa theo UTF-8 mà tôi đặt trong máy chủ địa lý. Điều đó có thể làm cho một sự khác biệt?
MWrenn

4
@MWrenn Tôi không chắc vì vậy sẽ không thử trả lời, nhưng xuất dữ liệu sang định dạng khác sẽ giúp xác định xem cửa hàng / định dạng hiện tại có phải là vấn đề không. Có lẽ hãy thử mở Shp của bạn trong ArcMap hoặc QGIS, giới hạn khu vực trong hộp thư của ví dụ của bạn, sau đó kiểm tra các thuộc tính của các tính năng có trong đó - chúng có bao gồm bất kỳ ký tự đặc biệt nào có thể bị ảnh hưởng bởi mã hóa không?
tomfumb

Câu trả lời:


1

"Giải pháp" tôi đã triển khai là nhập các shapefiles vào cơ sở dữ liệu postGIS bằng cách sử dụng shp2pqsql, giải quyết các tính năng điểm biến mất khi sử dụng Bộ lọc CQL. Tôi có thể thực hiện cùng một yêu cầu bộ lọc CQL chính xác và xem tất cả các điểm ở tất cả các mức thu phóng ngay bây giờ. Sau đó tôi đã phải điều chỉnh một vài quy trình tự động để cập nhật cơ sở dữ liệu postGIS thay vì shapefiles, nhưng chỉ mất vài giờ.

Tôi vẫn không chắc chắn về nguyên nhân gốc rễ của các tính năng điểm biến mất. Tôi đã thử các dự báo khác nhau và các nhà văn shapefile (QGis, ESRI, shapefile.py hoặc pyShape hoặc một cái gì đó) với cùng một kết quả chính xác mọi lúc. Tôi không phải là chuyên gia về máy chủ địa lý, vì vậy tôi ngần ngại gọi đó là lỗi và có lẽ đó là thứ gì đó đặc biệt đối với thiết lập của tôi, nhưng tôi có thể sao chép trên hai phiên bản khác nhau chạy trên hai máy tính khác nhau của máy chủ địa lý chạy 2.2 và 2.2. 1, cả trên Windows (One Xp, trên Server 2003).

Tôi cũng không thể đăng các shapefiles nguồn, vì vậy tôi đoán nguyên nhân gốc rễ sẽ vẫn là một bí ẩn.

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.