Клуб API Карт

Помогите с кодом !!!

greendumb
15 августа 2010, 13:11

Добрый день! Очень нуждаюсь в помощи!

Имеется сайтик, на нем есть пользовательская карта (не обращайте внимание на ее "сырость") и динамический выпадающий список. Очень нужно сделать так, чтобы можно было управлять выводом групп меток на карту с помощью выпадающего списка, а сами группы меток подключать из YMapsML файлов.

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

Буду очень признателен за конкретный пример кода (соображаю еще очень слабо)

p.s. Если  необходимо, могу заплатить за помощь

13 комментариев
Подписаться на комментарии к посту
Переименуйте тему. Из название должно быть понятно содержание.
Например:
"Как сделать так, чтобы по событию один YMapsML убирался, а другой появлялся?"
Правильно сформированный вопрос содержит в себе 80% ответа.

В описании API к  jQuery есть пример как навесить обработчик события на изменения вашего списка. Но лучьше посмотрите вримерах к API описание создания собственных контролов для карты.

Примерах к js API есть описание вывода YMapsML.

Спасибо за совет, но очень нужна конкретная помощь с кодом. Наверное из-за жары восприимчивость к информации потерялась "наглухо"((( 
А этот пример http://api.yandex.ru/maps/ymapsml/examples/menufromymapsml.html не подходит?

Расскажите о своей задаче поподробнее.

Добрый вечер, Александр!


С группами меток я с горем пополам разобрался)) и у меня получилось как раз как на приведенном вами примере. Теперь мне надо "привязать" группы меток к моему выпадающему списку категорий (конкретный пример http://interaktivecard.com/bahchisaray.html ), еще естественно сделать так, чтобы при выборе следующей группы меток - предыдущие удалались.


И еще возникла попутная проблема - не получается изменить значек метки (даже на один из стандартных) я уже пробовал и в самом файле с метками прописывать и отдельный файл со стилями создавал...


Буду признателен за помощь!

Я так понимаю, что объекты у вас хранятся в БД и YMapsML вы генерируете "налету". Тогда при выборе категории и подкатегории запоминайте их id и передавайте серверному скрипту, который выводит YMapsML. Таким образом можно будет учесть этим параметры при выборке объектов из БД.

http://mysite.ru/generate-ymapsml.php?category=1&subcategory=3

Перед нанесением новых объектов все объекты с карты можно удалить с помощью метода карты removeAllOverlays();

map.removeAllOverlays();

О смене стилей в YMapsML у нас написан раздел в руководстве:
http://api.yandex.ru/maps/ymapsml/doc/guide/concepts/setappearance.xml

Также взгляните в сооотвествующий раздел на странице примеров:
http://api.yandex.ru/maps/ymapsml/examples/

Каждый объект прописываю вручную и подключаю через .xml файл.


Со стилями меток вообще беда - брал файл из примера Яндекса и просто подставлял свои координаты - никаких изменений.


Сейчас пробую на примере: http://interaktivecard.com/test.html


p.s. я смотрю что Бахчисарай начал прорисовываться в Яндексе - это очень радует, не подскажите когда будет детальная карта?

Если у вас набор xml-файлов, то можете из id категории и подкатегории формировать часть имени файла и загружать именно его.

http://mysite.ru/ymapsml-1-3.xml

Уберите переносы строк в YMapsML. Из-за этого стили и не применяются.

Замените:

         default#dpsIcon
 

на

default#dpsIcon


По поводу сроков по детализации карты ничего не могу сказать.

... уже даже стыдно писать.


со стилями разобрался, а вот насчет категорий, что-то не очень понял


Не могли бы Вы меня "носом тыкнуть" на моем примере http://interaktivecard.com/test.html (весь код хорошо видно) что и где нужно прописать?!


Очень прошу!!!

После того как выбрали нужную категорию пользователь нажимает кнопку "ок". Вы навешиваетесь на событие "click" у этой кнопки и в обработчике события загружаете ymapsml-файл (выбираете нужный в зависимости от выбранных категорий).
смысл я понял, а вот как реализовать - незнаю :-(
что, никто не поможет?
Предположим, что у кнопки "Ок" прописан id = "OkButton", тогда в обработчик инициализации карты можно добавить вот такой код:

YMaps.jQuery("#OkButton").bind("click", function () {
    map.removeAllOverlays(); // Удаляем все оверлеи с карты
   
    // Загружаем YMapsML-файл по ссылкам вида http://interaktivecard.com/ymapsml/-.xml
    // Например, http://interaktivecard.com/ymapsml/1-3.xml
    map.addOverlay(
        new YMaps.YMapsML(
            "http://interaktivecard.com/ymapsml/" + 
            YMaps.jQuery("#Country :selected").val() + "-" +
            YMaps.jQuery("#City :selected").val() + ".xml"
        )
    );
});

Огромное СПАСИБО!!! наконец-то получилось)))


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