【发布时间】:2014-06-25 21:55:29
【问题描述】:
我对 Openlayers 相对缺乏经验,我一直在尝试解决这个问题。基本上,我通过 WMS 调用在我的地图上创建了一个图层。我设置了 url,这样当您单击单选按钮时,它会运行一个函数,并插入将其链接到服务器上正确文件的 URL 部分。最好用代码来解释...
var layer_type = "Tavg_SDdiff";
var layer_name = "Tavg_SD_diff";
function layer_names(id) {
layer_type = OpenLayers.Util.getElement(id).id;
}
Tavg = new OpenLayers.Layer.WMS("Tavg",
"http://convection.meas.ncsu.edu:8080/thredds/wms/sco/synthesis/eval_WICCI_" + layer_type + "_50km.nc?",
{layers: layer_name,
version:'1.1.1',
CRS:'CRS:84',
"transparent":'true',
"styles":'boxfill/shrmc-mxhgt',
"colorscalerange":'-2.1,2.1',
"numcolorbands":'42',
"abovemaxcolor":'extend',
"belowmincolor":'extend',
time:"2001-01-01T00:00:00"},
{isBaseLayer:false, setVisibility: true, transparent:true,displayInLayerSwitcher:true});
Tavg.url = "http://convection.meas.ncsu.edu:8080/thredds/wms/sco/synthesis/eval_WICCI_" + layer_type + "_50km.nc?";
所以 layer_type 和 layer_name 会根据选择的单选按钮而改变。 我知道变量会发生变化,因为我已经在函数中使用 alert() 进行了检查。
我还有一个函数可以重绘图层以便显示新数据。
function deleteLayer() {
Tavg.redraw();
alert(Tavg.url);
}
这就是问题所在,当我在第二个函数中插入警报时,我看到地图变量中的 URL 没有改变,因此当我选择不同的按钮并且重绘命令执行它时,它不会改变地图上的任何内容.是否甚至可以更新地图而无需为每个文件的图层添加单独的地图变量?
【问题讨论】:
标签: openlayers wms