Клуб API Карт

май 2014
Странный ответ от геокодера
npab
1 мая 2014, 10:55

Добрый день!

 

Кажется, я заметил баг в ответе от геокодера. Если я делаю запрос на дом, находящийся в регионе РФ (Питер, Ижевск и т.п.), в котором присутствует несколько корпусов, но в запросе я не детализирую это, ответ содержит ветку "AdministrativeArea". Примеры: 

Санкт-Петербург, пр. Обуховской обороны, д. 269

Ижевск, ул. Университетская, д. 201 

НО!

Почему-то если я спрашиваю про адрес в Москве (???), который тоже содержит корпуса, ветка "AdministrativeArea" не возвращается!

Москва, ул. Маршала Новикова, д. 2 


В связи с этим, вопрос к разработчикам: это баг? Или так и должно быть? И если да, как мне скорректировать в таком случае запрос? Хотелось бы получать доступ к региону. 

2 комментария
геокодирование
Не срабатывает клик на метке в Chrome
npab
2 мая 2014, 19:30

Добрый день!

Иммется код:

 

 $.getScript('http://api-maps.yandex.ru/2.1/?lang=ru_RU', function () {
     var myMap;
     ymaps.ready(function () {
         var gp_1 = 37.72;
         var gp_2 = 55.8;
         if (document.getElementById('my_address_map').hasAttribute('gp_1')) {
             gp_1 = document.getElementById('my_address_map').getAttribute('gp_1');
         }
         if (document.getElementById('my_address_map').hasAttribute('gp_2')) {
             gp_2 = document.getElementById('my_address_map').getAttribute('gp_2');
         }
         myMap = new ymaps.Map("my_address_map", {
             center: [gp_2, gp_1],
             zoom: 10,
             controls: ['zoomControl', 'searchControl']
         });
         $("input:radio").each(function () {
             if (this.hasAttribute('gp_2') && this.hasAttribute('gp_1')) {
                 var gp_1 = this.getAttribute('gp_1');
                 var gp_2 = this.getAttribute('gp_2');
                 var address = $(this).closest("div").next("label").text();
                 var description = $(this).closest("div").next("label").attr("title");
                 add_placemark(myMap, gp_2, gp_1, address, description);
             }
         });
         function add_placemark(myMap, gp_1, gp_2, address, description) {
             myPlacemark = new ymaps.Placemark([gp_1, gp_2], {
                 // Чтобы балун и хинт открывались на метке, необходимо задать ей определенные свойства.
                 balloonContentHeader: address,
                 balloonContentBody: description,
                 hintContent: address
             });
             myPlacemark.events.add("click", function () {
                 alert('Hello World!');
             });
             myMap.geoObjects.add(myPlacemark);
             myPlacemark.events.add('click', function () {
                 alert('О, событие!');
             });
         }
         function selectOffice(objLink) {
             alert('true!');
             return false;
         }
         $("input:radio").change(function () {
             var gp_1 = this.getAttribute('gp_1');
             var gp_2 = this.getAttribute('gp_2');
             myMap.setCenter([gp_2, gp_1]);
             myMap.setZoom(16, {
                 smooth: true
             });
             jumpTo('my_address_map');
         });
     });
 });

 

Упорно не выдает алерт при клике на балуна! 

1 комментарий
метка,API 2.1,события
Кластеризация зависает
bonart-maxim
2 мая 2014, 21:45

Если в этом примере из песочницы http://api.yandex.ru/maps/jsbox/2.1/clusterer_create
в массив points добавить 350 объектов, затем нажать автообновление и начать приближать, то на определенном шаге возникает ошибка. В консоле это выглядит так: Uncaught TypeError: Cannot read property '0' of undefined

Почему она возникает и как с ней бороться

1 комментарий
кластеризатор,API 2.1
Баг в 2.1 в control.ListBox
khoden87
3 мая 2014, 07:06

Столкнулся, когда пытался переехать с 2.0 на 2.1

Баг заглючается в том, что нельзя добавлять ListBoxItem в ListBox после создания.

Возможно они просто не рендерятся. 

Точнее, если сразу добавить, то все ОК. Но если чуть погодя, то не получается (а у меня они загружаются ajax-запросом)

 

Проще всего продемонстрировать примером из песочницы:

Исходник: http://api.yandex.ru/maps/jsbox/2.1/list_box_layout

Модифицированная версия: http://jsbin.com/hawip/1/edit?js,output (изменения сразу после инстанцирования listBox)

        // Пытаюсь добавить пункты отложено
        setTimeout(function(){
          listBox.add(listBoxItems[0]);
          listBox.add(listBoxItems[1]); 
        }, 100); 

 

5 комментариев
API 2.1,элементы управления,API 2.0,контролы,список
Маршрутизация с точками
markin-yu
5 мая 2014, 12:39

Доброго дня.

Подскажите, реализуемо ли подобное? Если да, то какими средствами.
Строим маршрут по двум точкам. и показываем на карте только те, объекты из бд, координаты которых соответствуют маршруту.
Сложность в проверке координат на принадлежность к маршруту

2 комментария
маршрутизация
Объекты в радиусе 10 км.
serial-i
5 мая 2014, 15:45

Доброго дня! Столкнулся с задачей, но не знаю
как ее решить. Имеются балуны, есть некая
точка. Как вывести балуны в радиусе 10 км от
этой точки?

1 комментарий
метка,API 2.1,круг
EN версия народной карты
DasSsaut
5 мая 2014, 16:39

В общем столкнулся с такой проблемой, что нужно поставить EN версию народной карты, но вместо карты выводиться это:

Подключаю так:

 

<script src="http://api-maps.yandex.ru/2.0-stable/?load=package.full&amp;mode=release&amp;lang=en_US&amp;coordorder=longlat" type="text/javascript"></script>

 

Две версии:

Русская, которая отображается нормально.

Английская в которой не хочет работать.

В чем может быть проблема? За ранее спасибо.

1 комментарий
народная карта,API 2.1,локализация
variable и ymaps.Placemark
Алексей Сысоев
5 мая 2014, 19:17

если у меня в js есть var coord = '30.0000, 40.0000' к примеру и ставлю эту переменную сюда   myPlacemark1 = new ymaps.Placemark([coord])  то кордината не считывается и у меня загружается пустая карта, а если так   myPlacemark1 = new ymaps.Placemark([53.731538, 91.440641]) то все ок. Проблема в том что мне нужно получить кординату которая присвоена обьекту по клику, по этому нужен var. Как можно решить эту проблему?

2 комментария
Javascript,координаты,API 2.1
Использовать яндекс карты в PhoneGap возможно ?
motoroller198311
5 мая 2014, 20:57

Сдела мобильное приложение (PhoneGap и JQuery mobile).

Использую карты Yandex, если загружаю на сайт (то есть мобильную версию с телефона), то все работает, если экспортирую через phonegap и пытаюсь запустить в приложении (android) ничего не грузится.

Подскажите реально ли заставить связку работать.

3 комментария
API 2.1,PhoneGap
Как сохранить карту в файл программо?
prozorov.is
6 мая 2014, 08:56

Доброе утро!

 

На карту нанесены различные объекты - метки со своими картинками, многоугольники и т.д. Этих объектов нет в static-api.

 

Как можно сохранить выведенное изображение в файл? 

3 комментария
Совместить kml от google и яндекс карты
blagapro
6 мая 2014, 10:01

Всем привет. Есть задача - на сайте хочу сделать сборник маршрутов для поездок на внедорожном мотоцикле (через лес, поля и т.д.)

Для начала я нашел gps трекер на свой телефон (Samsung Galaxy Nexus офф. прошифка) это трекер от google "Мои треки"

Там есть отличная возможность записывать и экспортировать треки в kml или gpx формат.

Я почитал документацию и посмотрел песочницу по теме. Кое что получается но как то кривовато. 

Вот как это выглядит на оригинальных гугл картах 

Вот как это выглядит на Яндекс картах с KML форматом

Вот как это выглядит на Яндекс картах с GPX форматом

Как видно не очень то презентабельно. Что можете посоветовать? Как лучше поступить?

 

И еще если в примере изменить координаты (или даже не в примере а впесочнице) то мой google chrome просто начинает сьедать всю оперативку и половину процессора и ничего не отображает. В ИЕ 11 показывает просто заглушку с логотипом яндекса.

Как решить данную проблему?

Всем заранее большое спасибо!

4 комментария
KML,API 2.1,координаты,GPX
Можно ли получить ссылку на карту с нанесенными объектами?
prozorov.is
6 мая 2014, 12:00

На карту выведены объекты (метки, нарисованные точки, мноугольники и т.д).

Можно ли это представить в текстовом виде (выполнить сериализацию в XML) так, чтобы вставим куда-либо это текст открыть карту с нарисованными на ней объектами?

3 комментария
координаты,YMapsML
как получить владельца лейаута?
elmigo
6 мая 2014, 12:22

допустим создали метку

var newmark =  new ymaps.Placemark(coords, {}, {balloonContentLayout: BalloonContentLayout});

на базе своего предопределенного лейаута

    BalloonContentLayout = ymaps.templateLayoutFactory.createClass(
        hmtlCode,
        {
            build: function () {
                this.constructor.superclass.build.call(this);
            },

            AnyMethod: function (e) {
                //
            }
        }
    );

как теперь из AnyMethod получить доступ к своему владельцу Placemark?

3 комментария
метка,API 2.1,балун,макеты
Поиск без геокодера в собственном поле
yeastor
6 мая 2014, 14:28

Добрый день!

В 2.1 есть элемент управление "Поиск", с помошью него можно найти адрес на карте и при этом, как я понимаю, запрос геокодера не используется.

Задача: Найти на карте адрес и установить центр карты на найденный адрес при этом не отправляя запрос геокодеру, что бы не превышать лимит, т.к. пользователь может искать по карте много раз. После чего пользователь ставит метку на карту, и только после сохранения формы обращатся к геокодеру для получения координат метки. 

2 комментария
API 2.1,элементы управления,поиск,контролы,геокодирование
Помощь в создании своей карты на базе API Яндекс.Карт
Александр
6 мая 2014, 17:58

имею в распоряжении несколько отрисованых карт размером 5000 - 7000 px.

Решил их внедрить на движок Яндекс карт,  спешу отметить опыта в прорамиронании нету никакого,  все делал по мануалам.

Нашел тему в сети http://webmap-blog.ru/yandex-maps/sozdanie-sobstvennoj-karty-s-ispolzovaniem-api-yandeks-kart-2-x . скачал программку нарезал фотку на тайлы залил на сайт вот что получилось. http://test.anapa.info/gp/map.html

Теперь о помощи. 

1) Как отображать карту только в ее границах?
2) убрать лишний зум - имею ввиду чтобы я зумил только до определеных границ. Чтоб было понятнее, мне ненужно чтобы я видел подложку только карту. 
 исходник карты тут  - http://yadi.sk/d/nweuymitPGawA если нужно
 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">

<head>

    <title>Генплан МО Анапа</title>

    <script src="http://api-maps.yandex.ru/1.1/index.xml?key=ADtDpE0BAAAA1cU1IgIAPWClUB9s-IiOj9P6iiRLW4MT2WIAAAAAAAAAAACMdgGzWkeumHtgPQ7bAvyBjoO8xA==" type="text/javascript"></script>

    <script type="text/javascript">

        window.onload = function () {

            var options = {

                    tileUrlTemplate: "./%z/tile-%x-%y.jpg",

                    controls: {

                        typeControl: false,

                        miniMap: false,

                        toolBar: false,

                        scaleLine: false

                    },

                    scrollZoomEnabled: true,

                    mapCenter: new YMaps.GeoPoint(-174.745788574219, 84.5401399840571),

                    backgroundMapType: YMaps.MapType.NONE,

                    mapZoom: 10,

                    isTransparent: true,

                    smoothZooming: true,

                    layerKey: "my#layer",

                    mapType: {

                        name: "Генплан",

                        textColor: "#000000"

                    },

                    copyright: ""

                },

                map = new YMaps.Map(document.getElementById("YMapsID")),

                myData = new YMaps.TileDataSource(options.tileUrlTemplate, options.isTransparent, options.smoothZooming);

 

            myData.getTileUrl = function (tile, zoom) {

                return this.getTileUrlTemplate().replace(/%x/i, tile.x).replace(/%y/i, tile.y).replace(/%z/i, zoom);

            }

 

            var MyLayer = function () {

                return new YMaps.Layer(myData);

            }

            YMaps.Layers.add(options.layerKey, MyLayer);

 

            var mapLayers = options.backgroundMapType ? options.backgroundMapType.getLayers() : [],

                myMapType = new YMaps.MapType(YMaps.jQuery.merge(mapLayers, [ options.layerKey ]), options.mapType.name, { textColor: options.mapType.textColor });

 

            map.setCenter(options.mapCenter, options.mapZoom, myMapType);

            if (options.copyright) {

                map.addCopyright(options.copyright);

            }

 

            if (options.controls.typeControl) {

                map.addControl(new YMaps.TypeControl([ myMapType, YMaps.MapType.MAP, YMaps.MapType.SATELLITE, YMaps.MapType.HYBRID ], [1, 2, 3]));

            }

         

            if (options.controls.miniMap) {

                map.addControl(new YMaps.MiniMap());

            }

            if (options.controls.toolBar) {

                map.addControl(new YMaps.ToolBar());

            }

            if (options.controls.scaleLine) {

                map.addControl(new YMaps.ScaleLine());

            }

            if (options.scrollZoomEnabled) {

                map.enableScrollZoom();

            }

            map.addControl(new YMaps.Zoom());

        }

    </script>

</head>

<body>

    <div id="YMapsID" style="width:100%;height:800px"></div>

</body>

</html>

 

 

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

Нет комментариев
слои,тайлы,API 1.x
Множественное геокодирование
Сергей Mitroshn
7 мая 2014, 09:33

Есть задача вывода списка адресов в виде меток на Яндекс.Картах.

Адреса хранятся во внешней системе и периодически изменяются. Решено использовать следующий алгоритм:

1. Во внешней системе (не web) собирается список адресов, формируется запрос на геокодирование;

2. Результаты геокодирования сохраняются на сервер в формате JSON.

3. Клиент открывает страничку с картой, данные о координатах читаются из файла JSON и выводятся на карту.

С п.3 разобрался. Данные загружаются из файла на карту без проблем.

 

Встал вопрос с множественным геокодированием. Решил делать его на стороне сервера (как описано в документации). Но для множественного геокодирования необходим специальный Node.js-модуль (multi-geocode), который надо как то подключить (npm install multi-geocoder). Этот вариант выглядит несколько замороченным: нужно поставить менеджер пакетов, потом установить модуль (я сам не сетевой программист, поэтому для меня все это несколько непонятно). Хотя может я что то не понимаю и можно обойтись без установки менеджера пакетов?

Вторым вариантом является использование модуля из примера. Но метод geocode из данного примера возвращает коллекцию объектов, а не описание в формате GeoJSON или XML. И как эту коллекцию сохранить в файл я ума не приложу. Может кто то подскажет?

5 комментариев
геокодирование
Перемещение в точку, заданную кнопкой.
gother72
7 мая 2014, 11:56

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

Пример того что подсмотрел: http://apple4you.ru/contacts/   Кнопки сверху.

1 комментарий
API 2.1
Браузер виснет намертво при использовании карт
blagapro
7 мая 2014, 12:04

Добрый день всем.

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

Вначале хотел сам, но потом нашел компонент на джумлу.

Но есть одна проблема. В компоненте я по умолчанию выставил координаты 104.280633,52.289422 и теперь при попытке создать карту (а там выводится ее предпросмотр) браузер виснет и начинает сьедать всю оперативку и проц. 

Я попробовал делать тоже самое в песочнице, но и в песочнице при изменении координат браузер так же виснет.

Пробовал Google Chrome, Opera, IE11

пробовал зайти с другого компа там тоже виснет. Windows 7 64bit на обоих компах. Как думаете в чем может быть дело?

Заранее всем спасибо. 

7 комментариев
производительность,API 2.1
При добавлении меток из JSON с нестандартными иконками крашится карта
kvmeter
7 мая 2014, 17:51

Карта зависает и кидается в лог ошибками:

http://jsfiddle.net/U9JC4/

 

Случается при попытке удалить метки с карты либо просто уменьшить зум.

1 комментарий
API 2.1,координаты
Не отображается изображение в балуне
evgenij-desinov
7 мая 2014, 20:20

Почему-то на моем сайте не отображается изображение в балуне. Посмотреть можно здесь.

Должно быть так

Возможно проблема с кодировками или сервером?

5 комментариев
API 2.0,балун,YMapsML