无法在 openlayers 中将图层名称作为变量传递
Not able to pass layer name as variable in openlayers
我正在尝试从 Openlayers2.12 中的地理服务器加载图层,如下所示:
var layerName = 'something';
wms_layer_larisa2 = new OpenLayers.Layer.WMS( layerName,"http://localhost:8080/geoserver/gwc/service/wms", //http://192.168.2.6:8080/geoserver/wms
{
layers: "'es:"+layerName+"'",
format: "image/png",
transparent: true,
"version": "1.1.1",
tiled: true
},
{
format: "image/png",
//STYLES: "pointOikismoi",
//visibility: true,
//tileOptions: {maxGetUrlLength: 2048},
displayOutsideMaxExtent: false,
projection: new OpenLayers.Projection("EPSG:900913"),
}
);
map.addLayer(wms_layer_larisa2);
如您所见,我没有直接定义层的名称(通常),但我想将其作为变量传递。这会导致无法成功创建图层。虽然它添加在图层切换器中是不可见的(一切都变成粉红色,所以我猜它找不到它)。
你能告诉我如何解决吗?下面的部分应该是怎样的:
layers: "'esoteriko:"+layerName+"'",
它不起作用,因为 'esoteriko' 是一个字符串。你可以 eval(),但我不推荐。这是错误的用法。检查例如http://24ways.org/2005/dont-be-eval/ 寻求解决方案,或者你用
做点什么
switch(string) {
case 'esoteriko':
map.addLayer(esoterikolayer);
break;
... other cases
}
我正在尝试从 Openlayers2.12 中的地理服务器加载图层,如下所示:
var layerName = 'something';
wms_layer_larisa2 = new OpenLayers.Layer.WMS( layerName,"http://localhost:8080/geoserver/gwc/service/wms", //http://192.168.2.6:8080/geoserver/wms
{
layers: "'es:"+layerName+"'",
format: "image/png",
transparent: true,
"version": "1.1.1",
tiled: true
},
{
format: "image/png",
//STYLES: "pointOikismoi",
//visibility: true,
//tileOptions: {maxGetUrlLength: 2048},
displayOutsideMaxExtent: false,
projection: new OpenLayers.Projection("EPSG:900913"),
}
);
map.addLayer(wms_layer_larisa2);
如您所见,我没有直接定义层的名称(通常),但我想将其作为变量传递。这会导致无法成功创建图层。虽然它添加在图层切换器中是不可见的(一切都变成粉红色,所以我猜它找不到它)。 你能告诉我如何解决吗?下面的部分应该是怎样的:
layers: "'esoteriko:"+layerName+"'",
它不起作用,因为 'esoteriko' 是一个字符串。你可以 eval(),但我不推荐。这是错误的用法。检查例如http://24ways.org/2005/dont-be-eval/ 寻求解决方案,或者你用
做点什么switch(string) {
case 'esoteriko':
map.addLayer(esoterikolayer);
break;
... other cases
}