Làm cách nào tôi có thể sử dụng WFS từ Geoserver với OpenLayers 3?


8

Tôi đã thử với các thiết lập và định dạng khác nhau, nhưng không thành công.

Với fireorms, tôi có thể thấy rằng dữ liệu json đã được tải, nhưng không có gì hiển thị trên bản đồ.

Có ai có kinh nghiệm với geoserver và wfs trong openlayers 3 chưa?

var layer_ojd_vector = new ol.layer.Vector({
 source: new ol.source.Vector({
  parser: new ol.parser.GeoJSON(),
  url: http://SERVER:8080/geoserver/NS/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=NS:LAYER&maxFeatures=50&outputFormat=json
 }),
 style: new ol.style.Style({rules: [
  new ol.style.Rule({
   filter: 'geometryType("point")',
   symbolizers: [
     new ol.style.Shape({
       fillColor: '#013',
       size: 40
     })
   ]
 })
]})  
});

Câu trả lời:


3

Tôi đã thấy điều này trả lời khá nhiều ở đây.

Bạn phải chạy tệp HTML từ máy chủ web và truy cập bằng cách:

SERVER: 8080 / máy chủ địa lý / index.html

hoặc tuy nhiên của bạn là thiết lập.

Bạn không thể chỉ cần nhấp đúp vào tệp HTML và xem lớp WFS.


Các tập tin với javascript này được truy cập thông qua một máy chủ web.
Trond Thorbjørnsen

ĐỒNG Ý! Bây giờ tôi đã hiểu: Tôi không thể truy cập dữ liệu wfs từ một máy chủ web khác, tôi phải có tệp html trên máy chủ web geoserver.
Trond Thorbjørnsen

4
@GISer "Tôi đã thấy điều này trả lời khá nhiều ở đây." Có thật không? Đây là bài viết duy nhất tôi thấy rằng cụ thể nhắm mục tiêu OL3. Sẽ không phiền khi thấy một số tài liệu tốt hơn về điều này vì tài liệu OL3 vẫn còn rất nhiều công việc đang tiến hành.
Kyle

1
Điều này không có ý nghĩa. Bạn đang nói nếu bạn có dữ liệu GeoJSON từ xa mà nó phải chạy trên cùng một máy chủ phục vụ bản đồ? Nếu bạn thấy một số ví dụ về OpenLayers trên trang web của họ, dữ liệu không gian không phải nằm trên cùng một máy chủ với máy chủ bản đồ hiển thị dữ liệu.
dùng3657279

3

Tôi đồng ý với Kyle. Thậm chí một năm sau, tôi phải mất một thời gian để tìm ra những ví dụ hay với lời giải thích có thể dễ dàng sao chép.

Tôi thích các ví dụ từ 'cuốn sách về các lớp mở 3'. Thật không may, tôi không có quyền truy cập vào cuốn sách nhưng tôi tin rằng nó được viết tốt từ các ví dụ.

Ví dụ này dành cho ol 3,4

http://acanimal.github.io/thebookofopenlayers3/ch CHƯƠNG03_07_query_wfs.html

Tôi đã gặp một số vấn đề khi sao chép ví dụ chính vectơ ol 3.5 từ trang ví dụ của trình mở. Những vấn đề này có thể được sửa chữa ngay bây giờ.

http://openlayers.org/en/master/examples/vector-wfs.html

Tôi đã tạo ba jsfiddle để thể hiện các cuộc gọi ol 3.5.0 thông qua AJAX cho ol.format.GeoJSON (JSON và JSONP) cũng như ol.format.WFS.

WFS (Quyền truy cập CORS phải được bật trên máy chủ web, ví dụ: Apache Tomcat )

http://jsfiddle.net/goldrydigital/9d3jzpna/

JSON (Quyền truy cập CORS phải được bật trên máy chủ web, ví dụ: đối với Apache Tomcat )

http://jsfiddle.net/goldrydigital/ucspgvx0/

JSONP (JSONP cần được bật trong Geoserver )

http://jsfiddle.net/goldrydigital/08zzh9n9 /


Vâng, câu trả lời đã đến hai năm sau khi câu trả lời được chấp nhận, và câu trả lời được chấp nhận chính xác theo như nó đã đi. Nhưng điều này hữu ích hơn nhiều.
Auspex

0

Tôi nghĩ những gì bạn cần là:
Tham chiếu API cấu hình REST
Với REST, bạn có thể gọi dữ liệu giữa các máy chủ (hoặc giữa ví dụ: Apache trên cổng 80 và máy chủ địa lý trong cổng 8080 nếu cùng một máy chủ).

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.