2011-12-12 2 views
0

나는 WFS 프로토콜 및 BBOX 전략을 사용하는 vectorLayer를 사용합니다. 처음에는 데이터를로드해야합니다. 그러나지도를 드래그하면 geoserver 로그에서 다음과 같이 말합니다. {curr date} INFO [geoserver.wfs] - 요청 : getFeature 대신 getServiceInfo (초기 요청시처럼). 내 문제는지도에서 아무 일도 일어나지 않는다는 것입니다. 레이어에 "새로 고침"eventHandler를 설정하면 실행되지 않습니다 ... 다른 곳에서지도/레이어를 새로 고쳐야합니까? 내가 다른 서버에 동일한 스크립트를 실행하는 경우OpenLayers wfs 요청 -> geoserver 로그 : getServiceInfo 대신 getFeature

var map; 
function init(){ 
    .. 
    map = new OpenLayers.Map('map', options); 
    var gsat = new OpenLayers.Layer.Google(...); 
    map.addLayer(gsat); 
    var lonlat = new OpenLayers.LonLat(...); 
    map.setCenter(lonlat, 18); 
    loadLayer(); 
    .. 
} 
function loadLayer(){ 
    loadLayerFunc(); 
    ... 
} 

function loadLayerFunc(){ 
    var wfsLayer = loadLayerFunc(); 
    wfsLayer.events.on({...}); 
    map.addLayer(wfsLayer); 
    ... 
} 
function loadLayerFunc(){ 
var bboxStrategy = new OpenLayers.Strategy.BBOX({ratio: 0.8}); 
wfsLayer = new OpenLayers.Layer.Vector("wfsLayer", { 
    strategies: [bboxStrategy], 
    protocol: new OpenLayers.Protocol.WFS({ 
    version: "1.1.0", 
    srsName: "EPSG:4326", 
    url: wfs_url, 
    featureType: "positions_test", 
    featurePrefix: "feature", 
    geometryName: "the_geom", 
    schema: "http://localhost:8080/geoserver/wfs?request=DescribeFeatureType&service=WFS&typeName=ws:positions", 
    maxFeatures: 1000 
}), 
    projection: geoProjection 
    }); 
    return wfsLayer; 
} 

는, 파이어 폭스 웹 콘솔은 초기 요청에 따라 이미 나에게 말한다 "(널)을 유형의 응답을 표시 할 수 없습니다".....? URL을 변경했지만 아무 것도 표시하지 않습니다.

EDIT : null 응답은 프록시 구성없이 Tomcat Apache 서버에 의해 발생한 것으로 보입니다. js 파일이 geoserver와 비슷한 apache 폴더에 있으면 프록시없이 실행할 수 있습니까? 마지막으로 나는 바람둥이에 그것을 실행해야합니다. "proxy.cgi 파일이 잘 작성되지 않았습니다"오류가 null 응답보다 나은가요? 가능하다면 프록시없이 해결하고 싶습니다만, 프록시를 포함하여 내가 원하는 곳에 더 가까이 다가 가게 할 것 같습니다.

답변

0

당신의 WFS 엔드 포인트 (GeoServer는) 당신이 아파치와 mod_proxy를 나 또한 mod_jk를 사용하여 해결을 시도 할 수 그렇지 않으면 same origin policy에서 차기. 페이지에 상대적으로 위치해야합니다. 이러한 라이브러리를 사용하면 응용 프로그램과 관련하여 tomcat에 배포 된 것처럼 geoserver를 탑재 할 수 있습니다.

응용 프로그램과 함께 할 수없는 경우 제공된 proxy script을 사용해야합니다.

예, geoserver는 로그 파일에 WFS 요청을 할 때 getServiceInfo를 표시합니다. geoserver 2.1.1에서도 같은 동작을 보았습니다.