Geoserver中有多个图层时,如何使每个图层都可以捕捉鼠标点击?
有多个图层,都希望在鼠标点击某地物时,显示出这是什么地物。我用如下的代码:map.events.register('click', map, function (e) {
document.getElementById('nodelist').innerHTML = "Loading... please wait...";
var params = {
REQUEST: "GetFeatureInfo",
EXCEPTIONS: "application/vnd.ogc.se_xml",
BBOX: map.getExtent().toBBOX(),
X: e.xy.x,
Y: e.xy.y,
INFO_FORMAT: 'text/html',
QUERY_LAYERS: map.layers[0].params.LAYERS,
FEATURE_COUNT: 50,
Layers: ['topp:demo','topp:tielu'],
Styles: '',
Srs: 'EPSG:4326',
WIDTH: map.size.w,
HEIGHT: map.size.h,
format: format};
OpenLayers.loadURL("http://127.0.0.1:9999/geoserver/wms", params, this, setHTML, setHTML);
OpenLayers.Event.stop(e);
});
}
这其中Layers: ['topp:demo','topp:tielu'] 是我发明的,原来是Layers: 'topp:demo' 但是这样虽然不出错,却也不好用,系统还是只捕捉topp:demo层的事件,而点击topp:tielu的地物时,没有反应。
请问应该怎么办,才能使每个图层都可以捕捉到鼠标点击? --------------------编程问答-------------------- 好像是这么个写法layers: "topp:demo,topp:tielu"。
具体请查查OpenLayers的API说明。
标题写得不好。这与GeoServer没什么关系,应该是OpenLayers为主题。 --------------------编程问答--------------------
这样写也不行,哪个放前面它捕捉哪个,后面的一律不闻不问啊!openlayers这东西没有中文文档吗,学起来太难了! --------------------编程问答-------------------- 你的参数定死了只查前面一层:
QUERY_LAYERS: map.layers[0].params.LAYERS, --------------------编程问答--------------------
是吗。哈哈,照葫芦画瓢,都不知道啥意思,多谢了! --------------------编程问答-------------------- 学习了,
补充:企业软件 , 地理信息系统