Клуб API Карт

июль 2010
Вопрос-предложение по событиям объекта Map
Sergei V.M.
1 июля 2010, 12:27

При открытии балуна в него передается указатель на карту. А почему бы не передавать дополнительно объект контекста, если балун открывается для него, например Placemark? Вообще, необходимость навешивать обработчик на каждый экземпляр в группе объектов мне представляется не самым лучшим решением. Было бы интереснее навешивать единственный обработчик на группу/карту, в который дополнительным параметром передавался бы объект контекста.

Или я отстал от жизни, и это уже реализовано как-то по другому?

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

3 комментария
события,API 1.x
Статик мап при открытие карты..
thekashey
1 июля 2010, 18:05

В Google V3 с недавнего времени заметил интесную чтуку - при открытие карты изображение что вы видите - есть не набор тайлов а одно изображение.

Чуть быстрее загрузка, чуть меньше трафика при рандомном посещении

Те не тайлы, а статик мап - одно изображение, которое и 1. грузиться быстрее, 2. лучше сжато. 3.не требует хитрым манипуляций как на математикой так и над DOM деревом..

 

Очень бы хотелось бы получить такую замечательную чтуку на замечательных Яндекс картах :)

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

2 комментария
API 1.x
Проблема с IE
Андрей Синицын
1 июля 2010, 18:54

Вот такая вот фигня :( В какую сторону думать?

Во всех остальных браузерах все работает отлично.

Версия IE 8.0

4 комментария
API 1.x
Узнать расстояние м/у 2-я точками
Gudzon-com
2 июля 2010, 08:00

Дорый день.

Я только начинаю освоение API Карт, но у меня уже появилась серьезная задача.

Нужно ввести название 2 населенных пунктов, найти их координаты, нарисовать м/у ними путь и вычеслить расстояние.

Подскажите что мне читать по этому поводу, что использовать. Может уже есть готовые скрипты?

Каков мой алгоритм действий?

Спасибо.

2 комментария
измерение расстояний,API 1.x
События TypeControl
lexxvlad
3 июля 2010, 06:58

Справку смотрел, поиск юзал, ничего не нашел.

Как повесить событие на TypeControl , т.е. на изменение типа карты?

Сенкс.

2 комментария
события,API 1.x
GeoPoint
oldsugar
3 июля 2010, 23:51

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

спасибо.

 

решилось так: map.converter.localPixelsToCoordinates(new YMaps.Point(0, 0));

6 комментариев
API 1.x
Текст балуна иногда обрезается
vlad k.
4 июля 2010, 00:31

Добрый день!

Тест Балуна передается  по клику , иногда он отображается весь, иногда только часть его. От длины текста не зависит. Кавычки убрал...Могу дать ссылку на страницу ( не хочу флудить)...Так что можете подсказать в чем дело ( может общеизвестная проблема , но я не нашел таких траблов у других). Заранее спасибо.

2 комментария
содержимое балуна,балун
Формирование списка из XML
Ercan
4 июля 2010, 12:00

Посреди HTML-документа для формирования выпадающего списка вставляю такой код:

<script type="text/javascript">

ml = new YMaps.YMapsML( 'http://wsus.spb.ru/xml/intertorg.xml' );
str = '<select>';

YMaps.Events.observe(ml, ml.Events.Load, function (ml) {
ml.get(0).forEach(function (item) {
str = str + '<option value="' + item.id + '">' + item.name + ' ' + item.description + '</option>';
});
// для проверки вставил alert(str); // на этом моменте строка сформирована, ЭТОТ АЛЕРТ СРАБАТЫВАЕТ после выполнения всего остального

// для проверки вставил document.write(str); // в документ почему-то отсюда ничего не пишется
});

// alert(str); // а тут моей строки уже нет, ЭТОТ АЛЕРТ СРАБАТЫВАЕТ РАНЬШЕ вышестоящего

str = str + '</select>';
document.write(str); // в документ пишется только <select></select>, и только потом к строке добавляются пункты <option> и срабатывает первый alert 

</script>

Не совсем разобрался в проблеме... Подскажите как сделать правильно, заранее благодарен за ответы )

проект живёт тут: http://wsus.spb.ru/, там внизу два списка... нижний сформирован руками, верхний с использованием javascript

5 комментариев
API 1.x,YMapsML
Сохранение карт
Андрей Сергеевич
4 июля 2010, 13:45

Здравствуйте. Помогите пожалуйста реализовать следующую задачу.

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

8 комментариев
карта,конструктор
создание макета баллуна
Кирилл Яковлев
4 июля 2010, 22:38
почему в этом примере http://api.yandex.ru/maps/jsapi/examples/mapballoonlayout.html в функцию setMaxSize всегда передаются нули?
1 комментарий
макеты
Создание имени меток в группе ... ???
smolnikova.v
5 июля 2010, 11:47

Здравствуйте ... подскажите пожалуйста ...

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

 <script src="http://api-maps.yandex.ru/1.1/index.xml?key=... type="text/javascript"></script>
<script type="text/javascript">
    window.onload = function () {
        var map = new YMaps.Map(document.getElementById("YMapsID"));
        map.setCenter(new YMaps.GeoPoint('.$info_from_YMAP_MARK[0][4].','.$info_from_YMAP_MARK[0][3].'), 20);

        var gCollection = new YMaps.GeoObjectCollection();
        map.addOverlay(gCollection);

        gCollection.add([
            new YMaps.Placemark(new YMaps.GeoPoint(координаты,координаты)),
        ]);

        map.addControl(new YMaps.TypeControl());
        map.addControl(new YMaps.Zoom());
        map.enableScrollZoom();
        map.addControl(new YMaps.SearchControl());
    }
</script>

вопрос : метки создаются в группе, а как задать имена для этих меток ???

Заранее большое спасибо ...

4 комментария
метка
ожидание обработки событий
Sergei V.M.
5 июля 2010, 13:15

Вопрос к знатокам: у меня обрабатывается событие onBoundsChange, в нем происходит формирование новой группы маркеров путем сканирования большого массива, старая группа затем удаляется с карты, отображается новая. Все работает, но хочется, чтобы в то время, пока происходит обработка данных - у пользователя на экране висел индикатор прогресса. Я реализовал обработчики, и отладочная печать показывает, что они срабатывают. Но - как-то странно.

Визуально, карта перетаскивается, отображается новый набор маркеров, и сразу отображается конечный вариант окна статуса. А исходный вариант окна статуса, с индикатором ожидания - проскакивает мгновенно. Такое впечатление, что обработка массива "вытесняет" код перерисовки интерфейса.

Вопрос: можно это как-то поправить? Вроде в свое время натыкался в документации по jQuery на описание функции, которая заставляет ждать основно код, пока не выполнятся фоновые обработчики. А сейчас - не могу найти...

8 комментариев
события,API 1.x
Карта для локальных пользователей
xKoksik
5 июля 2010, 16:29
Здравствуйте. Вопрос заключается в следующем: есть сайт, доступ к нему имеют локальные пользователи, не имеющие доступ к интеренету. Как можно реализовать отображение карты у таких пользователей? Или хотя бы разбитый рисунок?
1 комментарий
API 1.x
Silverlight
beketata
5 июля 2010, 21:54
Планируется ли создание API для Silverlight?
7 комментариев
API 1.x
печать многоугольника в pdf
ps54
6 июля 2010, 16:28
При предпросмотре  карты на которой есть элемент многоугольник с объектами или печати в pdf, многоугольник имеет сплошную заливку красного цвета. Подскажите, как решить эту проблему?
1 комментарий
печать карты,API 1.x
Загрузка по требованию
Гаров Игорь
7 июля 2010, 07:40

Добрый день.

Передо мной стоит задача - реализовать карту с загрузкой по требованию и нанесением сгруппированных адресов компаний.

Вот здесь http://remont-dv.ru/view_catalog.php?cat_id=28&n=2 сверху кнопка "показать/скрыть карту". При нажатии на кнопку под списком категорий появляется карта, причём загружается по требованию, то есть api загружается только по желанию пользователя. На карте отмечаются компании, присутствующие в списке на данной странице. Если у компании несколько адресов, то они группируются, не знаю пока как, да это и не важно на данном этапе. Проблема в том, что я не могу одновременно реализовать и загрузку по требованию, когда к урлу прибавляется &loadByRequire=1 и скрытие/отображение контейнера. В яваскрепте плохо понимаю. Когда происходит загрузка по требованию, то YMaps.jQuery вызвать нельзя, потому что она подгружается только потом. На данный момент не работает этот код:

 <script src="http://api-maps.yandex.ru/1.1/index.xml?key=[key]&loadByRequire=1" type="text/javascript"></script>
<script type="text/javascript">
function showMap () {
YMaps.load(function() {
// Создание экземпляра карты и его привязка к созданному контейнеру
var mapContainer = YMaps.jQuery("#YMapsID"),
map = new YMaps.Map(mapContainer[0]);

// Контейнер для карты делаем видимым
//mapContainer.css("display", "");

// Установка для карты ее центра и масштаба
map.setCenter(new YMaps.GeoPoint(55.64, 55.76), 10);
});
mapContainer.css("display", "");
YMaps.jQuery("#change-map-visibility1").bind('click', function () {
mapContainer.css('display', (mapContainer.css('display') == 'none') ? '' : 'none');
map.redraw(); // Перерисовка карты
return false;
});

YMaps.jQuery("#change-map-visibility2").bind('click', function () {
mapContainer.css('display', (mapContainer.css('display') == 'none') ? '' : 'none');
map.redraw(); // Перерисовка карты
return false;
});
}
</script>
</head>
<body>
<a id="change-map-visibility1" href="#" onclick="showMap();return false;">показать карту</a>
<input id="change-map-visibility2" onclick="showMap();return false;" type="button" value="Показать карту"/>
<div id="YMapsID" style="width:500px;height:500px;display:none"></div>
</body>
 
7 комментариев
API 1.x
Курсор с картинкой
zakaretzky
7 июля 2010, 14:08
Сделал курсор за которым по странице двигается картинка, но в области карты этого не происходит. Код приведен ниже. как сделать чтобы на карте она тоже за ним двигалась? и есть ли вобще возможность создавать свои курсоры вместо стандартных?
<script type="text/javascript">
        // Создание обработчика для события window.onLoad
        YMaps.jQuery(function () {
            // Создание экземпляра карты и его привязка к созданному контейнеру
            var map = new YMaps.Map(YMaps.jQuery("#YMapsID")[0]);
           // Установка для карты ее центра и масштаба
            map.setCenter(new YMaps.GeoPoint(37.64, 55.76), 10);
    
            document.captureEvents(Event.MOUSEMOVE);
            mouse = YMaps.jQuery('#mouse')
            document.onmousemove = function(e) {
                 mouse.css({ left: e.clientX - 40, top: e.clientY - 30})
            }
        })
    </script>
    <style type="text/css" media="screen">
        #mouse{
            position: absolute;
            z-index: 1000;
        }
    </style>
</head>
<body>
    <img src="auto_afs.png" id="mouse" />
    <div id="YMapsID" style="width:600px;height:400px">
</body>
2 комментария
API 1.x
Максимальный зум для "схемы" меньше, чем для "спутника".
beketata
9 июля 2010, 00:35
Например, для карты Москвы, максимальный зум для "схемы" - 17, для спутника - 18.
В чем проблема, чтобы сделать 18 и для "схемы"?
3 комментария
API 1.x
Пропадают (перерисовываются) метки при изменении зума.
beketata
9 июля 2010, 01:10

Каким образом нужно поместить на карту метки, чтобы они не пропадали во время изменения масштаба?
Вот скажем, в этом примере, если крутить колесо мыши, то на время перерисовки карты исчезают и метки? ( А вот кнопки тулбара и логотип  почему-то остаются.  )

2 комментария
API 1.x
балуны на группе объектов
gugundrik
9 июля 2010, 12:45
Подскажите пожалуйста, как в данном примере добавить к каждому объекту необходимый балун?
1 комментарий
API 1.x