Клуб API Карт

сентябрь 2014
Событие клик по метке
Вячеслав Макодин
1 сентября 2014, 04:38

Есть такой код:

function do_search(town){
                    $('#shops').html('');
                    $.getJSON("catalog/controller/module/iws_map_json.php", {town:town}, function(json){ 
                        var src_res="";
                        myCollection.removeAll();
                        src_res=src_res+'<ul class="nav nav-tabs" id="nav-mskspb">';
for (i = 0; i < json.length; i++) {
                            var sch = i+1;
                            var placemark = new ymaps.Placemark([json[i].iwslon,json[i].iwslat], {
                                iconContent: sch,
                                balloonContentHeader: '<div style="color:#ff0303;font-weight:bold">'+json[i].iwsadr+'</div>',
                                balloonContentBody: '<div style="font-size:13px;"><div><strong>Адрес:</strong> '+json[i].iwsadr+'<br>'+'<strong>Режим работы:</strong> '+json[i].iwstimework+'<br></div></div>'  
}, {
                                // Опции
                                preset: 'twirl#nightStretchyIcon' // иконка растягивается под контент
                            });
                            myCollection.add(placemark);                            
                            src_res=src_res+'<li class="li-mskspb">'+'<a data-toggle="tab" class="dashed" href="#pvz_'+json[i].id+'" id="'+json[i].id+'" onClick="return go_to('+json[i].iwslat+', '+json[i].iwslon+",'"+json[i].iwsadr+"');"+'\">\n\
                         '+'<span /*class="navnum"*/>'+sch+'</span>. '+'<span class="navnumt">'+json[i].iwsadr+'</span></a></li>';
                        }
src_res=src_res+'</ul>';
                        map.geoObjects.add(myCollection);
                        map.setBounds(myCollection.getBounds());
                        //map.setZoom(11, {duration: 1000});
                        map.setZoom(10, {checkZoomRange: true});
 
                        $('#shops').html(src_res);
 
                    });
                }

Как повесить на клик по метке изменение класса элемента  #show_description на active?

 

1 комментарий
API 2.1,события,балун
Получить ссылку на объект
Борис Моисеев
1 сентября 2014, 13:08

Добрый день. Не большой вопрос.

Взял пример 

http://api.yandex.ru/maps/jsbox/2.0/placemark_balloon_layout

 

На событие onCounterClick (имя события не менял пока) требуется получить ссылку на объект метки на которой мы кликнули, предварительно в свойство записано - ID:pnt.PDID.

 

e.get('target').properties.get('Id') -  не работает, говорит метод не поддерживается.

 

1 комментарий
метка,API 2.1,балун,макеты
API Яндекс.Карт в Иркутске
Maps API
1 сентября 2014, 15:07

5 сентября в Иркутске на Байкальском интернет форуме 2014, который пройдет с 4 по 6 сентября, выступит маркетолог API Яндекс.Карт Андрей Чеботарев. Он расскажет о том, как сделать сайт более удобным для посетителя, быстрее и лучше решать задачи пользователей при помощи визуальных географических карт, а также строить вокруг карт отдельные уникальные пользовательские сервисы. Из доклада слушатели узнают, какие задачи решает API Яндекс.Карт, и как его можно использовать.

Доклад пройдет с 15:30 до 16:00 в аудитории 204, Иркутской областной библиотеки им. И.И. Молчанова-Сибирского. Готовьте интересные вопросы и приходите!

Подробная программа и регистрация на конференцию.

Нет комментариев
конференции,анонсы
Карта яндеса с разбивкой на муниципальные образования
winedex
1 сентября 2014, 16:58

Здравствуйте, уважаемый клуб разработчиков!

Хотел поинтересоваться, нет ли готового решения разбивки карты России на муниципальные образования (то есть разбивка на области, далее области делятся на районы и так далее), и каждое мунициальное образование чтобы уже было обведено заливкой? Спасибо!

1 комментарий
регионы,API 2.1,полигон
Выделить определенные дома/здания на карте
CRAMAC
1 сентября 2014, 17:45

Всем привет. Подскажите ,как выделить определенные здания на карте? Хочется сделать карту и выделить те строения, которые обслуживаются нашей организацией.

3 комментария
API 2.1,полигон
Геокодирование по точному названию
varravann
2 сентября 2014, 05:47

В процессе освоения геокодирования столкнулся с проблемой: Геокодер часто выдает дополнительные "похожие" точки, которые трудно отсеять в автоматическом режиме.

 

Конкретные примеры:

Ищу "поселок Ошарово, район Эвенкийский, Красноярского края" - находятся и (правильный) "поселок Ошарово Эвенкийский район, Красноярский край, Россия", и (неправильная) "деревня Ошарово, Нижнеингашский район, Красноярский край, Россия".

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

 

Спрашивается, как заставить геокодер искать буквальное совпадение, без творчества и "интеллектуальности"? Делать полный самостоятельный анализ выдачи геокодера на предмет соответствия исходному запросу очень уж тяжко....

 

P.S. Ограничить зону поиска по координатам не предлагать, т.к. оная заранее неизвестна.

6 комментариев
геокодирование
новый модуль Yandex maps api 2 для wordpress
Ильяс Джораев
2 сентября 2014, 08:01

Я обнаружил на сайте wordpress.org плагин для карт яндекса. представляю ссылку: https://wordpress.org/plugins/yandex-maps-api/faq/

 

В вашем каталоге плагинов для вордпресса он отсутствует. 

1 комментарий
WordPress,модули
Изменение стиля метки по клику
s.dilyaverov
3 сентября 2014, 13:19

Есть список элементов по которому формируются метки на карте, метки могут быть разного вида(метка со стилем из стандартного набора option.presetStorage, метка с кастомным цветом, метка с изображением(спрайт), тянущаяся метка с текстом). Сделал изменение стиля каждого вида метки при наведении на нее. Как задать метке другой стиль при клике на нее(стиль "активной" метки(без наведений)),  так чтобы стиль других меток возвращался в свое первичное состояние(с наведениями)?

 

  var list = $('#farmacy-list'),

        elem = list.find('.elem'),

        collection = new ymaps.GeoObjectCollection();

 

    elem.each(function() {

        var _t = $(this),

            type = _t.data('placemark'),

            name = _t.data('name'),

            coords = _t.data('coords');

 

        switch (type) {

            case 'pin':

                var placemark = new ymaps.Placemark(coords, {}, {

                    preset: 'islands#darkGreenIcon'

                });

                placemark.events

                    .add('mouseenter', function(e) {

                        e.get('target').options.set({

                            preset: 'islands#greenIcon'

                        });

                    })

                    .add('mouseleave', function(e) {

                        e.get('target').options.set({

                            preset: 'islands#darkGreenIcon'

                        });

                    });

                break;

            case 'promo':

                var placemark = new ymaps.Placemark(coords, {}, {

                    preset: 'islands#icon',

                    iconColor: '#eb9b17'

                });

                placemark.events

                    .add('mouseenter', function(e) {

                        e.get('target').options.set({

                            iconColor: '#ffa91a'

                        });

                    })

                    .add('mouseleave', function(e) {

                        e.get('target').options.set({

                            iconColor: '#eb9b17'

                        });

                    });

                break;

            case 'mini':

                var placemark = new ymaps.Placemark(coords, {}, {

                    iconLayout: 'default#image',

                    iconImageClipRect: [[0,0], [21,21]],

                    iconImageHref: 'img/pin_mini.png',

                    iconImageSize: [21, 21],

                    iconImageOffset: [-10, -10]

                });

                placemark.events

                    .add('mouseenter', function(e) {

                        e.get('target').options.set({

                            iconImageClipRect: [[0,21], [21,42]]

                        });

                    })

                    .add('mouseleave', function(e) {

                        e.get('target').options.set({

                            iconImageClipRect: [[0,0], [21,21]]

                        });

                    });

                break;

            case 'pin-text':

                var placemark = new ymaps.Placemark(coords, {

                    iconContent: name

                }, {

                    preset: 'islands#darkGreenStretchyIcon'

                });

                placemark.events

                    .add('mouseenter', function(e) {

                        e.get('target').options.set({

                            preset: 'islands#greenStretchyIcon'

                        });

                    })

                    .add('mouseleave', function(e) {

                        e.get('target').options.set({

                            preset: 'islands#darkGreenStretchyIcon'

                        });

                    });

                break;

        }

 

        collection.add(placemark);

 

    });

 

    map.geoObjects.add(collection);

    map.setBounds(map.geoObjects.getBounds());

 

2 комментария
метка,API 2.1,стили
Дополнительные объекты на карте
Александр
3 сентября 2014, 13:55

По-умолчанию на карте показываются разные объекты (кафешки, теотры, остановки). Можно ли их как-то отключить и не показывать?

1 комментарий
слои,тайлы,API 2.1
Подскажите есть ли в API функция для реализации поиска координаты на маршруте на заданном расстоянии от начальной точки.
greezleyxxx
3 сентября 2014, 17:06

Есть созданный маршрут из Питера в Мск. Как узнать координату точки на маршруте на расстоянии 150км от Питера ?

Существует ли подобные инструменты в API ?

3 комментария
маршрутизация,API 2.1,координаты
Маршрутизация через переправы?
varravann
4 сентября 2014, 00:03

Осваивая маршрутизатор на примере сибирских далей (Красноярский край) столкнулся с одной проблемой:

Судя по карте дорог, очень многие из них завязаны на паромные переправы через крупные реки (Ангару прежде всего), но граф дорог Яндекса знает далеко не все переправы, а потому Маршрутизатор отправляет в объезд на тысячу километров (пример).

Можно ли с этим как-то бороться? Или только отправлять заявки в суппорт Я.карт, просить добавить переправу и ждать три месяца?

1 комментарий
маршрутизация,API 2.1
Кэширование карты
mib32
4 сентября 2014, 02:47

Привет ребят! Ни у кого не получалось реализовывать кеширование карт? Может это реально? У меня яндекс карты на главной странице сайта ( приложение ruby on rails ) и каждый раз карты грузятся с сервера.. почему бы их не кешировать?

9 комментариев
пользовательское соглашение
Удаление объектов с карты
Dracul-Aid
4 сентября 2014, 03:28

Подозреваю что вопрос очень глупый, но все же не нашел в документации, как корректно удалять объекты с карты?

Например создал я метку:

var myPlacemark = new ymaps.Placemark([55.8, 37.6])

как теперь ее удалить? В общем, вопрос касается и прочих элементов, включая маршруты.

1 комментарий
метка,API 2.1
Как можно использовать ваш API в обычной java aplication?
ya9113922
4 сентября 2014, 08:50

Как можно использовать ваш API в обычной java aplication?

Меня интересуют 3 функции из ICoordSystem.

Нужно рещить прямую и обратную геодезическую задачу. Надо ли при этом иметь соединение с интернетом? Как заполнять параметры имея долготу и широту текщей точки (точек) и направление в градусах и расстояние в метрах.

Спасибо...

2 комментария
пользовательское соглашение,Java
В IE 10 вместо карты серый квадрат
lady.svetlanasoboleva
4 сентября 2014, 09:57

Помогите пожалуйста решить следующею проблему. Сайт сделан на WP (версия 3.9.2.), плагин Yandex Maps for WordPress (версия 1.4.2.), карта вставлена в страницу. При просмотре сайта через IE 10 ( ОС widows 8) вместо карт серый квадрат. Через другие браузеры все отображается правильно.

11 комментариев
IE10,WordPress,API 1.x
Изменение позиции Placemark при изменении масштаба.
mike.srk
4 сентября 2014, 11:19

Добрый день! 

 

При изменении колесиком мыши масштаба карты происходит перемещение метки (изменение координаты). Не смог найти как это исправить. 

Пример : 

 

http://api.yandex.ru/maps/jsbox/2.1/placemark_balloon  

Выбрав изображение карты вращайте колесо мыши, метка изменяет свои координаты .. явно перетекая поверх объектов.

Как это полечить ? Браузер - Хром.

 

Спасибо !  

4 комментария
метка,API 2.1
Железная дорога на карте
bodim.ya
4 сентября 2014, 14:52

Добрый день. 

Подскажите, существует ли возможность подсветить имеющуюся железную дорогу на карте? Или нарисовать поверх? Разумеется вариант нарисовать линию по геотегам не рассматривается. 

Спасибо

5 комментариев
слои,тайлы,API 2.1
Необходимо чтобы тот кто добавляет инфу в каталог отмечал на карте свое предприятие
А.М.
4 сентября 2014, 18:23

Необходимо чтобы тот кто добавляет инфу в каталог отмечал на карте свое предприятие, а в дальнейшем эта карта с отмеченным предприятием  показывалась на отдельной странице (при загрузке уже совершенно другой страницы, а пользователь отмечает - на странице регистрации предприятия). Как это реализовать? Подскажите готовое решение, вроде задача простоая, а я уже много времени на это потратил. Я знаю html и php.

3 комментария
Next. Создание макета балуна
Борис Моисеев
4 сентября 2014, 19:28

Из прошлого ответа все получилось, спасибо огромное.

Проблема 2. Вроде учитывая что вызывается с контекстом макета, не получается получить координаты метки

Вам в этом примере нужно в функции-слушателе клика вызвать метод getData().geoObject самого макета.

Чтобы это сделать нужно вызвать функцию с контекстом макета.

$('#counter-button').bind('click', $.proxy(this.onCounterClick, this));

 

onCounterClick: function (e) { 
this.get('coordPosition'); - Ошибка

this.getData().get('coordPosition'); - Ошибка

...

пока придумал лишь чтобы просто передавать как свойство.

и еще, пожалуйста, объясните мне здесь наличие Е (function (e)) - зачем оно?

7 комментариев
API 2.1,балун,макеты
Возможно ли с java сервера использовать api?
grinchenko.ed
5 сентября 2014, 00:36

Цель следущая: java  сервер должен получать некоторую информацию о пробках используя API Яндекс карт, а потом передавать эту информацию различным клиентам, таким как web-приложение или мобильное приложение

1 комментарий
API 2.1,пользовательское соглашение,Java