Как изменить порядок слоя при его отображении в открытых слоях?
Я работаю над сайтом, который использует OpenLayers для рисования карты и добавления слоев информации поверх нее. Все отлично работает, но одно.
Когда я добавляю новый слой информации, я хочу, чтобы он был поверх других слоев, но когда я добавляю слой информации раньше, я хочу, чтобы другие слои были сверху.
Моя точка зрения: последний клик должен быть сверху.
Прямо сейчас, когда я хочу установить видимость слоя на Да, это было запущено:
myLayer.setVisibility(true);
map.setLayerIndex(myLayer, 700);
Я попытался заменить 700 действительно высоким значением, и это ничего не изменило. Я также попробовал это:
map.raiseLayer(myLayer, map.layers.length);
Но ничего не работает. Слой все еще появляется под другими слоями...
Пожалуйста, если у вас есть идея, скажите мне. Заранее спасибо за помощь!
PS: Это веб-сайт (не уверен, что вы его видите): http://labqc.wul.qc.ec.gc.ca/MetViewer/
Чтобы протестировать, вы должны выбрать слой слева (изображения будут показаны), затем щелкните значок (+) в правом верхнем углу, чтобы выбрать слой, и вы добавите, скажем, BV - Канада. Полигоны появятся под изображением сверху, я хочу обратную ситуацию.
,
1 ответ
Вам нужно явно запросить, чтобы слой перерисовывал сам себя после того, как вы использовали функции liftLayer или setLayerIndex, так как эти функции не вызывают автоматическое перерисовывание: см. http://trac.osgeo.org/openlayers/browser/trunk/openlayers/lib/OpenLayers/Map.js Просто
this.redraw();
или же
map.layers[layerIndex].redraw();
в зависимости от того, где вы обрабатываете это, должно быть достаточно.