Клуб API Карт

Не отображается карта нарисованная линейкой

ps620551
15 августа 2010, 16:45

Добрый день!

1) Есть несколько карт нарисованных линейкой на сервисе "мои карты":

http://maps.yandex.ru/-/CNu2vsS
http://maps.yandex.ru/export/usermaps/EYmgNFQ7IYHadSyssOr1oqucFpdLoJhr/

http://maps.yandex.ru/-/CNu27cs
http://maps.yandex.ru/export/usermaps/vWSb61oc-fh75DwahTWPr2Yx05F8zAxw/

Но при визуализации YMapsML отображаются только метки.
Как-то это можно исправить, чтобы линейка тоже была видна
?

// Создание обработчика для события window.onLoad
YMaps.jQuery(function () {
     // Создание экземпляра карты и его привязка к созданному контейнеру
     var map = new YMaps.Map(YMaps.jQuery("#YMapsID")[0]);

     // Установка для карты ее центра и масштаба
     map.setCenter(new YMaps.GeoPoint(37.64, 55.76), 10);

     // Добавление элементов управления
     map.addControl(new YMaps.ToolBar());// Тулбар: Перемещение, Лупа, Линейка
     map.addControl(new YMaps.TypeControl());// Переключатель типа карты
     map.addControl(new YMaps.Zoom());// Создает элемент масштабирования
     map.addControl(new YMaps.MiniMap());// Обзорная карта
     map.addControl(new YMaps.ScaleLine());// Масштабная линейка
     map.addControl(new YMaps.SearchControl());// Поиск по карте

     // Включает возможность масштабирования карты колесом мыши
     map.enableScrollZoom();
     // Включает горячие клавиши для функций масштабирования и сдвига карты
     map.enableHotKeys();
     // Включает возможность выделения области карты правой кнопкой
     map.enableRightButtonMagnifier();

     // Создание YMapsML-документа и добавление его на карту
     var m1 = new YMaps.YMapsML("http://maps.yandex.ru/export/usermaps/EYmgNFQ7IYHadSyssOr1oqucFpdLoJhr/");
     map.addOverlay(m1);

     var m2 = new YMaps.YMapsML("http://maps.yandex.ru/export/usermaps/vWSb61oc-fh75DwahTWPr2Yx05F8zAxw/");
     map.addOverlay(m2);

    // Обработчик неудачного создание документа YMapsML
     YMaps.Events.observe(ml, ml.Events.Fault, function (ml, error) {alert("Ошибка: " + error);});
     YMaps.Events.observe(m2, m2.Events.Fault, function (m2, error) {alert("Ошибка: " + error);});

});

 
2) Как лучше всего визуализировать несколько YMapsML на одной карте?
Есть ли способ лучше чем этот:

var m1 = new YMaps.YMapsML("http://maps.yandex.ru/export/usermaps/EYmgNFQ7IYHadSyssOr1oqucFpdLoJhr/");
map.addOverlay(m1);

var m2 = new YMaps.YMapsML("http://maps.yandex.ru/export/usermaps/vWSb61oc-fh75DwahTWPr2Yx05F8zAxw/");
map.addOverlay(m2);

var m3 = ... и т.д.

3) Как сделать чтобы при визуализации YMapsML, центр карты и масштаб оставался дефолтным,
а не менялся на тот что стоит в YMapsML? Т.е был вот таким:
// Установка для карты ее центра и масштаба
map.setCenter(new YMaps.GeoPoint(37.64, 55.76), 10);

4) Планируется ли в сервисе мои карты, возможность создания карты из уже готового YMapsML?
А то часто бывает нужно создавать карты не с нуля.

 

3 комментария
Подписаться на комментарии к посту
1. В моих картах можно рисовать линии и многоугольники. Если нарисовать линию, то она экспортируется в YMapsML.

2. А чем вас не устраивает этот способ?

3. При загрузке YMapsML установить параметр viewAutoApply в значение false.

4. Мы думали об этом. Но будет ли и когда не могу сказать.

1. В моих картах можно рисовать линии и многоугольники. Если нарисовать линию, то она экспортируется в YMapsML.


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


С учетом того что, как я понимаю, инфа о линейке все равно хранится у Вас в базе,
при генерации YMapsML файла, может Вы добавите и экспорт линейки в YMapsML тоже?


2. А чем вас не устраивает этот способ?


Очень хорошо видно, особенно если не ставить viewAutoApply : false,
что когда подгружаешь даже с десяток карт, тогда достаточно
долго происходит загрузка т.к. получается много запросов к серверу.


Кроме того количество запросов с одного API ключа вроде как ограничено 25 тысячами.
Если я буду подгружать к примеру 100 YMapsML-файлов (с различными участками сетей),
то обратиться к карте можно будет всего 250 раз или как?


Хотелось бы способ, чтобы из нескольких YMapsML файлов формировался один большой файл
и обрабатывался на сервере как один YMapsML файл.


3. При загрузке YMapsML установить параметр viewAutoApply в значение false.
   Спасибо Вам, не заметил этот параметр.

1. Я передам ваше пожелание.
2. Ограничено только количество обращений к геокодеру. Загружать YMapsML можно неограниченное количество раз. Вы можете сами объединить несколько YMapsML-файлов в один (у себя на серверной стороне). Штатных средств для объединения YMapsML у нас пока нет.