Geoserver 2.5의 WFS 구현에 심각한 문제가 있습니다.OpenLayers> GeoServer WFS 요청 EPSG : 3857
SQL Server 및 PostGIS에 데이터 집합을로드했습니다. 데이터 세트는 몇 가지 점으로 구성되며 기본 EPSG : 3857입니다.
Geometry_Columns 테이블이 SQL Server 연결 용으로 설정되어 있고 Geoserver 설치에서 모든 것이 잘된 것처럼 보입니다.
그러나, OpenLayers를 통해 WFS에 액세스를 시도 :
WFS 1.0.0 | GET | 고정 | SQL 서버>OK
WFS 1.0.0 | GET | 고정 | PostGIS>OK
WFS 1.0.0 | POST | 고정 | SQL 서버>OK
WFS 1.0.0 | POST | 고정 | PostGIS>OK
WFS 1.0.0 | GET | BBOX | SQL 서버>실패
WFS 1.0.0 | GET | BBOX | PostGIS>OK
WFS 1.0.0 | POST | BBOX | SQL 서버>실패
WFS 1.0.0 | POST | BBOX | PostGIS>실패
WFS 1.1.0 | GET | 고정 | SQL 서버>OK (지도 상에 표시되지 않음)
WFS 1.1.0 | GET | 고정 | PostGIS>OK (지도 상에 표시되지 않음)
WFS 1.1.0 | POST | 고정 | SQL 서버>OK
WFS 1.1.0 | POST | 고정 | PostGIS>OK
WFS 1.1.0 | GET | BBOX | SQL 서버>실패
WFS 1.1.0 | GET | BBOX | PostGIS>OK (지도 상에 표시되지 않음)
WFS 1.1.0 | POST | BBOX | SQL 서버>실패
WFS 1.1.0 | POST | BBOX | PostGIS>실패
성공한 유일한 BBOX 필터링 된 요청은 PostGIS 데이터 소스에서 1.0.0 GET입니다.
지오 서버는 테스트를 자체적으로 실행하려는 경우 공개적으로 액세스 할 수 있습니다. 어떤 조언을 환영합니다.정말 SQL Server에서이 작업을 수행해야합니다. 여기
http://developer.system-ns.net:8080/geoserver/MobileSurvey/ows?service=WFS&request=getcapabilities
내가 POST 요청으로 Openlayers 2.13에서 WFS를 호출하는 방법입니다
var wfsLayer = new OpenLayers.Layer.Vector('CATASTRO', {
projection: 'EPSG:3857',
strategies: [new OpenLayers.Strategy.Fixed()],
protocol: new OpenLayers.Protocol.WFS({
version: '1.0.0',
url: 'http://developer.system-ns.net:8080/geoserver/MobileSurvey/wfs',
srsName: 'EPSG:3857',
featurePrefix: 'MobileSurvey',
featureType: 'CATASTRO_SQL3857',
geometryName: 'GEOMETRY',
featureNS: 'http://argeomatica.com/MobileSurvey'
})
});
이는 SQL 서버 데이터 소스입니다. PostGIS 데이터 소스의 featureType을 'catastro_pg3857'으로 변경하십시오. 전략을 고정에서 BBOX로 전환하고, 다른 테스트에서 '1.0.0'과 '1.1.0'사이의 버전을 전환합니다.
var wfsOptions = {
url: 'http://developer.system-ns.net:8080/geoserver/MobileSurvey/ows?',
params: {
request: 'GetFeature',
service: 'WFS',
version: '1.0.0',
typeName: 'catastro_pg3857',
srsName: 'EPSG:3857'
},
format: new OpenLayers.Format.GML({
featureNS: 'http://argeomatica.com/MobileSurvey',
geometryName: 'GEOMETRY'
})
}
wfsLayer = new OpenLayers.Layer.Vector('CATASTRO', {
projection: 'EPSG:3857',
strategies: [new OpenLayers.Strategy.BBOX()],
visibility: true,
protocol: new OpenLayers.Protocol.HTTP(wfsOptions)
});
건배, 데니스
방금 MapServer를 실행 중입니다. WFS 1.0.0/1.1.0, GET/POST, Fixed/BBOX는 내 GeoServer 설정에서와 동일한 SQL Server 데이터 소스를 사용하여 MapServer에서 모두 정상입니다. 여전히 이것이 GeoServer와 함께 작동하지 않는 이유를 알고 싶습니다. GeoServer가 MapServer보다 고급이라는 인상을 받고있었습니다. 게다가, 나는 웹 GUI를 좋아한다. –