Доброго времени суток!
Сочиняю меню на основе примера http://api.yandex.ru/maps
только используя JSON в качестве источника данных (такоой формат:
Coords = [{"Name":"Уфа","Latitude"
Вот что получается:
function load()
{
//Найдем на странице html элемент в котором будет размещаться карта
map = new YMaps.Map(YMaps.jQuery("#YMapsID")[0]);
map.setCenter(new YMaps.GeoPoint(Coords[0].Longitude, Coords[0].Latitude), 10);
map.addControl(new YMaps.ToolBar());
map.addControl(new YMaps.Zoom());
map.addControl(new YMaps.TypeControl());
map.enableScrollZoom();
for (i in Coords) {
if (i > 0){
addMenuItem(Coords[i], map);
}
}
};
// Добавление одного пункта в список
function addMenuItem (group, map) {
// Показать/скрыть группу на карте
YMaps.jQuery("<a class=\"title\" href=\"#\">" + group.Name + "</a>")
.bind("click", function () {
var link = YMaps.jQuery(this);
var point = new YMaps.GeoPoint(group.Longitude, group.Latitude);
var placemark = new YMaps.Placemark(point);
placemark.name = group.Name;
placemark.description = "";
var gCollection = new YMaps.GeoObjectCollection("");
gCollection.add(placemark);
// Если пункт меню "неактивный", то добавляем группу на карту,
// иначе - удаляем с карты
if (link.hasClass("active")) {
map.removeOverlay(gCollection);
} else {
map.addOverlay(gCollection);
}
// Меняем "активность" пункта меню
link.toggleClass("active");
return false;
})
// Добавление нового пункта меню в список
.appendTo(
YMaps.jQuery("<li></li>").appendTo(YMaps.jQuery("# menu"))
)
}
Вопроса 2:
1. Не срабатывает отзыв изображения группы объектов, т.е. показывает правильно, а повторный клик ссылки не убирает объекты с карты.
2. Код формирования оверлея для отображения мне кажется громоздким, нет ли более изящного способа реализовать то же самое?