저는 Openlayers에서 상대적으로 경험이 없으므로 지금 당분간이 문제를 파악하려고 노력해 왔습니다. 기본적으로 WMS 호출에서 내지도에 레이어를 만들었습니다. 라디오 버튼을 클릭하면 함수가 실행되고 서버의 적절한 파일에 링크 할 URL 부분이 삽입되도록 URL을 설정했습니다. 코드로 설명하는 것이 더 낫습니다.Openlayers가 WMS 호출 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이지도 변수에 변경되지 않습니다 참조 문제 명령이 그 일을합니다. 각 파일의 레이어에 별도의지도 변수를 추가하지 않고도지도를 업데이트 할 수 있습니까?