天下之事,必先处之难,而后易之。

OpenLayers 搭建跨域代理(WFS)

1、下载proxy.cgi文件,url:http://svn.openlayers.org/trunk/openlayers/examples/proxy.cgi。

2、安装python,url:http://python.org/。

3、在地图项目的web.xml中添加如下配置:

<servlet>

       <servlet-name>cgi</servlet-name>

      <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>

       <init-param>

         <param-name>debug</param-name>

         <param-value>0</param-value>

       </init-param>       

       <init-param>

         <param-name>cgiPathPrefix</param-name>

         <param-value>WEB-INF/cgi</param-value>

       </init-param>       

       <init-param>     

           <param-name>executable</param-name>

         <!-- your python install path-->

           <param-value>c:/Python27/python.exe</param-value>

       </init-param>

       <init-param>

           <param-name>passShellEnvironment</param-name>

           <param-value>true</param-value>

       </init-param>       

        <load-on-startup>5</load-on-startup>

   </servlet>

   <!-- The mapping for the default servlet-->

   <servlet-mapping>

       <servlet-name>default</servlet-name>

       <url-pattern>/</url-pattern>

   </servlet-mapping>

   <servlet-mapping>

       <servlet-name>cgi</servlet-name>

       <url-pattern>/cgi/*</url-pattern>

</servlet-mapping>

4、在Tomcat的配置文件中找到context.xml做如下修改:

<Context privileged="true"></Context>

或者copy 该文件至META-INF下做如上修改。

5、在WEB-INF下创建文件夹cgi,将下载的proxy.cgi  copy到此文件夹。

6、修改proxy.cgi文件,设置代理的服务器IP和端口:

allowedHosts = [
'openstreetmap.cz', 'www.openstreetmap.cz',
'www.openlayers.org', 'openlayers.org', 
'labs.metacarta.com', 'world.freemap.in', 
'prototype.openmnnd.org', 'geo.openplans.org',
'sigma.openplans.org',
'www.openstreetmap.org',
'toolserver.org',
"osmxapi.hypercube.telascience.org",
"nominatim.openstreetmap.org",
"open.mapquestapi.com",
"routes.cloudmade.com",

"192.168.0.32:8990"
]

7、验证测试是否成功:

在python安装目录中找到并启动python.exe, 访问:http://localhost:8080/cgi-bin/proxy.cgi 出现home page 则说明搭建代理成功。

8、使用远程访问的代理:

 map.events.register('click', map, function (e) {

            OpenLayers.Util.getElement('nodelist').innerHTML = "Loading... please wait..." + map.layers[0].name;

            var url =  map.layers[0].getFullRequestString({

                            REQUEST: "GetFeatureInfo",

                            EXCEPTIONS: "application/vnd.ogc.se_xml",

                            BBOX: map.getExtent().toBBOX(),

                            X: e.xy.x,

                            Y: e.xy.y,

                            INFO_FORMAT: 'text/html',

                            QUERY_LAYERS: map.layers[0].params.LAYERS,

                            FEATURE_COUNT: 50,

                            layers: 'topp:danwei_font_point',

                            styles: '',

                            srs: 'EPSG:4326',

                            WIDTH: map.size.w,

                            HEIGHT: map.size.h},

                            http://192.168.0.32:8990/geoserver/wms

                            );

            OpenLayers.loadURL(url, '', this, setHTML, setHTML);

            Event.stop(e);

      });

其中192.168.0.32::8990/geoserver/wms为获取代理服务器地址。

 

 

posted @ 2012-03-18 15:04  boonya  阅读(2795)  评论(4编辑  收藏  举报
我有佳人隔窗而居,今有伊人明月之畔。
轻歌柔情冰壶之浣,涓涓清流梦入云端。
美人如娇温雅悠婉,目遇赏阅适而自欣。
百草层叠疏而有致,此情此思怀彼佳人。
念所思之唯心叩之,踽踽彳亍寤寐思之。
行云如风逝而复归,佳人一去莫知可回?
深闺冷瘦独自徘徊,处处明灯影还如只。
推窗见月疑是归人,阑珊灯火托手思忖。
庐居闲客而好品茗,斟茶徐徐漫漫生烟。

我有佳人在水之畔,瓮载渔舟浣纱归还。
明月相照月色还低,浅近芦苇深深如钿。
庐山秋月如美人衣,画堂春阁香气靡靡。
秋意幽笃残粉摇曳,轻轻如诉画中蝴蝶。
泾水潺潺取尔浇园,暮色黄昏如沐佳人。
青丝撩弄长裙翩翩,彩蝶飞舞执子手腕。
香带丝缕缓缓在肩,柔美体肤寸寸爱怜。
如水之殇美玉成欢,我有佳人清新如兰。
伊人在水我在一边,远远相望不可亵玩。