Внешний список информации о динамическом маркере текущего вида

#openlayers

#openlayers

Вопрос:

Я пытаюсь выяснить, как отображать динамические маркеры в виде списка в отдельном div с помощью openlayers, однако я надеюсь отображать только те, которые видны в текущем представлении. Это означает, что при каждом перемещении карты список информации о маркере изменяется. Есть ли у кого-нибудь предложения по достижению этого? Я все еще изучаю openlayers, поэтому прошу прощения, если ответ на этот вопрос должен быть очевиден. Заранее благодарю вас.

Комментарии:

1. Как вы храните свои маркеры? Есть ли у вас картографический сервер в бэкэнде, или XML-файл, или что-то еще?

Ответ №1:

Вы могли бы зарегистрироваться для moveend события карты и проверить, какие объекты отображаются с помощью onScreen() метода.

 var map = new Openlayer.Map( ... );
var layer = new OpenLayers.Layer.Vector( ... );

map.events.register('moveend', this, function() {
    var displayedFeatures = [];

    for (var i=0, len=layer.features.length; i<len; i  ) {
        var feature = layer.features[i];
        if (feature.onScreen())
            displayedFeatures.push(feature);
    }

    //Do somthing with displayedFeatures

});