Мне необходимо расположить внутри полигонов некоторую информацию. Например название округа. Я не придумал ничего лучше (возможно это плохое решение), чем добавить в геометрию полигона свойство center примерно так:
{ "type": "Feature", "properties": { "ID": 0, "OSM_ID": '', "NAME": "ЦАО", "OKATO_CODE": "45286000000", "OKATO_NAME": "", "OKTMO_CODE": "", "OKTMO_NAME": "", "NAME_EN": "", "NAME_LAT": "", "AREA": 0, "ADM3_ID": 0, "ADM3_NAME": "", "ADM4_ID": 0, "ADM4_NAME": "Москова" }, "geometry": { "type": "Polygon",'center': [55.75, 37.59], "coordinates": [[блаблаблакоординаты]]},'options': polyStyle},
И далее при добавленнии динамических данных для каждого региона я создаю метку:
var objPlacemark = new ymaps.GeoObject({
// Описание геометрии.
'geometry': {
'type': "Point",
'coordinates': obj.geometry.center
},
// Свойства.
'properties': {
// Контент метки.
'iconContent': info.iconContent,
}
}, {
'iconImageHref': 'i/Circle_title.png',
'iconImageSize': [67, 67]
})
ymaps.geoQuery(objPlacema
и добавляю ее в коллекцию.
Теперь мне необходимо чтобы метка менялась при наведении курсора на регион.
Как этого добится? Как связать метку с регионом и получить ее в событии?
Я подсвечиваю регион в при наведении так:
collectionMoscow.each(function(geoObject){
geoObject.events
.add('mouseenter', function (e) {
// Ссылку на объект, вызвавший событие,
// можно получить из поля 'target'.
var obj = e.get('target')
obj.options.set(polyStyleHighlight);
if (obj.icon != undefined) {
obj.icon.options.set({'iconImageHref': 'i/Circle_main.png'})
}
})
.add('mouseleave', function (e) {
e.get('target').options.set(polyStyle);
});
});
Работающий пример: http://oceansites.ru/map/