Клуб API Карт

Не отображаются полигоны...

xney
8 сентября 2009, 11:20

Суть, сделал карту с полилиниями и точками ни помощи конструктора, добавил полигон из примера, все объекты сделанные конструктором отображаются, а полигоны - нет.. В чём может быть проблема?

пример кода: 

 window.onload = function () {
var map = new YMaps.Map(document.getElementById("YMapsID"));
map.setCenter(new YMaps.GeoPoint(37.828218,55.755454), 16, YMaps.MapType.MAP);
map.addControl(new YMaps.Zoom());
map.addControl(new YMaps.ToolBar());
map.addControl(new YMaps.TypeControl());
map.enableScrollZoom();

var s = new YMaps.Style();
s.iconStyle = new YMaps.IconStyle();
s.iconStyle.offset = new YMaps.Point(0,0);
s.iconStyle.href = "/images/map/bulltest.png";
s.iconStyle.size = new YMaps.Point(1,1);
YMaps.Styles.add("wizard#bll1Point", s);


var s = new YMaps.Style();
s.iconStyle = new YMaps.IconStyle();
s.iconStyle.offset = new YMaps.Point(-8,-27);
s.iconStyle.href = "http://api-maps.yandex.ru/i/0.3/placemarks/pmblm2.png";
s.iconStyle.size = new YMaps.Point(28,29);
YMaps.Styles.add("wizard#blm2Point", s);


var s = new YMaps.Style();
s.iconStyle = new YMaps.IconStyle();
s.iconStyle.offset = new YMaps.Point(-8,-27);
s.iconStyle.href = "http://api-maps.yandex.ru/i/0.3/placemarks/pmblm3.png";
s.iconStyle.size = new YMaps.Point(28,29);
YMaps.Styles.add("wizard#blm3Point", s);


var s = new YMaps.Style();
s.iconStyle = new YMaps.IconStyle();
s.iconStyle.offset = new YMaps.Point(-30,-30);
s.iconStyle.href = "/images/map/bulltest.png";
s.iconStyle.size = new YMaps.Point(1,1);
YMaps.Styles.add("wizard#ywl0Point", s);


var s = new YMaps.Style();
s.lineStyle = new YMaps.LineStyle();
s.lineStyle.strokeColor = "006cff7D";
s.lineStyle.strokeWidth = 1;
YMaps.Styles.add("wizard#006cff7D1Line", s);


var s = new YMaps.Style();
s.lineStyle = new YMaps.LineStyle();
s.lineStyle.strokeColor = "c2ccd27D";
s.lineStyle.strokeWidth = 5;
YMaps.Styles.add("wizard#c2ccd27D5Line", s);

var style = new YMaps.Style();
style.polygonStyle = new YMaps.PolygonStyle();
style.polygonStyle.fill = 1;
style.polygonStyle.outline = 1;
style.polygonStyle.strokeWidth = 10;
style.polygonStyle.strokeColor = "ffff0088";
style.polygonStyle.fillColor = "ff000055";
YMaps.Styles.add("wizard#Example", style);

var placemark1 = new YMaps.Placemark(new YMaps.GeoPoint(37.829844,55.755079), {style: "wizard#bll1Point", balloonOptions: {maxWidth: 300}});
map.addOverlay(placemark1);
placemark1.setBalloonContent("Офис");
var placemark2 = new YMaps.Placemark(new YMaps.GeoPoint(37.829063,55.755849), {style: "wizard#blm2Point", balloonOptions: {maxWidth: 300}});
map.addOverlay(placemark2);
placemark2.setBalloonContent("Въезд на территорию");
var placemark3 = new YMaps.Placemark(new YMaps.GeoPoint(37.828883,55.755206), {style: "wizard#blm3Point", balloonOptions: {maxWidth: 300}});
map.addOverlay(placemark3);
placemark3.setBalloonContent("Склад");
var placemark4 = new YMaps.Placemark(new YMaps.GeoPoint(37.82255,55.757607), {style: "wizard#ywl0Point", balloonOptions: {maxWidth: 300}});
map.addOverlay(placemark4);
placemark4.setBalloonContent("0000фывфывфыв");
var polyline1= new YMaps.Polyline([new YMaps.GeoPoint(37.828596,55.755935),new YMaps.GeoPoint(37.828155,55.754983),new YMaps.GeoPoint(37.829692,55.75475),new YMaps.GeoPoint(37.830132,55.755712),new YMaps.GeoPoint(37.828587,55.755935)], {style: "wizard#006cff7D1Line",clickable: 0});
map.addOverlay(polyline1);
var polyline2= new YMaps.Polyline([new YMaps.GeoPoint(37.82891,55.755398),new YMaps.GeoPoint(37.828739,55.755079),new YMaps.GeoPoint(37.828964,55.755039),new YMaps.GeoPoint(37.829126,55.755368),new YMaps.GeoPoint(37.82891,55.755403)], {style: "wizard#c2ccd27D5Line",clickable: 0});
map.addOverlay(polyline2);

var polygon1 = new YMaps.Polygon([new YMaps.GeoPoint(37.828596,55.755235),new YMaps.GeoPoint(37.828155,55.752983),new YMaps.GeoPoint(37.829692,55.75475),new YMaps.GeoPoint(37.830132,55.755712),new YMaps.GeoPoint(37.828587,55.751935),new YMaps.GeoPoint(37.828434,55.755077)], {style: "wizard#Example", hasHint: 1, hasBalloon: 1});
  polygon.name = "Офис";
  polygon.description = адрес офиса..."; 
map.addOverlay(polygon1);
6 комментариев
Подписаться на комментарии к посту
Вы создаете многоугольник и записываете указатель в переменную с именем polygon1, а потом пытаетесь задать значение полей у объекта с именем polygon. Возникает ошибка, т. к. объекта с именем polygon не было создано.

Еще Вы "потеряли" открывающую кавычку, когда задавали описание к многоугольнику.

Замените:
polygon.name = "Офис";
polygon.description = адрес офиса...";

на
polygon1.name = "Офис";
polygon1.description = "адрес офиса...";
Исправил, но результата нет... 

Уже замучился, в чём может быть проблема? Всё по аналогии с полилиниями делаю...



Может дадите ссылку?

К сожалению сайт на денвере... Код полностью привёл тут...

Могут быть проблемы из за подключаемых js WordPress'ом 2.8.4.?

// Суть: т.к. в конструкторе нет полигонов, сделал полилинии, но теперь хочу их заменить на полигоны, что бы сделать заливку... Даже если просто добавить полигон из примера в код, он не отображается...

Версия API 1.1?
Какие-нибудь js-ошибки есть?

Совет: попробуйте вышеприведенный код вставить в обычную html-страницу, без использования CMS Wordpress. Если ошибка повторится, то выложите эту страницу на какой-нибудь общедоступный хостинг (например, narod.ru). Если все заработает, то значит дело в CMS.