Lớp vector WFS của OpenLayers


8

Tôi đang cố gắng thêm một lớp vectơ với một lớp WFS và nó không hoạt động. Bất cứ ai có thể chỉ ra một giải pháp?

Mã OpenLayers:

var wfs = new OpenLayers.Layer.Vector(
                "Stavros Features",
                {
                    strategies: [new OpenLayers.Strategy.BBOX()]
                    ,projection: new OpenLayers.Projection("EPSG:4326")
                    ,protocol: new OpenLayers.Protocol.WFS({
                        version: "1.1.0"
                        ,srsName: "EPSG:4326"
                        ,url: "http://localhost:8080/geoserver/wfs"
                        ,featureNS :  "http://postgis.org"
                        ,featureType: "polygon"
                        ,geometryName: "the_geom"
                    })
                });

Trong cấu hình GeoServer, tôi có không gian làm việc 'myWorkspace' , cửa hàng 'myStore' và một lớp 'myLayer' và WFS được bật. Ngoài ra, trong tab 'xuất bản' của lớp của tôi trong 'Kiểu cài đặt mặc định của WMS' Tôi đã chọn 'đa giác' vì myLayer là đa giác.

Tôi đang làm gì sai?

Tôi có phải chỉ định tên không gian làm việc trong thuộc tính 'FeatureNS' không?

Có một hướng dẫn tốt cho OpenLayers?
Tôi đã đọc các tài liệu rất kém và các ví dụ không giúp tôi luôn. Tôi cũng đã đọc hướng dẫn sử dụng của GeoServer và tôi thấy nó rất tốt.


1
Ứng dụng OpenLayers của bạn đang chạy trên cổng 80 hay cổng 8080?
geographika

1
bạn có thể thấy kết quả của yêu cầu trong fireorms không?
Ian Turton

Câu trả lời:


13

Được rồi vài điều tôi sẽ thay đổi và thử lại:

  1. Đảm bảo giá trị FeatureNS của bạn nằm trong "Chỉnh sửa trang không gian làm việc trong URI không gian tên" trong GEOSERVER của bạn. Không sử dụng một cái gì đó chung chung như " http://postgis.org ". Sử dụng một cái gì đó như " http: // yourdomain / application / catalogLayer " hoặc một cái gì đó độc đáo như thế. Bạn có thể làm cho URI này lên, chỉ cần làm cho nó độc đáo.
  2. Bạn có BBOX () mới làm chiến lược nhưng hộp đó có kích thước như thế nào? Tôi sẽ thay đổi nó thành [OpenLayers.Strargety.Fixed ()] mới để thử nghiệm.
  3. FeatureType thực sự không phải là loại hình học, đó là "Tên lớp" của bạn trong GEOSERVER (tôi biết, gây hiểu nhầm).
  4. hình học là tên của trường trong cơ sở dữ liệu postgis của bạn có kiểu dữ liệu Hình học. Trong GEOSERVER, trong "Chỉnh sửa lớp", bạn có thể thấy ở phía dưới "Chi tiết loại tính năng". Ở đó bạn sẽ thấy một trường có loại "Hình học". Sử dụng giá trị dưới cột thuộc tính.

tính năngNS

nhập mô tả hình ảnh ở đây

FeatureType

nhập mô tả hình ảnh ở đây

hình học

nhập mô tả hình ảnh ở đây


1
Công việc tuyệt vời, cảm ơn vì đã chia sẻ điều đó. Tôi thấy bắt buộc phải đặt NS là chính xác và KHÔNG sử dụng các ký tự đặc biệt như: trong tên của các lớp.
JayCrossler
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.