событие маркера openstreetmaps не работает - PullRequest
1 голос
/ 02 марта 2012

Есть цикл для отображения маркеров с событиями на Openstreemaps, например:

for (var i = 1; i <= length; i++) {

    instance.markers[provider][index]['marker'] = new OpenLayers.Layer.Markers("Markers");
    instance.map_instance[divBlock].map.addLayer(instance.markers[provider][index]['marker']);
    instance.markers[provider][index]['icon'] = new OpenLayers.Icon(coord_data.img_icon, new OpenLayers.Size(17,17));
    var mark = new OpenLayers.Marker(center, instance.markers[provider][index]['icon']);
    mark.events.register('click', mark, function(evt){
        alert(coord_data.file);
    });
    instance.markers[provider][index]['marker'].addMarker(mark);
}

События в этом коде не работают.

Следующий event.register работает, но на целых маркерах внутри слоя:

instance.map_instance[divBlock].map.events.register('click', instance.markers[provider][index]['marker'], function(evt){
    alert(coord_data.file);
});

Как я могу добавить событие лично для каждого маркера в этом цикле?

1 Ответ

0 голосов
/ 22 ноября 2012

для этого вам необходимо связать свои данные ordin_data.file с каждым объектом-маркером.

для этого вы можете использовать любой атрибут маркера Like .. idtitle ...

Пример:

var mark = new OpenLayers.Marker(center, instance.markers[provider][index]['icon']);
mark.title = coord_data.file;
mark.events.register('click', mark, function(evt){
    alert(this.title);
});

надеюсь, это сработает.

...