Openlayers: маркер на разных векторных слоях

У меня есть карта OpenLayers с двумя векторными слоями. Оба они содержат маркер.

С помощью следующей ссылки мне удалось получить обработчик выбора на обоих уровнях. http://openlayers.org/dev/examples/select-feature-multilayer.html

Этот обработчик выбора запускает одну и ту же функцию для маркера на обоих слоях. Но как я могу отличить, на каком слое расположено выделенное?


person madc    schedule 18.10.2011    source источник


Ответы (1)


В OpenLayers событие обработчика запускается на одном окне просмотра или на холсте карты. Следовательно, вы должны прикрепить событие (выбор объекта и отмена выбора объекта) на каждом слое. Если вы следуете коду на странице примера, становится настолько ясно, что они используют одно и то же событие но в разных местах, где вы можете изменить свой собственный код.

vectors1.events.on({
            "featureselected": function(e) {
                showStatus("selected feature "+e.feature.id+" on Vector Layer 1");
            },
            "featureunselected": function(e) {
                showStatus("unselected feature "+e.feature.id+" on Vector Layer 1");
            }
        });

для векторов2 прикрепляется то же событие. Если вы ищете, на каком слое размещается объект, как указано в приведенном выше коде.

person Myra    schedule 19.10.2011
comment
Именно то, что я искал. Большое вам спасибо! Вы знаете, задокументировано ли это где-нибудь в документации OpenLayers? - person madc; 20.10.2011
comment
действительно, проверьте dev.openlayers.org/docs / files / OpenLayers / - person Myra; 20.10.2011