Клуб API Карт

Перестало работать . ошибка getShape undefined . api 2.1.dev

Олег
23 декабря 2013, 11:00

Были сделаны метки - ссылки.

 

для переходов по клику на маркер был написан такой код

 

window.m_myMap.geoObjects.add(myCityCollection);

myCityCollection.each(function(city){

city.events.add('click', function(e){

   document.location=city.properties.get('urlToGo');

   e.preventDefault();

},city);   

});

Сейчас при движении указателя мыши над картой на каждое смещение растут счетчики ошибок . больше всего
  1. 3335
14 комментариев
Подписаться на комментарии к посту

Мы посмотрим, но в общем случае лучше использовать event delegation, чем вот так в цикле плодить слушателей.

window.m_myMap.geoObjects.add(myCityCollection);

myCityCollection.events.add('click', function (e) {

    var city = e.get('target'); // метка, получившая клик

    window.location = city.properties.get('urlToGo');

});

Можно ссылку на описание ? Я еще не работал с делегированием.

http://learn.javascript.ru/event-delegation

http://api.yandex.ru/maps/doc/jsapi/2.x/dg/concepts/events.xml

 

В принципе этот термин используется для DOM-событий, а АПИ работает по такому же принципу, пробрасывая "bubling" события вверх по иерархии.

Поэтому, вместо создания обработчиков для каждого геообъекта, можно создать один на родителе.

Делаем из меток ссылки на страницы вместо открытия балонов

спасибо за совет. Так гораздо лучше.

myCityCollection.events.add('click', function(e){
 var city = e.get('target');
 document.location=city.properties.get('urlToGo');
 e.preventDefault();
 

});


 

Всеволод Шмыров
23 декабря 2013, 11:30
Доброе утро! Могли вы скинуть публичную ссылку на странице с ошибкой ? Без общего контекста очень сложно разобраться в чем дело.

подключил дебаг режим.

Ошибок гораздо больше. 

Точнее , то что  я написал выше, в режиме без дебага.

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

Оверлей скрывался, карта распахивалась на полный экран. менялся ее масштаб. добавлялись элементы управления и кнопка закрыть.

По клику на метку был переход . По кнопке закрыть востанавливалось предущее состояние.

Новая версия, напишу в таком виде, хоть роботсом и прикрыто

http:// orel точка new точка allcorp точка ru /

 

сейчас ошибка в момент применения стиля на весь экран с установкой более мелкого масштаба .

Разобрался. В коллекции меток были с пустыми координатами.

 

Добрый день, Олег.

К сожалению, карта подключенная в шапку вашего сайта нарушает Пользовательское соглашение (http://legal.yandex.ru/maps_api/):

2.3.7.2. Удалять, скрывать или модифицировать любые содержащиеся в Сервисе или Данных товарные знаки, логотипы, ссылки или иные указания на Правообладателей, равно как и любые другие уведомления и/или информацию, передаваемые Сервисом вместе с Данными.

2.3.7.5. Сохранять, обрабатывать и видоизменять полученные через Сервис Данные (включая результаты геокодирования), за исключением случаев временного хранения (кэширования) результатов геокодирования исключительно для целей улучшения функциональности и работоспособности Сервиса и только для использования в рамках возможностей, предоставляемых Сервисом.

Сейчас у вас закрыты логотип и информация о правообладателях в подключенной в шапке карты. Кроме этого из-за технических особенной - они у вас вообще не кликабельные. Кроме этого у вас изменены наши тайлы, то есть вы видоизменили полученные от сервиса данные. 

Вынужден просить вас устранить нарушения и привести сайт к требованиям Пользовательского соглашения. Спасибо за понимание.

стилизацию тайтлов в грейскале убрал. Див оверлей уменьшил, до необходимого минимального размера.

А вот со строчкой копирайта нужна помощь.

Можно ли ее перенести средствами апи в правый верхний угол или приподнять от нижнего края ?

Отлаживал под широким монитором, и что она при меньшей ширине заходит под форму поиска 

упустил из внимания. А дизайн требует , что отбивка идет по середине поиска.

Поднял копирайт через ксс в правый верхний угол. В полноэкранном режиме возвращаю его на место.

Так допустимо ?

Все ли  нарушения  исправлены? 

 

Олег, спасибо за быструю реакцию. Да. Действительно так все нарушения исправлены - копирайты кликабельны и видны. Спасибо большое и удачи в реализации проекта!

[offtop]

У вас там контейнер перекрывает большую часть шапки, из-за него непрокликивается карта. Это ничего не нарушает, но вряд ли так задумано: http://yadi.sk/d/yjVc5DEWEnE9M

[/offtop]

изначально там был фильтр на самом диве , в который вкладывается карта

filter: grayscale(100%);

плюс див , который сейчас частично перекрывает карту был в полную высоту карты с прозрачностью

70%. 

плюс Копирайты уходили под форму поиска.

 

Сейчас все допустимо. 

Но в релиз увы не пойдет.

Шапка будет переделана без карты.