2

几天来我一直处于两难境地,现在我非常感谢您的帮助。这是我的情况: - Ubuntu Linux(所有端口打开) - Apache 在端口 8081 上运行 - Geoserver Tomcat 在端口 8080 我试图通过与服务器不同的 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"

                                        }),
    });

我在地图上看不到这一层,firebug 没有记录任何内容。我试图将 ProxyHost 链接更改为“http://mydomain.com:8081/cgi-bin/proxy.cgi?url=" 但没有。我能做些什么?我真的……真的需要你的帮助。

提前感谢您的回复

4

2 回答 2

2

确保所有 openlayers WFS 协议属性与其对应的 GeoServer 属性正确匹配。

十分之九,这就是 WFS 层不显示的原因。

看看我的答案herehere

于 2012-02-16T14:56:35.577 回答
2

通过将 proxy.cgi 放在本地 apache 上而不是放在 geoserver 机器上的 apache 上来解决...

于 2012-02-20T08:19:50.940 回答