Клуб API Карт

Всплывающая подсказка

Пост в архиве.

аСвоего опыта и своих знаний в программировании явно не хватает для решения ряда возникших вопросов (разбираюсь в этом максимум на 1%).

Меня интересует следующее. 1) Как добиться, чтобы все метки открывались только при нажатии на название группы меток. 2) И чтобы при нажатии на другое название группы меток все предыдущие метки исчезали с карты. Я знаком с примером

http://api.yandex.ru/maps/jsapi/examples/mapgroupmenu.html

, но самостоятельно применить его к своей странице не получается (не знаю, что оттуда точно взять и в какое место кода вставить). Пробовал, но карта часто вообще переставала отображаться. К тому же в приведенном примере полностью не реализовано то, чего хочу (там при нажатии на новую строчку меню предыдущие метки с карты не исчезают, а надо, чтобы исчезали - они исчезают только при двукратном нажатии на строку меню).

Даю ссылку на то, что удалось сделать за месяц головоломок

http://planeta-imen.narod.ru/almaata/0.html

Есть еще, конечно, пара вопросов. Например, как добиться, чтобы при нажатии на метку геоточки и при нажатии на ссылки из меню к той же геоточке в балуне отображалось разное содержание. Это требуется для тех случаев, если в одном здании находится А и Б. Когда нажимаем на метку, то в балуне должна быть инфа про А и Б, а когда нажимаем на строки из меню А или Б, то инфа должна соответствовать либо А, либо Б.

Надеюсь на помощь.

8 комментариев

Меня интересует следующее. 1) Как добиться, чтобы все метки открывались только при нажатии на название группы меток. 2) И чтобы при нажатии на другое название группы меток все предыдущие метки исчезали с карты.


Я поправил пример



Что касается разного содержания - есть несколько способов это сделать.
Можно использовать разные 
шаблоны для вывода данных
или передавать разный контент непосредственно в метод openBalloon у плэйсмарка





Еще одна заминка вышла. Как прикрутить всплывающие подсказки к меткам в этом примере? (http://dimik.narod.ru/ymaps/group-menu2.html)

 

Я разобрался самостоятельно с подсказками для одного примера, а с этим не получается.  Уж слишком подробно и много в руководстве о подсказках расписано - я запутался.

Методом тыка вроде удалось добиться нужного результата, но всё равно, хочется, чтобы кто-то подсказал, насколко корректно сделано

Было сначала так

// Создание группы
        function createGroup (title, objects, style) {
            var group = new YMaps.GeoObjectCollection(style);

После добавления:

// Создание группы
        function createGroup (title, objects, style) {
            var group = new YMaps.GeoObjectCollection({hasHint: true}, style);

Но вот после этого метки стали отображаться по умолчанию, хотя подключен модуль plainstyle. То есть где-то последовательность записи нарушил?

конструктор GeoObjectCollection принимает только один параметр

в вашем случае хэш {hasHint: true}

 стиль который идет за ним будет игнорироваться

 

Вам нужно прописать hasHint: true в этот стиль и его одного добавить в конструктор

Я в другом месте этот параметр прописал. Теперь и подсказки видны, и метки plain

// Создание метки
        function createPlacemark (point, name, description) {
            var placemark = new YMaps.Placemark(point, {hasHint: true});

Так пойдет же?

 

 

Спасибо за ответы!
Немного попозже (через энное кол-во дней) я хочу снова вернуться к этому же примеру. Предварительно скажу, что заинтересовал вариант использования этого образца для нанесения на карту новостей в городе. Вдохновился на это картой новостей Москвы. Но там при открытии карты сначала все метки видны. А потом при нажатии на нужную категорию (т.е. на пункт меню) остаются только необходимые метки. Вот мне интересно, как можно этого будет добиться. Пока отвечать не надо

А не подскажете как реализовать следующее.

Нужно при выборе группы делать выделения пункта в меню, при выборе другой группы перекидывать выделение на соответствующий пункт меню, а с предыдущего его снимать.

 

В оригинальном примере вот эта строчка отвечала за добавление активности:

// Меняем "активность" пункта меню

link.toggleClass("active");

 

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