首页 文章

OpenLayers wfs请求 - > geoserver log:getServiceInfo而不是getFeature

提问于
浏览
0

我有一个带有WFS协议的vectorLayer和BBOX策略 . 它最初加载数据应该是它应该的 . 但是,如果我拖动 Map ,地理服务器日志只会说: INFO [geoserver.wfs] - 请求:getServiceInfo而不是getFeature(就像它在初始请求期间一样) . 我的问题是在 Map 上没有任何反应 . 如果我在图层上设置“刷新”eventHandler,它将不会触发...我是否必须在其他地方刷新 Map /图层?

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;
}

如果我在另一台服务器上运行相同的脚本,firefox webconsole告诉我已经在初始请求“无法显示类型的响应(null)”.....?它甚至没有显示任何内容,虽然我只是更改了网址 .

编辑:null响应似乎是由没有代理配置的tomcat apache服务器引起的 . 如果js文件在geoserver上类似的apache文件夹中,可以在没有代理的情况下运行它吗?最后我需要在tomcat上运行它 . “proxy.cgi文件格式不正确”错误是否比空响应更好?如果可能的话,我想在没有代理的情况下解决它,但它看起来包括代理使我更接近我想要的地方 .

1 回答

  • 0

    你的WFS endpoints (GeoServer)应该相对于你的页面定位,否则same origin policy开始 . 你可以尝试使用apache和mod_proxy或mod_jk来修复它 . 使用这些库,您可以相对于应用程序安装在tomcat中部署的geoserver .

    如果您的应用程序无法做到这一点,您应该使用提供的proxy script .

    是的,geoserver在其日志文件中发出WFS请求时会显示getServiceInfo . 我注意到geoserver 2.1.1的相同行为

相关问题