GeoWebCache: sắp xếp sai các ô


9

Tôi đang thử kiểm tra bản đồ web đơn giản dựa trên ngăn xếp PostGIS / Geoserver / OpenLayers trên Windows Server 2008.

Khi tôi tải lớp WMS của mình bằng cách:

var gwctest = new OpenLayers.Layer.WMS(
    "gwctest",
    "http://localhost:1979/geoserver/wms",
    {
    'layers': 'Index2000:index_vect_s100',
    'format': 'image/png',
    'srs': 'EPSG:3857', 
    'units': 'm',
    'transparent': true
    },
    {'opacity': 0.8, 'isBaseLayer': false, 'visibility': false}

);

Tất cả trông đều ổn.

văn bản thay thế

Tuy nhiên, khi tôi cố gắng thêm lớp WMS vào bản đồ của mình bằng GeoWebCache, thay thế

"http://localhost:1979/geoserver/wms"

với:

"http://localhost:1979/geoserver/gwc/service/wms"

Dữ liệu của tôi đột nhiên di chuyển từ vị trí chính xác:

văn bản thay thế

Bất kỳ ý tưởng về những gì có thể là nguyên nhân?

EDIT: một số thông tin bổ sung về bài đăng danh sách gửi thư của GWC .


1
Nó trông giống như một vấn đề thay đổi mốc. Bạn có thể cần chỉnh sửa các tham số to_wss chiếu của mình nếu wms của bạn đang bị từ chối. trac.osgeo.org/proj/wiki/ từ
geographika

@geographika: Tại sao sau đó cùng một lớp sẽ hiển thị chính xác mà không có chế độ GWC?
radek

1
Nó sử dụng một tập tin cấu hình khác nhau để chiếu? Xem geoserver.org/display/GEOSDOC/5.+GWC+-+GeoWebCache
geographika

@geographika: Tôi đoán đó là phiên bản cũ của tài liệu GeoServer. Phiên bản mới hơn: geoserver.org/display/GEOSDOC/5.+GWC+-+GeoWebCache . Trang Cấu hình GeoWebCache của tôi cho biết các ô đã sẵn sàng trong phép chiếu 3857 và đây cũng là proj được sử dụng bởi bản đồ web của tôi.
radek

bạn đã bao giờ giải quyết vấn đề của bạn? Tôi đang có một vấn đề tương tự với một sự thay đổi lớn hơn. Tôi thấy rằng geographika talsk về một bài đăng có nguyên nhân giải pháp kết thúc trong diễn đàn GWC, nhưng tôi không tìm thấy bài đăng đó.
dùng28386

Câu trả lời:


4

Cập nhật

Xem phản hồi cho bài đăng của Radek trong diễn đàn GWC để biết nguyên nhân và giải pháp thực tế. Bây giờ tôi đã hiểu tại sao TileCache chọn hiển thị các lỗi như "Giá trị x hiện tại -1311047.936977 quá xa góc gạch x -1493907.560000" thay vì trả lại các ô "gần nhất" trong phạm vi lỗi tùy ý.


Là dữ liệu gốc của bạn trong EPSG 3857? Nếu không thì nó gần như chắc chắn là một sự thay đổi mốc (không) xảy ra ở đâu đó.

Hãy thử thay đổi định nghĩa OpenLayers của bạn thành tham chiếu EPSG: 900913 - có thể GeoWebCache không nhận ra mã trình duyệt web mới?

Từ liên kết bạn đã đăng:

Phiên bản tích hợp của GeoWebCache tự động định cấu hình mọi lớp với hai phép chiếu phổ biến nhất:

* EPSG:4326 (standard Latitude/Longitude)
* EPSG:900913 (Spherical Mercator, the projection used in Google Maps)

Nếu bạn cần các phép chiếu bổ sung, bạn có thể tạo một tệp cấu hình có tên geowebcache.xml trong thư mục bộ đệm, ví dụ /var/geoserver_data/gwc/geowebcache.xml

Nghe có vẻ như Geoserver và GeoWebCache sử dụng các tệp chiếu khác nhau. Có thể Geoserver của bạn có tham số to_wss và GWC thì không.

Khi bạn đang ở trên Windows, hãy chạy Trình theo dõi tiến trình - http://technet.microsoft.com/en-us/sysi INTERNals / bb896645 để xem những tập tin nào bạn thực sự truy cập.

Ngoài ra, tôi cho rằng hình ảnh không được lưu trong bộ nhớ cache sau khi bạn thay đổi một số tham số chiếu? Hãy thử quay lại / xóa để kiểm tra.


Cảm ơn. Có, dữ liệu gốc là vào năm 3857. Có vẻ như GWC nhận ra mã này: trong phần Trình diễn của GWC có tất cả ba phép chiếu có sẵn để sử dụng: 3857, 4326, 900913. Và với mục đích bản đồ của tôi, tôi đang sử dụng 3857. Cũng đã thử nó với 900913 và lỗi vẫn còn.
radek

Nếu dữ liệu gốc của bạn là vào năm 3857 mà không có sự thay đổi dữ liệu thì tôi tưởng tượng rằng không có sự từ chối nào diễn ra trong GWC và dữ liệu gốc của bạn cần phải được xử lý lại.
geographika

4

Bạn có bộ gốc nguồn gốc chính xác cho OpenLayers.Map như trong GeoWebCache không. Kiểm tra xem TileOrigin được thiết lập trong bản demo GeoWebCache của lớp đó và đảm bảo rằng bạn có cùng một Trình xếp lớp trên Trình tạo OpenLayers.Map của bạn.


Cảm ơn. Tôi đã thử đặt nó là: "brickOrigin: map.maxExtent.left + ',' + map.maxExtent.bottom" trong đó maxExtent được đặt theo bản demo của lớp GWC. Vẫn không đúng.
radek

Cài đặt GWC của bạn là gì, bạn có thể cần điều chỉnh cài đặt DPI trong GWC hoặc OpenLayers
Peter

Tôi đã thử điều chỉnh cài đặt DPI theo bản xem trước demo của lớp. Không giúp được gì.
radek

3

Sai lệch như thế này hầu như luôn luôn là một vấn đề chiếu. Là dữ liệu được lưu trữ trong EPSG: 3857? Kiểm tra xem lớp GeoWebCache được cấu hình để xuất ra trong EPSG: 3857.


Có, tập dữ liệu ở 3857 và GWC cũng được cấu hình cho nó.
radek

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.