OpenLayers: принудительная загрузка слоя

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

OpenLayers: принудительная загрузка слоя

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

Вопрос чисто из любопытства. Создаём слой из файла, при этом указываем свойство {visibility:false}, подключаем его к карте и как следует из консоли firebug-а - видим, что он не загружается. Вроде бы все правильно. Но потом нам потребовалось включить видимость и отцентрировать карту по охвату слоя. Пишем:

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

layer.setVisibility(true);
map.zoomToExtent(layer.getDataExtent()); 
Однако в этом случае layer.getDataExtent() возвращает null. Таким образом первый вопрос - если мы включаем видимость слоя setVisibility(true), а затем пытаемся определить его охват и получаем null - означает ли это, что слой еще не загружен, то есть не выполнив до конца операцию layer.setVisibility(true), частью которой как я понимаю является загрузка слоя, программа переходит к следующей инструкции? Можно ли как-то принудительно загружать слой, при этом оставляя его невидимым, чтобы избежать подобных ситуаций?

Конечно можно использовать следующую конструкцию:

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

layer.events.register("loadend",layer,function(){map.zoomToExtent(layer.getDataExtent())}) 
Но это не всегда бывает удобно. Рассмотрим это на примере все той же задачи. Если при смене видимости слоя нам нужно центрировать карту на него, то выглядеть это будет как-то так:

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

layer.events.register("loadend",layer,function(){
layer.events.register("visibilitychanged",layer,function(){map.zoomToExtent(layer.getDataExtent())})}) 
Думается, что подобных конструкций можно избежать, если все-так на начальном этапе каким-то образом загружать слой с признаком visibility:false.
Spatial is now, more than ever, just another column- The Geometry Column.
Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: OpenLayers: принудительная загрузка слоя

Сообщение Mavka »

лангольеры под окном жрали время ом-ном-ном
Ответить

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

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

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