OpenLayers: порядок отрисовки слоёв

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

OpenLayers: порядок отрисовки слоёв

Сообщение Denis Rykov »

В каком порядке OL отрисовывает слои? Если указать массив слоёв при создании объекта map layers: [layer1,layer2], то у меня получается, что как бы я не менял порядок следования слоёв в массиве, на порядок их рендеринга это никак не влияет.
Spatial is now, more than ever, just another column- The Geometry Column.
Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: OpenLayers: порядок отрисовки слоёв

Сообщение Mavka »

Принцип такой: первый зашел - снизу лег.

Код: Выделить всё

map.addLayer(topo_1);
map.addLayer(topo_2); 
topo_1 будет лежать ниже topo_2.

При добавлении слоев массивом, я тоже сталкивался с вашей проблемой.
Выход: разбивать на маленькие массивы или - цикл.

Хотя по логике, должно работать как с простым addLayer:

Код: Выделить всё

addLayers: function (layers) {
    for (var i=0, len=layers.length; i<len; i++) {
        this.addLayer(layers[i]);
    }
} 
лангольеры под окном жрали время ом-ном-ном
Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: OpenLayers: порядок отрисовки слоёв

Сообщение Denis Rykov »

Спасибо, за ответ, но точно также происходит и при addLayer - порядок ничего не меняет. Замечу, что один слой у меня полигональный, другой - точечный, точки рисуются при этом под полигонами.
Spatial is now, more than ever, just another column- The Geometry Column.
oxch
Участник
Сообщения: 53
Зарегистрирован: 04 мар 2010, 11:30
Репутация: 0
Откуда: Комсомольск-на-Амуре
Контактная информация:

Re: OpenLayers: порядок отрисовки слоёв

Сообщение oxch »

Порядок слоев, насколько я знаю, определяется параметром z-index, который можно установить для слоя функцией setZIndex(zIndex).

Если z-index не указывается для слоя, то он назначается последовательно при добавлении нового слоя.

Если вам важен порядок, то задайте z-index на этапе создания слоя, а потом добавляйте слои массивом.
Чудес на свете не бывает, они просто случаются.
Знать - значит уметь использовать.
Интерактивная карта-схема Хабаровского края
Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: OpenLayers: порядок отрисовки слоёв

Сообщение Denis Rykov »

Это я сразу попробовал - не помогает.
Spatial is now, more than ever, just another column- The Geometry Column.
Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: OpenLayers: порядок отрисовки слоёв

Сообщение Mavka »

Труба... У меня addLayer работает в десятке приложений...
И растровые и векторные слои ложатся в заданном порядке.

Не знаю.
лангольеры под окном жрали время ом-ном-ном
Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: OpenLayers: порядок отрисовки слоёв

Сообщение Denis Rykov »

Проблема решена. Дело было в том, что у меня использовался контрол SelectFeature для полигонального слоя и не использовался для точечного. А при использовании этого контрола,все слои, задействованные в нём, помещаются на самый верхний уровень:
For SelectFeature control to work, the svg/vml container needs to be on top of the layer stack. If you configure it with multiple layers, it will create its own container on top of all other layers. If you configure it with a single layer, it will move this layer to the top of the layer stack.
Spatial is now, more than ever, just another column- The Geometry Column.
Ответить

Вернуться в «Веб-картография»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя