我陷入困境已经好几天了,现在我真的很感谢您的帮助。
这是我的情况:
-Ubuntu Linux(打开所有端口)
-在端口8081上运行的Apache
-端口8080上的Geoserver Tomcat
我试图通过与服务器不同的PC建立WFS连接,因此需要使用代理。
在我的服务器中,我编辑了httpd.conf并添加了以下几行:
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /geoserver http://mydomain.com:8080/geoserver
ProxyPassReverse /geoserver http://mydomain.com:8080/geoserver
我从OpenLayers下载了proxy.cgi,并进行了编辑以添加允许的主机(localhost:8081,localhost,mydomain:8081等)。
当我在Web浏览器中打开proxy.cgi时,我将被转发到openlayers站点,因此我认为python和脚本正在正确运行。
然后,将http://mydomain.com:8081/geoserver添加到了geoserver仪表板的基本代理URL中。
在我的html中,我将每个脚本文件(如Openlayers.js,GeoExt,js)指向apache,因此端口8081。
在我的init函数中,我放入:
OpenLayers.ProxyHost = "/cgi-bin/proxy.cgi?url=";
WFS的向量层是这样的:
var inc2007 = new OpenLayers.Layer.Vector("Inc", {
styleMap: styles1,
strategies: [new OpenLayers.Strategy.BBOX()],
protocol: new OpenLayers.Protocol.WFS({
url: "http://mydomain.com:8081/geoserver/wfs",
featurePrexif: "Inc",
featureType: "Inc",
featureNS: "http://mydomain.com:8080/Incendi"
}),
});
我在地图上看不到该层,萤火虫也没有记录任何内容。
我试图将ProxyHost链接更改为“ http://mydomain.com:8081/cgi-bin/proxy.cgi?url=“,但没有任何更改。
我能做什么?
我真的...真的需要您的帮助。
提前感谢您的回复
最佳答案
确保所有openlayers WFS协议属性正确匹配其相应的GeoServer属性。
十分之九,这就是为什么不显示WFS层的原因。
看看我的答案here和here。