首页 文章

打开图层GetFeatureInfo代理设置

提问于
浏览
0

我有这条线的问题, OpenLayers.ProxyHost = "proxy.cgi?url=";

除了在开放层代码集中写上面的行之外还应该做什么?

我的信息我尝试使用WMSGetFeatureInfo命令获取WMS图像的功能信息 . 我使用的是openlayer 2.10,geoserver和apache-tomcat-6.0.35 . 我可以使用localhost:8080运行tomcat,使用localhost:8080 / geoserver运行geoserver .

我是开放层的新手,我看到有关OpenLayers项目的常见问题,但仍然无法找到答案 . 你的答案对我来说非常有帮助吗?

谢谢你宝贵的时间 .

1 回答

  • 0

    此链接可能很有用:Openlayers Proxy path usage

    OpenLayers执行的一些任务(包括WFS请求)需要使用代理脚本,因为JavaScript对使用XMLHTTPRequest向远程服务器发出请求的限制 . 在设置 Map 之前添加该特定声明 .

    从这里开始:http://openlayers.org/dev/examples/ 2

    代码示例:

    /*
         * Fix for OpenLayers using 900913 for web mercator and AGS using 102113 (it must run before map init)
        OpenLayers.Layer.WMS.prototype.getFullRequestString = function(newParams,altUrl) {
            try {
                var projectionCode=typeof this.options.projection == 'undefined' ? this.map.getProjection() : this.options.projection;
            } catch(err){
                var projectionCode=this.map.getProjection();
            }
            this.params.SRS = projectionCode=="none" ? null : projectionCode;
            return OpenLayers.Layer.Grid.prototype.getFullRequestString.apply(this,arguments);
        }
    
    */
    
        OpenLayers.ProxyHost = proxyPath;
    
        var options = {
            projection: mercator, //EPSG:3785/900913
            displayProjection: geographic, //EPSG:4326
            theme: null,
            maxExtent: new OpenLayers.Bounds(-20037508.34, -20037508.34, 20037508.34, 20037508.34),
            maxResolution: 156543.0339,
            units: 'm',
            controls: [],
            numZoomLevels: MAX_ZOOM_LEVEL,
            allOverlays: true
        };
        OpenLayers.Util.DEFAULT_PRECISION = 18;
    
        mp = new OpenLayers.Map('map', options);
        addMaps();
        addControls();
        mp.addLayers([googlePhysical, googleSatellite, googleStreets, googleHybrid]);
        //Enabling the preferred layers with a delay of 450 to be able to load the external backgrounds
        setTimeout(setInitialLayersDiv, 450);
    
        if (!mp.getCenter()) {
            if (document.getElementById('userMapExtent').value != '') {
                var sExtent = document.getElementById('userMapExtent').value.split(',');
                mp.zoomToExtent(new OpenLayers.Bounds(sExtent[0], sExtent[1], sExtent[2], sExtent[3]), true);
            } else {
                mp.zoomToExtent(europeGoogleExtent);
            }
        }
        J('#google_loading').hide('slow');
    

相关问题