繁体   English   中英

OpenLayers wfs请求->地理服务器日志:用getServiceInfo代替getFeature

[英]OpenLayers wfs request -> geoserver log: getServiceInfo instead getFeature

我有一个带WFS协议和BBOX策略的vectorLayer。 最初会按原样加载数据。 但是,如果我拖动地图,则地理服务器日志只会说:{curr date}信息[geoserver.wfs]-请求:使用getServiceInfo而不是getFeature(就像在初始请求中一样)。 我的问题是在地图上什么也没有发生。 如果我在图层上设置了“刷新” eventHandler,它将不会触发...我是否需要在其他地方刷新地图/图层?

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会在初始请求中告诉我“无法显示类型(空)的响应” .....? 尽管我只是更改了网址,但它甚至什么都没有显示。

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

您的WFS终结点(GeoServer)应该相对于页面定位,否则将采用相同的原始策略 。您可以尝试使用apache和mod_proxy或mod_jk对其进行修复。 使用这些库,您可以相对于您的应用程序安装在tomcat中部署的geoserver。

如果应用程序无法做到这一点,则应使用提供的代理脚本

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM