Openlayers - отключить панорамирование слоя

Я использую OpenLayers и пытаюсь создать слой наложения информации. Я использую свой собственный сервер WMS, поэтому для этого уровня сервер всегда отправляет изображение с информацией в нем. Моя проблема в том, что когда я перемещаю карту, мой информационный слой также перемещается, после завершения панорамирования слой обновляется, и текст отображается в правильном положении. Я хотел бы отключить панорамирование на этом конкретном слое (WMS), есть ли способ добиться этого?

Я попытался с внешним div, но не удалось, панорамирование все еще было.

Спасибо !

Редактировать: Итак, вот с чем я пришел. Все работает, спасибо за идею

<script type="text/javascript"> 
    /////////////////////////////////////////
    // USE AN EMPTY LAYER WITH ATTRIBUTION //
    /////////////////////////////////////////

    var informationLayerRefreshStrategy = new OpenLayers.Strategy.Refresh({
        interval: 10000,
        force:true,
        refresh: function() {
        if (this.layer) {
            this.layer.attribution = "Data loading ...";
                // Load new attributions
            var layer = this.layer;
            $.ajax({
                url: "myURL",
                success: function(data){
                    layer.attribution = data;
                    map.getControlsByClass("OpenLayers.Control.Attribution")[0].updateAttribution();
                },
                global: false
            });
          }
     }
});

    var informationLayer =  new OpenLayers.Layer(
        "Sans fond de plan",
        {attribution:"Data loading ..."});

        informationLayerRefreshStrategy.setLayer(informationLayer);
        informationLayerRefreshStrategy.activate();
</script>

person Michael Laffargue    schedule 28.03.2011    source источник
comment
Какие данные вы показываете? Вам действительно нужно визуализировать его с помощью WMS?   -  person Niklas Wulff    schedule 28.03.2011
comment
Данные — это бизнес-информация, записанная в виде текста. Они генерируются сервером и должны обновляться автоматически (refreshStrategy). Я выбрал WMS, так как 95% моих слоев находятся в этой форме. Но я открыт для чего-то другого, пока серверная часть не требует слишком много времени для создания (у меня есть свой собственный сервер).   -  person Michael Laffargue    schedule 28.03.2011
comment
Связаны ли данные с каким-либо из стандартных слоев карты? Я думаю об использовании атрибуции, вы смотрели на это?   -  person Niklas Wulff    schedule 28.03.2011
comment
Я посмотрю на это, возможно, используя ajax для обновления атрибуции. Но я думаю, что у меня могут возникнуть проблемы с форматированием, как я намеревался. Данные не имеют прямого отношения к слоям, есть информация о контексте визуализации (какая-то дата, какие-то свойства объекта...)   -  person Michael Laffargue    schedule 28.03.2011
comment
Прохладный! Здорово, что можно помочь. :-) Жаль, что вам приходится обновлять значения вручную, похоже на небольшую ошибку в OpenLayers. Было бы здорово с помощью метода установки, который позаботится об этом.   -  person Niklas Wulff    schedule 29.03.2011


Ответы (1)


Мой вывод: используйте отдельный слой, который содержит только значения атрибуции. Делайте запросы к отдельному ресурсу, который вы можете настроить для использования JSON. В refreshStrategy обновите Attribution только для слоя с полученными данными и настройте сгенерированный div атрибута так, чтобы он отображался в правильном месте относительно вашей карты.

person Niklas Wulff    schedule 28.03.2011
comment
Не уверен, что попробую это сегодня, другие вещи в огне. Я попробую это завтра, но это кажется очень многообещающим. - person Michael Laffargue; 28.03.2011
comment
Работает как шарм со слоем атрибуции и ajax. Спасибо за идею. Отредактировал вопрос, если кто-то хочет увидеть использование. - person Michael Laffargue; 29.03.2011