Как изменить порядок слоя при его отображении в открытых слоях?

Я работаю над сайтом, который использует 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();

в зависимости от того, где вы обрабатываете это, должно быть достаточно.

Другие вопросы по тегам