#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
});