Клуб API Карт

май 2016
Пользовательские элементы управления
otsygankov165
1 мая 2016, 08:26

На карту нужно добавить элементы управления, такие, как на примере API 1.x: https://yandex.github.io/mapsapi-examples-old/html/reversegeocoderinformation.html.

Как сделать чтобы активным был только один элемент? Так,например, при нажатии "Информация" деактивировалась, напрмер, стандартная кнопка "Линейка", но, при этом, чтобы еще оставались независимые кнопки.

15 комментариев
Maps API 2.1 ошибка
Dmitry Koshkarov
1 мая 2016, 10:55

Имеется следующий код 

"
|<html>
|<head>
|<meta http-equiv=""X-UA-Compatible"" content=""IE=Edge"" />
|<script charset=""utf-8"" src=""https://clck.yandex.ru/jclck/dtype=stred/pid=443/cid=71834/path=map/rnd=0.20188322443554074/*https://maps.yandex.ru/""></script>
|<script src=""http://api-maps.yandex.ru/2.1/?lang=ru_RU"" type=""text/javascript""></script>
|<script src=""F:\mapbasics.js"" type=""text/javascript""></script>
|</head>
|<body style=""padding: 0;margin: 0;width: 100%;height: 100%;"">
|<div id=""map"" style=""width: 100%;height: 90%;""></div>
|</body>
|</html>"

При инициализации выдает ошибку скрипта

URL:

https://api-maps.yandex.ru/2.1.39/combine.js?load=6N6P6R6S6U6V*G*K*L1A6W*M0v601C610B6462*O*U;2jojrjfj8j9;8;7;9qO;-q2;$qPqRqSqTqU;(;)jvjxjAjCqWqX;_;.;!;*;@;q;z;Q*Y65*06869**6$*3@d@e@f@g*1@b@c*4*5@k@l@h*7*86-6.1E6(*9*-*_*.6)*)6:*,6;6q6j6z6Q6I@m@n@o@p7a7c7d7f7g*q*j*;*Q*J*Z7k(b(c(e7l0G7o(g@r(h(l(m(o(p(r(t(u7r@w7t7w7x7C7D7F7G0T7L7N7K7O7R0Y7T7U(x(y(A(C(D(E(G(H7X7W70717476(O72(K(L(N0)77797!@G7_@x@A@C@D@E@F@H7*0@7)7,7;7@7q(P7z7Q:70:7I(U7Z8b(6(9($(-(.(!((()8d(,(;(@(j(J8f(I@O@P@R@T@U@V8g2V26&callback_prefix=ymaps_loader

3 комментария
Выравнивание карты по центру и увеличение масштаба при клики на метку
Михаил
1 мая 2016, 16:44

Подскажите как это сделать, встречал пример вроде в песочнице никак не найду

10 комментариев
перетаскивание карты
Дарья Миронова
2 мая 2016, 14:22

Здравствуйте, хочу сделать чтобы при перетаскивании карты если hint открыт, то чтобы он не закрывался. К какому события мне нужно привязаться? И как запретить само закрытие хинта

1 комментарий
API 2.1
Запрет на увеличение
WazzupSu
2 мая 2016, 19:46

KSClisGroup = new ymaps.Clusterer({ clusterDisableClickZoom: false,

Данная опция запрещает увеличение, но при этом, если клик по метке с несколькими фирмами по одному адресу, то размер карты увеличивается до улицы(дома), а если фирма одна, то метка раскрывается в на месте. Мне нужно, если по клике на метку метки по одному адресу до дома, то увеличение бы не происходило. Возможно ли такое?

2 комментария
1с и соглашение
Копылов Д.
3 мая 2016, 02:08

если ведется разработка под веб-платформу 1с с долнейшей побликацией в сети,это соответсвует соглашению или нет?

1 комментарий
Свои иконки на маркерах, как узнать координаты на изображение?
Михаил
3 мая 2016, 14:54

Подскажите технологию создания изображения и как узнать положение на картинки для получения iconImageClipRect. Есть ли стандартная сетка или что то на подобие.

Выдернул с одного сайта

т.е. например для получения капли  iconImageClipRect :[257, 129] [320, 193]

4 комментария
Как сделать собственный макет для одной фирмы как и для нескольких
WazzupSu
3 мая 2016, 18:42

Подскажите, пожалуйста. Добавляю фирмы примерно по следующему принципу. 

https://tech.yandex.ru/maps/jsbox/2.1/cluster_custom_balloon_content_layout_21

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

4 комментария
Определение координат по городу, улице и дому
askom.td
4 мая 2016, 07:20

Добрый день скажите возможно как то определять координаты нескольких объектов сразу? То есть имеем запрос:
https://geocode-maps.yandex.ru/1.x/?geocode=Тверская+6.
он вернет координаты одного объекта, а что делать если объектов 10?

4 комментария
clusterize -> clusterCaption
Алексей
5 мая 2016, 12:02

Всем привет.

Подскажите пожалуйста как можно смастерить xml файл с точками чтобы например при совпадении координат слева отображать какое либо название. Сама загрузка xml на карту работает, а вот куда правильно вставить clusterCaption проблема, вот сейчас есть такой XML, формируется через PHP:

<?
header("Content-type: text/xml");
print
'<?xml version="1.0" encoding="utf-8"?>
<ym:ymaps xmlns:ym="http://maps.yandex.ru/ymaps/1.x">
<Representation xmlns="http://maps.yandex.ru/representation/1.x" xmlns:gml="http://www.opengis.net/gml" xmlns:repr="http://maps.yandex.ru/representation/1.x">
<Style gml:id="userobject">
<iconContentStyle>
<template>#placemark</template>
</iconContentStyle>
<balloonContentStyle>
<template>#balloon</template>
</balloonContentStyle>
</Style>
<Template gml:id="placemark">
<text>$[metaDataProperty.AnyMetaData.number]</text>
</Template>
<Template gml:id="balloon">
<text><![CDATA[
				<div style="max-width:400px;*width:400px;">
				<b>$[name]</b>
				<div>$[description]</div>
				<div>Адрес:<br/>$[metaDataProperty.AnyMetaData.adr]</div>
				</div>]]></text>
</Template>
</Representation>
';

print
'<ym:GeoObjectCollection xmlns="http://www.opengis.net/gml">
<gml:name xmlns:gml="http://www.opengis.net/gml">Точки на карте</gml:name>
<featureMembers>
';


	
		foreach ($data as $record)
		{
			echo '<ym:GeoObject>';
			echo '';
			echo '<metaDataProperty xmlns:gml="http://www.opengis.net/gml" xmlns:repr="http://maps.yandex.ru/representation/1.x">';
			echo '<ym:AnyMetaData>';
			echo '<ym:number>'.$record['ID'].'</ym:number>';
			echo '<ym:adr>'.$record['adr_str'].'</ym:adr>';
			echo '</ym:AnyMetaData>';
			echo '</metaDataProperty>';
			echo '<name>'.$record['point_name'].'</name>';
			echo '<description>'.$record['description'].'</description>';
			echo '<Point>';
			echo '<pos>'.$record['latitude'].' '.$record['longitude'].'</pos>';
			echo '</Point>';
			echo '<ym:style>islands#darkOrangeCircleDotIcon</ym:style>';
			echo '';
			echo '</ym:GeoObject>';
		}
print 
'    </featureMembers>
    <ym:style xmlns:gml="http://www.opengis.net/gml" xmlns:repr="http://maps.yandex.ru/representation/1.x">#userobject</ym:style>
  </ym:GeoObjectCollection>
';  
print '</ym:ymaps>';

?>

1 комментарий
Карта в новом окне
miks.vlad2012
5 мая 2016, 15:15

Здравствуйте.

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

Код карты:

<script type="text/javascript">
     ymaps.ready(init);
     var myMap,
           myPlacemark;

     function init(){     
           myMap = new ymaps.Map("map", {
                 center: [55.706006, 37.764733],
                 zoom: 16
           });
                
           myPlacemark = new ymaps.Placemark([55.706436, 37.763253], {
                 balloonContent: 'Москва, Волгоградский проспект, 117к1' 
           });
                
           myMap.geoObjects.add(myPlacemark);
      }

</script>

1 комментарий
RemoteObjectManager: Отображаются не все объекты
as-popov
5 мая 2016, 15:18

Здравствуйте!

Добавляю собственный слой на карту используя RemoteObjectManager.

Всего объектов порядка 4 тысяч, полигоны. С сервера отдаю только объекты, попадающие в bbox. Если объектов мало (искусственная выборка), то все отрисовывается нормально. Если много - или вообще ничего не отрисовывается, или отрисовываются только некоторые объекты. Ну и вообще как-то нестабильно работает: в некотором виде объект может отрисоваться, а при изменении масштаба или при перемещении вида карты - пропадает.

5 комментариев
RemoteObjectManager
Помогите построить маршрут общественного транспорта
Александр О.
5 мая 2016, 17:41
    ymaps.route
    (
        [
            [55.64256, 37.467742],
            [55.824385, 37.645214]
        ],
        { multiRoute: true },
        { routingMode: 'masstransit' },
        { avoidTrafficJams: true }              //   строить маршрут с учётом пробок
    ).done(function (route) {
        console.log(route);
        var points = route.getWayPoints(),
            lastPoint = points.getLength() - 1;
        var moveList = 'Трогаемся,</br>', moveList_t = '', way, time_str, t, segments;
        for (var i = 0; i < route.getPaths().getLength(); i++) {
            way = route.getPaths().get(i);
            segments = way.getSegments();
            for (var j = 0; j < segments.length; j++) {
                var street = segments[j].getStreet();
                moveList += ('Едем ' + segments[j].getHumanAction() + (street ? ' на ' + street : '') + ', проезжаем ' + segments[j].getLength() + ' м.,');
                moveList += '</br>'
            }
        }
        moveList += 'Останавливаемся.';
      

        $('#info').append(moveList);

    }, function (error) {
        console.log('Возникла ошибка: ' + error.message);
    });

Есть нужная тема, но непонятно почему не работает у меня https://yandex.ru/blog/mapsapi/kak-podruzhit-ymaps-route-c-routingmode-masstransit

Вставляю пример 2. второй пример https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/route-docpage/#param-params.routingMode
у меня не работает. пишет TypeError: route.getJamsTime is not a function

тож не работает.

где что не так?

7 комментариев
определение ближайщего метро
hp1999
5 мая 2016, 18:12

добрый день.

есть необходимость определить для адреса расстояние до ближайего метро.

насколько я понял апи нужно

1. через геокодер по адресу получить координаты например так https://geocode-maps.yandex.ru/1.x/?geocode=Москва, тверская, 4

можно получить что то типа

<Point xmlns="http://www.opengis.net/gml">

<pos>37.612703 55.75896</pos>

</Point>

2.  и вызвать  ymaps.geoQuery с этими координатами

var obj = ymaps.geoQuery(ymaps.geocode(coords, { kind: 'metro' }));
            obj.then(function () {
                
                metro = obj.getClosestTo(coords, 3000);
                var mcoord = metro.geometry.getCoordinates();

                map.geoObjects
                    .add(pic);
            });

в методе                 metro = obj.getClosestTo(coords, 3000);

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

а ведь например в радиусе 1 метра объекта никакого метро нет, то  есть вызов в методе                 metro = obj.getClosestTo(coords, 1); ничего не должен возвращать.

а он возвращает - отчего ? и можно ли этой функцией получить несколько ближайщих метро?

так же вопрос по обратному геокодированию геокодера 

вот такой вызов

https://geocode-maps.yandex.ru/1.x/?geocode=37.492078 55.777707&kind=metro&result=5
 возвращает метро - а какие он считает ближайшими - по расстоянию?

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

1 комментарий
Не загружается скрипт
troikaestate.ru
6 мая 2016, 11:43

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

<script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script>

Думал ошибка https, уже сталкивался с таким. Но так:

<script src="http://api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script>

тоже не работает. Выдает ошибку 400. Проект http://troikaestate.ru/maptest. Движек не причем, пробывал без него. На другом хосте все работает отлично. 

7 комментариев
API Яндекс.Карт на Пятой Вебмастерской Яндекса
Maps API
6 мая 2016, 11:55

20 мая пройдет Пятая Вебмастерская Яндекса, посвященная поисковой и продуктовой аналитике. 

API Яндекс.Карт на Вебмастерской представит менеджер продукта - Татьяна Попова. Она расскажет, как мы на собственном опыте убедились, что не все метрики одинаково полезны, и как адаптировали типовые "воронки" под цели и особенности своего продукта.


Онлайн-трансляция начнется в 11:00 по московскому времени на странице мероприятия

Нет комментариев
анонсы,новости,мероприятия
Создать карту с 500 адресами
fg.info@fg-buy.ru
6 мая 2016, 17:43

Здравствуйте!

Подскажите пожалуйста, возникла необходимость создать карту на которой следует указать более 500 адресов пунктов самовывоза. Как эти адреса указать массово?(есть excel файл со всеми реквизитами)

Вот пример

4 комментария
Коллекция кнопок
kalinin@it-technologies.us
6 мая 2016, 22:47

Можно ли создать коллекцию кнопок? Для отслеживания состояния всех кнопок при нажатии на одну из них. Или возможно найти другой путь?

var center = [55.7, 37.6];
    var buttons = jQuery.parseJSON('["ТРЦ", "Школы"]');
    var top = 50;

    function init() {
        var myMap = new ymaps.Map('map1', {
            center: center,
            zoom: 9,
            controls: ['zoomControl']
        }),
            // Создаем коллекцию 
            CollectionButtons = new ymaps.Collection();

        for (var i = 0, l = buttons.length; i < l; i++) {
            var butt = buttons[i];
            ButtonLayout = ymaps.templateLayoutFactory.createClass("<div class='map-butt {% if state.selected %}map-butt-selected{% endif %}'>" + "{{data.content}}" + "</div>");
            CollectionButtons.add(
                new ymaps.control.Button({
                    data: {
                        content: 'Красная кнопка',
                        title: 'Нажмите на кнопку'
                    },
                    options: {
                        layout: ButtonLayout
                    }})
            )
        }
        myMap.geoObjects.add(CollectionButtons);
    }
    ymaps.ready(init);

3 комментария
Поиск улиц, пересекающих полигон
Игорь Ч.
7 мая 2016, 12:05

Есть ли возможность с помощью API получить список улиц, пересекающих заданный на карте полигон? Интересует что-то вроде метода searchIntersect().

1 комментарий
отображение выбранных объектов на Yandex карте
nyshka@tut.by
7 мая 2016, 19:46

Есть такая задача:
на странице формируется выборка div-ов с классом .adress. в каждом div свое html содержимое(адреса);

<span class="adress">г.Минск пр.Победителей 79</span><br>

скрипт при совпадении адреса добавляет метку на карту

var adress=$('.adress').html();
           if (adress=="г.Минск пр.Победителей 79"){
       
        var myPlacemark = new ymaps.Placemark(
            // Координаты метки
            [53.931122, 27.505776] ,{
                hintContent: 'Бэби клаб'
            });
 
        myMap.geoObjects.add(myPlacemark);
    };

для одного адреса работает, но их как и .adress будет много.

Предполагаю что надо создать массив: "адрес - координаты метки" и перебирать его на совпадение для каждого класса .adress ?; 
как это реализовать подскажите пожалуйсто!

5 комментариев