0

我有许多按以下方式定义的数据层:

var mylayer = new OpenLayers.Layer.TMS("MY LAYER NAME", "", { type: "png", getURL: my_layer_geturl, isBaseLayer: false, visibility: false, attribution: 'Some Attribution text' });

我添加到地图中,它出现在图层切换器上,一切都很好。但是,我注意到生成的 HTML 包含以下内容:

<div class="dataLayersDiv">
    <input type="checkbox" id="OpenLayers.Control.LayerSwitcher_29_input_MY LAYER NAME" name="MY LAYER NAME" value="MY LAYER NAME">
    <span class="labelSpan" style="vertical-align: baseline;">MY LAYER NAME</span>
    <br>
</div>

您会注意到表单输入 ID 和 NAME 都逐字包含图层名称。这对我来说似乎有点奇怪,因为 ID 和 NAME 属性很容易变得无效。更复杂的是,我希望在图层标签上添加一些标记,以便以不同的语言显示/隐藏图层名称。在表单字段中有标记是 a) 垃圾和 b) 导致 IIS 在提交表单时抱怨“可能不安全的请求”(asp.net webforms,包装页面的单个表单,因此如果没有负载就无法真正逃脱它工作!)

我知道如何规避不安全页面请求警告,但如果我这样做,我的管理员会停下来。我想知道是否有人知道在不干扰底层控制标记的情况下巧妙地设置图层标签的方法?

干杯,史蒂夫

4

1 回答 1

2

我认为您将不得不为此更改 LayerSwitcher,在那里以更好的方式创建您自己的标记......也许 OL3 已经发生了一些事情,您检查了即将到来的更新吗?

(风滚草暂时停在一个废弃的沙龙的墙壁上。)

于 2010-12-20T18:23:44.063 回答