Клуб API Карт

Текст в многоугольнике при помощи Placemark

NGURIN
20 сентября 2014, 10:43

Идея в том чтоб выводить текст в центре многоугольника.

Не пойму почему dis и dot, если [ ] масивы, то их не хочет выводить((( Приходится делать, так! Если, есть идеи, как подправить код, буду благодарен.

 

var dis = '';
var dot = '';
$.getJSON('data.php', function(json){

json = $.parseJSON(json);

if (json.status == 'OK') {
for (i = 0; i < json.markers.length; i++) {

  dis = new ymaps.Polygon(json.markers[i].coords, {},
{
  cursor: 'pointer', 
  fillColor: '#1226ba',
  strokeColor: '#c1111b',
  fillOpacity: 0.5,
  strokeWidth: 1
});

myMap.geoObjects.add( dis );
dis.events.add('mouseenter', function (e) {
e.get('target').options.set('fillColor', '# c1111b );
}).add('mouseleave', function (e) {
e.get('target').options.set('fillColor', '# 1226ba' );
});


var circleLayout = ymaps.templateLayoutFactory.createClass('<div class="placemark_layout_container"><div class="circle_layout">'+json.markers[i].countUsers+'</div></div>');
dot = new ymaps.Placemark(json.markers[i].center, {iconContent: json.markers[i].text}, {iconLayout: circleLayout, iconShape: {type: 'Circle', coordinates: [0, 0], radius: 0}});
myMap.geoObjects.add(dot);
};

}else{
alert('Произошла ошибка!');
};
});

 

1 комментарий

 

Не пойму почему dis и dot, если [ ] масивы, то их не хочет выводить(((

А должен? массивы можно добавлять только через geoQuery.

 

Обработчики событий лучше вешать один на коллекцию, а не на каждый полигон (event delegation)

 

Текст на полигоне я бы рисовал на канвасе и добавлял через опцию fillImageHref