Клуб API Карт

Не получается измениь значок метки

anna.daviy
11 января 2011, 17:19
Жутко извиняюсь за создание такой, наверно, для многих "глупой" темы, но я не будучи программистом и вообще далекой от этой области, не смогла-таки понять, как поставить на карте собственный значок метки. Все метериалы этого клуба я прочитала, но так и что-то не получается.

Моя проблема:
На нашем сайте есть карта http://mark.ru/home/wifi/besplatnaya_wifi_set/, нужно заменить фиолетовую метку на вот эту http://mark.ru/images/abonzal.gif.

Так понимаю, что переделывать нужно вот эту, исходную, часть кода:
 YMaps.Styles.add("constructor#pmvvmPlacemark", {
iconStyle : {
href : "http://api-maps.yandex.ru/i/0.3/placemarks/pmvvm.png",
size : new YMaps.Point(28,29),
offset: new YMaps.Point(-8,-27)
}
});



map.addOverlay(createObject("Placemark", new
YMaps.GeoPoint(53.208595,56.851203), "constructor#pmvvmPlacemark",
"отель «park inn», ул. бородина, 25"));

(дальнейший список адресов) ............

function createObject (type, point, style, description) {
var allowObjects = ["Placemark", "Polyline", "Polygon"],
index = YMaps.jQuery.inArray( type, allowObjects),
constructor = allowObjects[(index == -1) ? 0 : index];
description = description || "";

var object = new YMaps[constructor](point, {style: style, hasBalloon : !!description});
object.description = description;

return object;


Новый стиль я создала и метку вроде вставила (все по аналогии, как делали в примерах):

var s = new YMaps.Style();
s.iconStyle = new YMaps.IconStyle();
s.iconStyle.href = "http://mark.ru/images/abonzal.gif";
s.iconStyle.size = new YMaps.Point(28, 29);
s.iconStyle.offset = new YMaps.Point(-8, -8);
var ownPlacemark = new YMaps.Placemark(coords, {
style: s
});
map.addOverlay(ownPlacemark);

var coords = new YMaps.GeoPoint(53.208595,56.851203),
placemark = new YMaps.Placemark(coords);
map.addOverlay(placemark);

А вот когда это ставлю в код на карте вообще все метки пропадают.
Программисты нашей компании отмахиваются. А значок новый очень хочется поставить. Если не сложно, подскажите, что и куда нужно поставить. Заранее спасибо.
3 комментария
Подписаться на комментарии к посту
По описанию трудно понять, в чем дело. Вероятно, вы где-то не там стили назначаете.

Попробуйте вначале добавить новый стиль в хранилище:

var s = new YMaps.Style();
s.iconStyle = new YMaps.IconStyle();
s.iconStyle.href = "http://mark.ru/images/abonzal.gif";
s.iconStyle.size = new YMaps.Point(28, 29);
s.iconStyle.offset = new YMaps.Point(-8, -8);

YMaps.Styles.add('my#style', s);

После этого во всех строках типа

map.addOverlay(createObject("Placemark", new YMaps.GeoPoint(53.208595,56.851203), "constructor#pmvvmPlacemark", ...

нужно "constructor#pmvvmPlacemark" заменить на "my#style".
спасибо, сейчас попробую)
еееее, спасибо! получилось!