Клуб API Карт

апрель 2015
Как добавить свое хтмл в контент балуна
allians-sk
1 апреля 2015, 02:14

Что то пишу в контент ссылку, но неработает. Полагаю это для своего хтмл balloonContentBody: "", ?? Вот функция многоугольника 

function myMesto1 () {

 

var myMesto1 = new ymaps.GeoObject({

        // Описываем геометрию геообъекта.

        geometry: {

            // Тип геометрии - "Многоугольник".

            type: "Polygon",

            // Указываем координаты вершин многоугольника.

            coordinates: [

                // Координаты вершин внешнего контура.

                [

                    [-0.00301837, 0.00818552],

                    [ -0.000760073, 0.00421823],

                    [0.00461102, 0.00287546],

                    [0.00880813, 0.00745774],

                    [0.0174751, 0.0156364],

[-0.000164040, 0.0161247]

                ],

                // Координаты вершин внутреннего контура.

                 

            ],

            

        },

        // Описываем свойства геообъекта.

        properties:{

            // Содержимое балуна.

            hintContent: " Место 1",

 

balloonContentHeader: "Место 1",

            balloonContentBody: "<p style="text-align: center;"><strong><span style="color: #ff0000;"><a href="#">Заказать</a></span></strong></p>",

            balloonContentFooter: "Подвал",

            

        }

    }, {

        // Описываем опции геообъекта.

        // Цвет заливки.

        

fillColor: '0000FF',

        // Цвет обводки.

        strokeColor: '#0000FF',

        // Общая прозрачность (как для заливки, так и для обводки).

        opacity: 0.2,

        // Ширина обводки.

        strokeWidth: 5,

        // Стиль обводки.

        strokeStyle: 'shortdash'

    }); 

map.geoObjects.add(myMesto1);

}

2 комментария
метка,балун
Отличия ответа геокодера по координатам или названию
Вадим М
1 апреля 2015, 08:11

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

Это фича или бага?

ymaps.geocode([55.552576, 38.057441], { results: 1 })
Результат: Россия, Московская область, Раменский район, Чулковское сельское поселение
ymaps.geocode('раменский, чулково', { results: 1 })
Результат: Россия, Московская область, Раменский район, деревня Чулково

Во втором случае в ответе координаты таки-же, как в первом варианте, но геообъект фактически другой.
Соответсвенно, далее GeocoderMetaData выдает тоже разный результат.
Воспроизводится в примере https://tech.yandex.ru/maps/jsbox/2.1/direct_geocode


4 комментария
API 2.1,геокодирование
Дополнения в стандартные карты без использования API и доработок
cnn1985
1 апреля 2015, 12:17

Предлагаю дополнить стандартные Яндекс Карты (то, что доступно пользователю без доработок/API карт) и была возможность просмотра через браузер в мобильном телефоне.

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

Это будет удобно при большом количестве знаков. Если бы появилась возможность подгружать дополнительные значки (например дом, завод и пр.) это было бы еще лучше.

2. Возможность выбора аккаунта непосредственно в самих картах.

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

3. Возможность переносить карты из одного аккаунта в другой

1 комментарий
маршрутизация,метка
Координаты улицы, района.
rodogor46rus
1 апреля 2015, 12:28

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

 

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

 

Когда мы как обычные пользователи вбиваем в поиске какой-то район - мы видим его границы. http://take.ms/LlpZh Можно ли получить координаты этой границы, что бы построить ломаную линию?

 

Так же и с улицей - http://take.ms/jwoQq Мы видим её границы.


Очень много перечитал поиском и находил темы 2-3х годичной давности, что API не предоставляет доступ к такой информации.

Всё сводилось к тому, что люди искали различные источники координат объектов - как правило это OSM карты.

 

На сколько я понял, в данный момент всё ещё такого решения через API нет?

2 комментария
Яндекс диск
lica.base
1 апреля 2015, 13:17

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

1 комментарий
Разные страны в поиске Яндекса
tech.yandex.ru
1 апреля 2015, 16:23
Мы проанализировали поисковые запросы к Яндексу с названиями стран и их жителей, а чтобы проиллюстрировать исследование, разработали карту ассоциаций. На ней отмечено, какие слова чаще всего упоминаются в запросах про определённые страны. Например, самые часто встречающиеся слова в запросах про Австралию – это город, фильм и открытие, а для Германии список слов такой: язык, переводчик и овчарка. При наведении курсора на ту или иную страну возникает всплывающее поле, где перечислены запросы с указанными словами целиком.


Карта ассоциаций разработана на основе API Карт. Используя API и модуль «Регионы», вы можете встроить на свой ресурс похожую инфографику.
Нет комментариев
примеры,новости,модули
Открытие балуна сегмента маршрута
Владимир
1 апреля 2015, 17:32

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

делаю карту с построением маршрута аналогично примеру из песочницы https://tech.yandex.ru/maps/jsbox/2.1/router

Интересует вопрос: можно ли как-то повесить событие на сегменты маршрута (я имею ввиду те объекты router.Segment, из которых формируется список "маршрутного листа" под картой), при вызове которых будет открываться балун этого сегмента на карте?

Иными словами - мне нужно "извне" сымитировать клик по сегменту пути для открытия балуна этого сегмента.

Возможно ли это реализовать средствами api 2.1? Если да, то куда смотреть? Спасибо.

3 комментария
маршрутизация,события,балун
Иконка привязанная к окну карты
allians-sk
2 апреля 2015, 00:42

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

2 комментария
метка,балун,YMapsML
Селектор со своими типами карт
allians-sk
2 апреля 2015, 05:03

Вот есть код, который поему то не как не хоет работь. Можете посмотреть и сказать то там не так??

 

var map, 

    layerName = "user#layer";

    layerName2 = "user#layer2";

ymaps.ready(onReady);

 

function onReady () {

    setupLayer();

    setupMap();

setupLayer2();

 

}

 

function setupLayer () {

    var Layer = function () {

        var layer = new ymaps.Layer("./%z/%x-%y.jpeg", {

            //tileTransparent: true,

            notFoundTile: "./3/2-2.jpeg"

        });

        layer.getZoomRange = function () {

            return ymaps.vow.resolve([2, 7]);

        };

        layer.getCopyrights = function () {

            return ymaps.vow.resolve('dsssdf');

        };

        return layer;

    };

    

ymaps.layer.storage.add(layerName, Layer);

var mapType = new ymaps.MapType(layerName, [layerName]);

ymaps.mapType.storage.add(layerName, mapType);

}

function setupLayer2 () {

    var Layer = function () {

        var layer = new ymaps.Layer("n1/%z/%x-%y.png", {

            //tileTransparent: true,

            notFoundTile: "./3/2-2.jpeg"

        });

        layer.getZoomRange = function () {

            return ymaps.vow.resolve([2, 7]);

        };

        layer.getCopyrights = function () {

            return ymaps.vow.resolve('dsssdf');

        };

        return layer;

    };

   

ymaps.layer.storage.add(layerName2, Layer);

var mapType = new ymaps.MapType(layerName2, [layerName2]);

ymaps.mapType.storage.add(layerName2, mapType);

}

 

function setupMap () {

    map = new ymaps.Map('map', {

        center: [0, 0],

        zoom: 3,

        controls: ['zoomControl'],

        type: layerName

    }, {

        projection: new ymaps.projection.Cartesian([[-1, -1], [1, 1]], [false, false])

    },{

        balloonMaxWidth: 300

    }

        );

 

        map.events.add('click', function (e) {

        if (!map.balloon.isOpen()) {

            var coords = e.get('coords');

            map.balloon.open(coords, {

                contentHeader:'Событие!',

                contentBody:'<p>Кто-то щелкнул по карте.</p>' +

                    '<p>Координаты щелчка: ' + [

                    coords[0].toPrecision(6),

                    coords[1].toPrecision(6)

                    ].join(', ') + '</p>',

                contentFooter:'<sup>Щелкните еще раз</sup>'

            });

        }

        else {

            map.balloon.close();

        }

 

 

    }); 

 

    // Обработка события, возникающего при щелчке

    // правой кнопки мыши в любой точке карты.

    // При возникновении такого события покажем всплывающую подсказку

    // в точке щелчка.

    map.events.add('contextmenu', function (e) {

        map.hint.show(e.get('coord'), 'Кто-то щелкнул правой кнопкой');

    });

 map.controls.add(new ymaps.control.TypeSelector(['user#layer','user#layer2'])); - вот это не работает. почему??

 

Нет комментариев
слои,элементы управления,события,контролы,API 2.1
Получение баллов пробок по городу
Илья
2 апреля 2015, 10:49

Доброго времени суток всем.

 

Есть ли какой-то способ в данный момент получить по API баллы пробок для конкретного заранее известного города (скажем, Москвы) без отображения самой карты, просто цифрой? 

Пытался гуглить и просмотрел, кажется, всю доступную документацию, но ничего подходящего, кажется, не нашел. 

Буду благодарен за любую помощь.

3 комментария
пробки
Ajax + JSON. Yandex API
Xantik56
2 апреля 2015, 15:40

Есть необходимость менять метки в соответствии с датой в календаре (DateTimePicker). Координаты берутся из БД. 

При нажатии на число в календаре, метки ставятся, но при повторном нажатии на другое число ничего не происходит. Если ставлю в success: alert(data), нажимаю на разные числа в календаре json файл и координаты в нем благополучно меняются, а с метками ничего не происходит, пока не перезагрузишь страницу и не выберешь какое-нибудь число снова. Помогите решить проблему(( 

$('#datetimepicker').datetimepicker({

onChangeDateTime:function(current_time,$input){

$.ajax({

url: 'points.php',

type : "POST",

data: {date: $input.val()},

success:  function (data)  {

objectManager.add(data);

},

error: function(){

alert ("No PHP script: ");

}

    });

}  }); 

Нет комментариев
API Яндекс.Карт версия 2.0.40
Maps API
2 апреля 2015, 18:53

Сегодня мы опубликовали новую версию API Яндекс.Карт 2.0 — 2.0.40. Она доступна по адресу api-maps.yandex.ru/2.0.40. В ближайший вторник на новую версию будут переключены api-maps.yandex.ru/2.0 и api-maps.yandex.ru/2.0-stable.

 

Исправлено:

 — Не происходило отклонение Promise при невозможности построить маршрут.

 — В определённых условиях происходило исключение при клике по пробкам в IE8.

 — Не изменялась заливка типа 'tile' при смене опции 'fill' для многоугольников.

 — Области с полностью прозрачной заливкой оставались интерактивными в IE.

 

Обратите внимание, в новой версии на встроенной карте появилась панель, предлагающая пользователю обновить устаревшую версию браузера. Такая же панель появится и в ближайшем релизе API 2.1.

Показ панели можно отключить опцией карты 'suppressObsoleteBrowserNotifier'. Список поддерживаемых браузеров можно найти в документации.

 

 

Мы прилагаем все усилия, чтобы поддерживать максимально возможную совместимость API Карт со всеми браузерами, даже если они устарели или не содержат последних обновлений. Эта поддержка стоит нам значительных усилий: в последних релизах доля исправлений, связанных только с поддержкой устаревших версий браузеров, достигает 25% от общего потока задач. Каждый устаревший браузер, исключённый из поддержки, позволяет нам перераспределить ресурсы на разработку новых возожностей работы с картой. Именно поэтому мы показываем предложение обновиться пользователям устаревших браузеров. Мы просим вас с пониманием отнестись к нашей инициативе.

 

Команда разработчиков API Яндекс.Карт

 

1 комментарий
обновление,API 2.0,новости
Вопросы по поводу сервиса "регионы"
Вадим Мальцев
3 апреля 2015, 02:15

Появилась необходимость сделать приложение с интерактивной частью областей (городов).

Как раз увидел такой чудесный модуль как регионы. К сожалению, поддерживается на данный момент только 4 страны (RU, BY, KZ, UA). Возникло несколько вопросов.

1. Можно ли "дорисовать" остальные регионы средствами яндекс карт? Полигонами или чем-нибуть подобным?

2. Есть ли возможность "состыковать" поиск и конкретный регион без сильного шаманства?

Решил сейчас вопрос так: пользователь вводит в поиск город, геокодирую, получаю координаты. Затем их обратно кодирую, что бы получить город, область (выводится в разном формате, не соотв. OSM), страну. Подгружаю нужную страну (или выдаю ошибку) Перебираю по массиву регионов по координатам, смотрю попал ли я в какой-нибудь регион. Если да - по айдишнику перебираю гео-объекты регионов, меняю цвет найденому.

Способ очень замороченый, как мне кажеться. Если есть идеи по-проще - буду рад выслушать.

3. Есть проблема с регионами на мобильных устройствах ( у меня по крайней мере). При клике на регион - срабатывает раза с 5 яростного тыканья в экран (срабатывает судя по всему что-то по типу touchmove). При этом все остальные клики считываются нормально (особенно кнопки, списки и т.д.)


Спасибо!

2 комментария
регионы,API 2.1
Как деактивировать слой
allians-sk
3 апреля 2015, 04:59

На предыдущию тему не кто не ответил, наверно совсем какая то глупость, ну попытался сделать просто кнопкой. То есть есть кнопка, которая добавляет слой при клике, но вот как его отменить, выключить? Есть ли какой то способ, типа myMap.destroy(); но только для слоя? Вот код кнопки 

var myButton = new ymaps.control.Button('<b>Карта разметки<b>');

myButton.events

    .add('select', function  () {

var tileUrlTemplate = './%z/%x-%y',

        keyTemplate = 'Callback_%c',

        imgUrlTemplate = 'n1/%z/%x-%y.png',

        objSource = new ymaps.hotspot.ObjectSource(tileUrlTemplate, keyTemplate),

        imgLayer = new ymaps.Layer(imgUrlTemplate, {tileTransparent: true}),

        hotspotLayer = new ymaps.hotspot.Layer(objSource, {cursor: 'help'});

 

    map.layers.add(imgLayer);})

   

    .add('deselect', function  () {  что сдесь писать???

});

map.controls.add(myButton);

2 комментария
слои,API 2.1,события
Центрирование карты с кластерами
sweelemk
3 апреля 2015, 08:59

Доброго дня. Необходимо на карте создать кластеры. Этот вопрос получилось решить. Однако, на часть карты сверху накладывается хидер, соответственно, все метки распологаются на всю доступную ширину карты и тем самым подъезжают по хидер. Помогите решить вопрос с тем, чтобы катра отображалась только в выбраной области.

 

http://take.ms/Zyxo2

 

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

 

Использую карты 2.0

 

Инициализация иммет следующий вид:

 

ymaps.ready(init);
var myMap;
function init(){
myMap = window.map = new ymaps.Map ("map", {
center: [53.90614, 27.54849],
zoom: 12
}),
clusterer = new ymaps.Clusterer({
preset: 'twirl#blueClusterIcons',
groupByCoordinates: false,
clusterDisableClickZoom: true
});

myMap.controls
.add('zoomControl', {
right: '35',
top: '350'
})

getPointOptions = function () {
return {
preset: 'twirl#blueIcon'
};
},
points = [
[53.90672, 27.52199], [53.93099, 27.54069], [53.90614, 27.54849]
],
geoObjects = [];

for(var i = 0, len = points.length; i < len; i++) {
geoObjects[i] = new ymaps.Placemark(points[i], getPointOptions());
}
clusterer.options.set({
gridSize: 80,
clusterDisableClickZoom: false
});
clusterer.add(geoObjects);
clusterer.events.once('objectsaddtomap', function () {
myMap.setBounds(clusterer.getBounds());
});
myMap.geoObjects
.add(clusterer);
}

 

6 комментариев
API 2.0,кластеризатор,область видимости
Кэширование и принтскрин Яндекс-карт запрещены навсегда?
С. А.
3 апреля 2015, 11:24

Доброе время суток!

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

либо

кэшировать нужные фрагменты заранее подгруженных карт..

либо

распечатывать фрагменты карт..

Стандартных возможностей, как я понимаю, сейчас нет?

Что еще можно сделать - кто подскажет?

9 комментариев
Как изменить behaviors у карты в полноэкранном режиме
rivercity.mail.test
3 апреля 2015, 11:39

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

При инициализации карты опция behaviors устанавливается в значение [], т.е. с картой ничего нельзя делать. Необходимо, чтобы при полноэкранном режиме можно было двигать и приближать карту (drag, dblClickZoom). Сейчас имею следующий код:

map.container.events.add('fullscreenenter', function() {
    map.options.set({
        behaviors: ['drag', 'dblClickZoom']
    });
});

map.container.events.add('fullscreenexit', function() {
    map.options.set({
        behaviors: []
    });
});

 

События срабатывают, но опции карты не изменяются. Как их изменить? И вообще, правильно решать такую задачу данным способом или можно сделать как-то проще?

2 комментария
карта на весь экран,API 2.1,события,поведения карты
Как изменить цвет текста кол-ва объектов в кластере, а так же шрифт
ktotud
3 апреля 2015, 13:05

Вопрос в топике

   var clusterIcons = [
    {
     href: '{$urlsrc}map/images/cluster-big.png?2',
     size: [30, 30],
     offset: [-15, -15],
     shape: {
      type: 'Circle',
      coordinates: [0, 0],
      radius: 15
     }
    }
   ];

Где тут указать цвет и размер текста ?

2 комментария
кластеризатор,API 2.1
ObjectManager+Clusters: нет хинтов и пустой балун
yuriy.zhilovets
3 апреля 2015, 14:50

 

// Менеджер объектов
  var objectManager = new ymaps.ObjectManager({
    clusterize: true,
    showInAlphabeticalOrder: true,
    maxZoom: 23,
    groupByCoordinates: true,
    clusterNumbers: [100],
    disableClickZoom: true
  });

 

Объекты работают, как им и положено - всплывает хинт, показывается балун.

Кластеры не показывают хинт вообще. Никакой. ObjectManager.clusters игнорирует все опции типа hasHint,, hintLayoutContent и т.д.

Балун на кластере показывается, но он совершенно пустой. В нем только разметка, но нету никаких данных.

 Ссылка на копию экрана 

 

2 комментария
кластеризатор,API 2.1,балун
Ошибка при добавлении объекта в коллекцию с индексом
pilyuginivan
3 апреля 2015, 17:21

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

Согласно документации при добавлении объекта в коллекцию можно указать индекс.

Почему-то при указании индекса в консоль вылетает ошибка "Uncaught TypeError: Cannot read property 'getPixelBounds' of undefined".

Вот пример кода (скопировал из песочницы, вырезал все объекты, кроме одного, и оставшемуся при добавлении задал индекс).

Что я делаю не так?

1 комментарий
API 2.1,коллекции