Клуб API Карт

апрель 2016
Ограничение Yandex.Карт на отображение объектов
n.karmilin
1 апреля 2016, 18:01

Здравствуйте, есть проект сайта, на котором, на карте будут отображаться полигоны и точки(регионы и населенные пункты). Регионы будут прописаны в координатах, и храниться в базе.
Идея в том, что пользователь кликает на географический регион (область, район, город, село) и ему отображаются определенные показатели по этому региону: средняя зарплата и т.д.

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

Данный тип использования вообще имеет ограничения? Если да, то какие?

1 комментарий
maps.yandex.ru
Как создать HTML-метку с поведением обычной метки (с подсказкой и балуном)?
f-ph
2 апреля 2016, 10:15

Здравствуйте. Мне нужно создать на карте метку (ymaps.Placemark), которая задаётся HTML кодом (по ряду причин задать картинкой нельзя). Как следать это так, чтобы при этом работало стандартное поведение метки (курсор при наведении, подсказка и балун)?

Я пытался сделать так:

var customIcon = ymaps.templateLayoutFactory.createClass( '<div class="theme-border theme-background" style="width: 0.6em; height: 0.6em; border-style: solid; border-width: 0.4em; border-radius: 100%; margin: -0.7em;"></div>' );
var placemark = new ymaps.Placemark(
    [ 43, 56 ],
    { hintContent: 'Метка', balloonContent: 'Описание' },
    { iconLayout: customIcon }
);
myMap.geoObjects.add( placemark );

Но так исчезает вся интерактивность метки.

Ещё пытался сделать так:

var customIcon = ymaps.templateLayoutFactory.createClass( '<div class="theme-border theme-background" style="width: 0.6em; height: 0.6em; border-style: solid; border-width: 0.4em; border-radius: 100%; margin: -0.7em;"></div>' );
var placemark = new ymaps.Placemark(
    [ 43, 56 ],
    { hintContent: 'Метка', balloonContent: 'Описание' },
    {
        iconLayout: 'default#imageWithContent',
        iconImageHref: '',
        iconImageSize: [ 0, 0 ],
        iconImageOffset: [ 0, 0 ],
        iconContentLayout: customIcon
    }
);
myMap.geoObjects.add( placemark );

В таком случае поведение сохраняется, но активной областью метки становится квадрат 1х1 пиксель в центре, что не хорошо. А использование 'default#imageWithContent' выглядит как костыль.

3 комментария
макет метки,html,balloon
Направление движения для трека из gpx
Удалённый пользователь
2 апреля 2016, 23:58

Добрый день!

На данный момент отображаю трек из gpx файла при помощи функции ymaps.geoXml.load, как указать на треке направление движения в виде небольших стрелок?

Спасибо! 

1 комментарий
Как разместить карту на своём сайте с определёнными объектами
svalka68
3 апреля 2016, 08:06

Добрый день. Встал вопрос размещения карты на своём сайте с результатами поиска по определённым ключевым словам. Даже можно сказать, что по нескольким "тегам". Как подобное можно реализовать, чтобы при этом не нужно было пользоваться поискам, а объекты сразу выводились бы на карте?

1 комментарий
Как воссоздать функционал поиска организаций?
Valentin
4 апреля 2016, 14:04

Имеется множество координат, возможно их выводить сбоку как в примере поиска организаций? прим. https://yandex.ru/maps/213/moscow/?text=%D0%93%D0%B4%D0%B5%20%D0%BF%D0%BE%D0%B5%D1%81%D1%82%D1%8C&sll=37.620393%2C55.753960&sspn=2.068176%2C0.665271 

Интерисует сам список результатов поиска, который обновляется в зависимости от выбора города, адреса (в строке поиска), либо зума по карте.

Направьте в какую сторону копать. Спасибо. 

3 комментария
карта,фильтрация,поиск по организациям
Отображение Пробок в приложении под Windows
Artem
4 апреля 2016, 16:56

Добрый день!

Делаем сейчас приложение под Windows, где на Dashboard есть желание в качестве виджета выводить информацию о Yandex пробаках.

Примерно в таком виде планируем отображать:

1. Кол-во баллов за текущий день

2. Кол-во баллов за текущий и за последующие

ВОПРОС:

1. Возможно ли выводить информацию в таком виде или Yandex Api требудет отображать также и карту?

2. Есть ли возможно через Api получить информацию на текущий момент по маршруту из пункта А в пунтк B, а также подгрузить статистику о последующих часах?

PS: Если все это возможно, то напишите, пожалуйста, Url где можно поподробнее об этом почитать и как лучше подгружать эти данные.

Спасибо!

3 комментария
пробки,яндекс пробки
objectmanager баг
teterin-ilya
4 апреля 2016, 17:36

upd: Похоже, исправлено в версии от 31.03.2016 (на момент создания поста была пререлизом), хотя там описание бага несколько отличается (другой набор браузеров)

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

Вот видео, снятое с экрана в песочнице с демонстрации собственно objectmanager.

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

3 комментария
Использование карты и геокодинга (лицензия)
nicteam
4 апреля 2016, 20:02

Добрый день.

Планирую использовать yandex-карты на своем сайте. Но прочитав лицензионное соглашение, возникли вопросы. Пункт 2.3.7.5.

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

Разрешено ли в рамка бесплатной версии:
- сохранять координаты болуна в бд? Мне нужно выводить болуны на yandex-карте. Их довольно большое кол-во. Тащить координаты каждого болуна по их адресу, а потом определять какие отображать будет накладно.
- пользователь сам выставляет болун на картку. Возможно ли сохранять адрес этого болуна? Координаты этого болуна?

- время кеширования как-то ограничено? могу я кешировать в БД и раз в какое-то время обновлять координаты в job-е?


Полазив по архиву, наткнулся на схожий вопрос. https://yandex.ru/blog/mapsapi/45815?ncrnd=3152 . Но ответа он мне не дал.

4 комментария
Частичное и кривое, но все же использование меток из старых Моих карт
kolyaseg
5 апреля 2016, 11:10

Когда старая версия карт была на коне, отсутствовала возможность синхронизации меток с этих карт с мобильным приложением. Тогда худо бедно это можно было делать с помощью Закладок для МЯК. С появлением новой версии Яндекс.Карт изменились и Мобильные карты. Теперь старый способ синхронизации перестал работать (теперь формат хранения закладок изменился), зато Яндекс реализовал наконец-то синхронизацию закладок (Мои места) больших карт и мобильных. Но штука в том, что куча моих закладок осталась именно в старых картах, а возможности перетащить их в Мои места я пока не вижу. И вот настало время поездки, нужно срочняком вытащить мои закладки в пункте назначения, чтобы ими можно было пользоваться в поездке. Выход нашел в следующем. Экспортируем закладки старой карты в виде KML, пересохраняем его в общеиспользуемый КМЛ (такой который понимает Гугл) с помощью веб-приложения Закладки Мяк и импортируем его в Мои карты в гугле:

  

Сохраняем карту в гугле. Теперь она будет доступна в приложении Google Мои карты. Миссия выполнена!

P.S. Приложение Мои карты от Гугла мягко сказать неудобное. Зачем-то его отделили от основного приложения, но как-то соориентироваться позволяет.

Нет комментариев
Расчет стоимости доставки с исключениями отдельных направлений!?
Удалённый пользователь
5 апреля 2016, 13:47

Здравствуйте!
Вопрос следующего характера, есть в песочнице Расчет стоимости доставки: https://tech.yandex.ru/maps/jsbox/2.1/deliveryCalculator теперь, там имеется возможность менять стоимость за км. По любым направлениям.

            calculate: function (routeLength) {
                // Константы.
                var DELIVERY_TARIF = 20, // Стоимость за километр.
                    MINIMUM_COST = 500; // Минимальная стоимость.

                return Math.max(routeLength * DELIVERY_TARIF, MINIMUM_COST);
            },

Теперь есть список из 22 направления, где цена за км другая: 

Краснодар — Симферополь

Краснодар — Москва

Краснодар — Санкт-Петербург

Майкоп — Севастополь

Новороссийск — Москва

Ставрополь — Москва

Ростов-на-дону — Севастополь

Ставрополь — Симферополь

Миниральные Воды — Москва

Пятигорск — Санкт-Петербург

Майкоп — Москва 

И обранто по этому 22 направления, исключения из остального!

Теперь этим исключениям возможно прописать свою цену за 1 км!? На каждое направление что туда, что обратно? 

Как можно обыграть данный случай!? Спасибо!

4 комментария
Получение длительности маршрута с пробками
NN
5 апреля 2016, 15:10

День добрый,

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

<!DOCTYPE html>
<html>
<head>
    <title>Way</title>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"/>
    <script src="http://yandex.st/jquery/1.6.4/jquery.min.js" type="text/javascript"></script>
    <script src="http://api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script>
</head>
<script type="text/javascript">

function init() {
	var myMap = new ymaps.Map("map", {
            center: [55.745508, 37.435225],
            zoom: 13
        }, {
        });
        
	var multiRouteModel = new ymaps.multiRouter.MultiRouteModel(['Дмитровское шоссе, 3к1, Россия, Москва', 'улица Льва Толстого, 16, Россия, Москва'], {
		avoidTrafficJams: true
	});

	var multiRouteView = new ymaps.multiRouter.MultiRoute(multiRouteModel);
	myMap.geoObjects.add(multiRouteView);

	multiRouteView.model.events
		.add("requestsuccess", function (event) {
			var routes = event.get("target").getRoutes();
			var min = 999999999;
			for (var i = 0, l = routes.length; i < l; i++) {
				if ( routes[i].properties.get("duration").value < min ) {
					min = routes[i].properties.get("duration").value;
				};
	        	}
			$('#timing').append(Math.round(min / 60));
		})
		.add("requestfail", function (event) {
			$('#timing').append("Error" + event.get("error").message);
		});
}
ymaps.ready(init);

</script>

<body>
<div id="map"></div>
<div id="timing"></div>
</body>

</html>



1 комментарий
Переключение ссылки 2.1
Maps API
5 апреля 2016, 15:12

Сегодня мы переключили ссылку api-maps.yandex.ru/2.1/?lang=ru_RU, которая теперь соответствует версии 2.1.38.

4 комментария
обновление,API 2.1,новости
Список объектов: показать/скрыть всё
andrewudovenko
5 апреля 2016, 15:57

Добрый день.

Для данного примера https://tech.yandex.ru/maps/jsbox/2.1/object_list пытаюсь сделать кнопку(checkbox) Показать/Скрыть все объекты на карте, но ничего не выходит. Подскажите в каком направлении двигаться или может уже у кого есть готовый пример. Посмотреть текущий список категорий можно здесь кликнув на вкладку Местонахождение.

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

1 комментарий
Ошибка в Яндекс навигаторе при построении маршрута
Art220
5 апреля 2016, 16:33

При пострении маршрута, обнаружилась следующая ошибка:

1. Есть координаты назначения Dest. Стоим маршрут с помощью ru.yandex.yandexnavi.action.BUILD_ROUTE_ON_MAP  в Dest. Собственные координаты не указываем. Открывается навигатор, все нормально маршрут построен от моих координат к адресу назначения.

2. После этого возращаемся из навигатора в мое приложение, некоторое время там находимся. Завново пытаемся построить маршрут в Dest с помощью ru.yandex.yandexnavi.action.BUILD_ROUTE_ON_MAP. Открывается навигатор, и маршрут построен от моих Предыдущих координат к адресу назначения Dest. А  не от моего текущего положения.

Возможно есть какая то комадна очистить предыдущий маршрут? Или как то можно сказать что нужно обязательно строить маршрут заново.

Нет комментариев
Много меток + фильтрация + поиск по своим объектам
Дмитрий
5 апреля 2016, 21:35

Никак не получается совместить все это вместе. По отдельности в примерах и документации все есть - но все в разных вариантах и, самое главное, в разных версиях API.

Что нужно: к примеру из песочницы Оптимальное добавление множества меток добавить фильтрацию, которая замечательно расписана для версии API 1.1, и поиск по своим объектам.

Сложность в том, что не могу понять, как прикрутить фильтрацию и поиск к выводу объектов из файла data.json

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

1 комментарий
не показывает hintContent и балуны не открывает
Андрей Владимирович
5 апреля 2016, 21:39

ajax гружу данные для отображения на карте - все показывает, а вот надписи к меткам - не хочет....

ymaps.ready(init);

function init () {
    var myMap = new ymaps.Map('map', {
            center: [55.891708, 52.308371],
            zoom: 16
        }),
        objectManager = new ymaps.ObjectManager({
            // Чтобы метки начали кластеризоваться, выставляем опцию.
            clusterize: true,
            // ObjectManager принимает те же опции, что и кластеризатор.
            gridSize: 32
        });

    // Чтобы задать опции одиночным объектам и кластерам,
    // обратимся к дочерним коллекциям ObjectManager.
    objectManager.objects.options.set('preset', 'islands#blueDotIcon');
    objectManager.clusters.options.set('preset', 'islands#blueClusterIcons');
    myMap.geoObjects.add(objectManager);

    $.ajax({
        url: "/modules/catalog/maps.php?id=2"
    }).done(function(data) {
        objectManager.add(data);
		myMap.setBounds(objectManager.getBounds(), {
			checkZoomRange: true,
			zoomMargin : 2
		});
    });

}

пример - http://m.mendeleevsk.ru/catalog/2/

4 комментария
Поиск города
mtao.biz
6 апреля 2016, 10:15

Добрый день!

При разработке сайта возникла необходимость сделать ввод города в поисковую форму.
Сразу-же обратил внимание на метод ymaps.suggest(), который по сути делает то, что нужно. 
Только вот проблема в том, что в нем нельзя никак указать, чтобы он искал только города.
Решил воспользоваться ymaps.geocode(), которому указать в опциях king: 'locality'. Мало того, 
что этот метод ищет только если ввести полное название города, но и в результатах 
почему-то кроме городов еще и названия дорог появляются с kind = 'street', хотя я просил 
только kind = 'locality'. Какие еще варианты есть, чтобы не прибегать к помощи сторонних сервисов?

Спасибо!

3 комментария
Помогите сделать на сайт расчет расстояний и стоимость
Николай И.
6 апреля 2016, 16:15

Здравствуйте.
> Не знаю куда написать, решил написать Вам, а Вы в свою очередь может перенаправите вопрос или подскажите куда обратиться.
> У нас транспортная компания, решили у себя на сайте сделать расчет расстояний и стоимость доставки по вашей технологии API Яндекс карт, но сами естественно это не умеем, вот теперь ищем кто-бы мог с этим помочь.
> Наш сайт простой html, ссылка для ознакомления http://gazel-reutov.narod.ru 
> Заранее спасибо за ответ.

3 комментария
Получение координат для списка адресов
Vladimir Timofeev
6 апреля 2016, 17:00

Здравствуйте! Мне надо реализовать получение координат для списка адресов.

Нашел в архиве https://yandex.ru/blog/ymapsapi/81

Но приводится алгритм действий старый, 2010 года. Есть ли возможность узнать для версии 2.1 ? 

Нет комментариев
Из-за чего может выскакивать Uncaught TypeError: t.getParent is not a function
Максим
6 апреля 2016, 18:30
     ymaps.ready(init);
function init () {
    var myMap = new ymaps.Map('map', {
            center: [".$this->center_map."],
            zoom: ".$this->zoom."
        },
        {
            searchControlProvider: 'yandex#search'
        }),
        soccerclubCollection = new ymaps.GeoObjectCollection(null, {
            iconLayout: 'default#image',
            iconImageHref: '/images/design/ball_icon.png',
            iconImageSize: [30, 30],
        });
        
        soccerclubCoords = [[55.73, 37.75], [55.81, 37.75]];
        
        for (var i = 0, l = soccerclubCoords.length; i < l; i++) {
        soccerclubCollection.add(new ymaps.Placemark(soccerclubCoords[i]));
        }
        
        myMap.geoObjects.add(soccerclubCoords);
       }

2 комментария