我有这条线的问题, OpenLayers.ProxyHost =“proxy.cgi?url =”;
除了在开放层代码集中写上面的行之外还应该做什么?
我的信息 我尝试使用WMSGetFeatureInfo命令获取WMS图像的功能信息。我使用的是openlayer 2.10,geoserver和apache-tomcat-6.0.35。我可以使用localhost:8080运行tomcat,使用localhost:8080 / geoserver运行geoserver。
我是新手来打开图层,我看到有关OpenLayers项目的常见问题,但仍然无法找到答案。你的答案对我来说非常有帮助吗?
感谢您宝贵的时间。
答案 0 :(得分:0)
此链接可能很有用:Openlayers Proxy path usage
OpenLayers执行的一些任务(包括WFS请求)需要使用代理脚本,因为JavaScript对使用XMLHTTPRequest向远程服务器发出请求有限制。 在设置地图之前添加该特定声明。
从这里开始: 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');