Клуб API Карт

сентябрь 2017
нужен специалист по api
Алексей Григорьев
1 сентября 2017, 11:36

Здравствуйте, нужен разработчик для создания карты выделенной территории с возможностью нанесения на неё участков зарегистрированными пользователями. В точности, как это реализовано в проекте http://dorogi-onf.ru. С конкретными предложениями: bkd48@bk.ru. Спасибо.

Нет комментариев
Новая структура адреса в ответе Геокодера
Maps API
1 сентября 2017, 14:48

В ответе Геокодера появился новый элемент Address.  Он отображает полный адрес объекта в иерархическом порядке (страна, область, город, район, улица, дом, корпус) и содержит информацию об индексе и буквенном коде страны.

Преимущество нового элемента в том, что все компоненты адреса находятся на одном уровне в массиве Components. Это упрощает программную обработку ответа Геокодера.

Как выглядит новый элемент Address можно посмотреть на этом примере запроса.

Команда API Яндекс.Карт

2 комментария
новости,геокодер
маршрут
Руслан Стенников
1 сентября 2017, 22:14

Можнол ли на нести на карту несколько маршрутов и выбирать их кнопками на сайте ?

2 комментария
маршрутизация
Задание координат
Ilia Ponomarenko
2 сентября 2017, 01:59
//1)

ymaps.ready(function () {
    var map;
    ymaps.geolocation.get().then(function (res) {
        var mapContainer = $('#map'),
            bounds = res.geoObjects.get(0).properties.get('boundedBy'),
            // Рассчитываем видимую область для текущей положения пользователя.
            mapState = ymaps.util.bounds.getCenterAndZoom(
                bounds,
                [mapContainer.width(), mapContainer.height()]
            );
        createMap(mapState);
    });
    function createMap (state) {
        map = new ymaps.Map('map', state);
    }    
});

Код определяет местоположение (не через ip)
как правильно задать расположение меток(маркеров)

2)

и как передать при инициализации карты, такой:

ymaps.ready(init);
var myMap;

function init(){     
    myMap = new ymaps.Map("map", {
        center: [55, 60],
        zoom: 12,
        controls: ['zoomControl',  'fullscreenControl']
    });
}

в параметр center координаты через переменные от:

navigator.geolocation.getCurrentPosition(
        function (position) {
            var userlong = position.coords.longitude;// переменная 1
            var userlat = position.coords.latitude;// переменная 2
        });

на мой взгляд (2) легче воспринимается, чем в 1м примере

4 комментария
карты,js,API 2.1
Карта метро с выбором станций на сайте
Алексеев И.
2 сентября 2017, 14:52

Добрый день. Пришел ко мне сайт, на котором реализована карта метро с выбором станций для фильтрации проектов. Можно посмотреть например на этой страничке: https://wise.cp83249.tmweb.ru/category/rent/ , в левой колонке - выбрать на карте.

Нашел, откуда был взята данная карта - https://github.com/ymaps/metro-jsapi

Задача: убрать drag с карты, чтобы она была статичной. Перепробовал уже все, от подламывания скрипта до css. Ничего не помогает, карта становится статичной, но при движении мышкой как бы под статичной картой двигается реальная карта, т.е. реальное положение станций метро становится другим, следовательно выбор станцй становится невозможным

https://wise.cp83249.tmweb.ru/maps/metro.debug.js - скрипт карты. 

function addmetro() {
            ymaps.modules.require(['TransportMap']).spread(function (TransportMap) {
                test = TransportMap.create('moscow', 'map', {
                    //center: [0,0]
                }, {
                    path: '/maps/metro-jsapi-master/metro-data-master/'
                    , shadeOnSelect: true
                    , lang: 'ru'
                }).then(function (map) {
                    map.behaviors.disable('drag');
                    //map.behaviors.disable('scrollZoom');
                });
                
                 
            }).done();
            
        }
       
        function delthings() {
                //$('.ymaps-2-1-48-copyrights-pane').remove();
            }
               setInterval(delthings, 10);
myMap.behaviors.disable('drag'); - не работает. Карта даже не воспринимает behaviors. Может я что-то делаю не так или это просто нереально с помощью данного скрипта убрать драг?
3 комментария
метро
Справочник организаций, виды деятельности
ivanova_nastya@variant-nk.ru
4 сентября 2017, 19:37

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

Есть ли возможность  скачать / просмотреть все виды деятельности организаций?

14 комментариев
API yandex
см. картинку. не верно показана улице на которой расположено ПАО Росгосстрах в Новокузнецке
Lar368411
5 сентября 2017, 06:35

см. картинку. Адрес Ермакова 3 (три) расположен правее на карте. Вы указываете на Ермака три.

1 комментарий
Слайдер изображений в балуне
k1n3z
5 сентября 2017, 12:16

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

var MyBalloonContentLayout = ymaps.templateLayoutFactory.createClass(<div class="img-slider"><div class="slide"><img src="uploads/object-thumb-slider1.jpg" /></div></div>)

Задача сделать слайдер (jquery plugin) внутри балуна путем - $[properties.xxx], скажите как добраться до каждого изображения в properties при таком синтаксисе в json файле: 
"imgSlider": [
                    {
                        "imgSrc": "uploads/object-thumb-slider4.jpg"
                    },
                    {
                        "imgSrc": "uploads/object-thumb-slider1.jpg"
                    },
                    {
                        "imgSrc": "uploads/object-thumb-slider2.jpg"
                    }
                ]
когда массив imgSlider находится в самом properties.

Вывести все ключи и значения получилось https://www.screencast.com/t/FiKA2900MJq , но как вывести изображения все и инициализировать слайдер после (когда инициализировать?) не пойму, не получается. За ранее спасибо!
Нет комментариев
содержимое балуна
Конструктор карт с своим слоем
Харимис
5 сентября 2017, 16:37

Нигде не нашёл необходимый мне инструмент. А нужен мне конструктор карт с возможностью загрузки своего слоя. 

Для игры (D&D, кто знает) хочу сделать карту вымышленного города. Соответственно надо поверх имеющейся в виде картинки схемы города нарисовать значимые дома метки и т.д. с описанием, доступным по клику/ховеру. 

Конечно, это можно запрограммировать самому, использую API, но тратить столько сил ради развлечения не хочется. Может кто подскажет, есть ли готовый инструмент для этого?

Нет комментариев
конструктор карт,Layer
Модернизация карты
Алексей
5 сентября 2017, 18:51

Ищу фрилансера!

Есть карта, реализованная через единичные Placemark, но их количество увеличилось до нескольких тысяч, и генерируется она очень долго (больше минуты). Нужно перевести её на ObjectManager с сохранением текущего функционала / либо предложить своё решение по оптимизации. 

Кто может помочь - напишите на koms@me.com

Нет комментариев
json
desout
6 сентября 2017, 09:44

Появилась проблема с реализацией хранения и изменения меток в картах.

Нашёл загрузку данных из json файла;

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

но как реализовать хранение данных и создание "правильного" json файла(я так понимаю есть определённый шаблон для правильного добавления меток с помощью ajax,как в примере).Как реализовать сериализацию данных меток в json файл,либо хранить это в БД?А если хранить в БД,то как реализовать множественную загрузку меток?формат БД нужен.Или можно напрямую изменять json файл?

Код добавлении метки(при нажатии кнопки происходит),имеется 2 подобных коллекций.

    buyers.add(new ymaps.Placemark(coords, {
        0: "Покупатель",
        1: address[0],
        2: address[1],
        3: elem[0].value,
        4: elem[2].value,
        5: elem[1].value,
        6: elem[3].value
    },
        { balloonContentLayout: balloontemplate }));

1 комментарий
Clustere.RemoveAll() выдает ошибку
danilastocks
6 сентября 2017, 13:00

добавил на карту кластер.

в него добавил [] от placemark

в некоторый момент хочу очистить кластер методом clusterer.removeAll()

выдает ошибку: Not Found Error

Есть какой-нибудь метод, который очистит добавленные объекты из кластера?

1 комментарий
Как получить коллекцию из прямых линий в маршруте
rarescrap
7 сентября 2017, 10:35

У меня есть мультимаршрут, который содержит в себе только один маршрут (multiRoute.getRoutes().getLength() == 1):

Маршрут

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

1 комментарий
multiRoute,маршрутизация,координаты полилинии,полилиния
Объекты инфраструктуры на карте
Виталий
8 сентября 2017, 12:55

Добрый день. Может кто подскажет что это за виджет. Встречал на многих сайтах, так и не смог ничего найти. 

6 комментариев
Script element was not found.
Максим Морозов
12 сентября 2017, 17:39

Столкнулся со странной ошибкой в IE - Script element was not found.

Появляется она когда карта созданная в конструкторе подгружается через jQuery getscript. В firefox и chrome карта отображается. В IE нет.

Поисковики такой ошибки не знают и ничего не предлагают.

Вот пример кода:

<script>
	$(document).ready(function() {
		$.getScript('https://api-maps.yandex.ru/services/constructor/1.0/js/?um=constructor%3Acd768f7e8220cf76ed6f8f8726746ed690382792d5975fc4a10a55b7ac19d99b&amp;width=100%25&amp;height=315&amp;lang=ru_RU&amp;scroll=true&id=map-test');
	});
</script>
<div id="map-test"></div>

Вот тут можно посмотреть пример вживую.

10 комментариев
конструктор карт,конструктор,jQuery,js,AJAX
Как изменить текст балуна объекта, добавленного через ObjectManager?
f-ph
14 сентября 2017, 04:44

Добрый день! Я создаю карту с кучей точек на ней. Точки добавляю с помощью ObjectManager:

const map = new ymaps.Map(document.getElementById('map'), {
    center: [63, 121],
    zoom: 6
});
const objectManager = new ymaps.ObjectManager({
    clusterize: true
});
objectManager.add({
    type: 'FeatureCollection',
    features: [
        {
            type: 'Feature',
            id: 1,
            geometry: {
                type: 'Point',
                coordinates: [64, 122]
            },
            properties: {
                balloonContentBody: 'Загрузка...'
            }
        },
        {
            type: 'Feature',
            id: 2,
            geometry: {
                type: 'Point',
                coordinates: [62, 120]
            },
            properties: {
                balloonContentBody: 'Загрузка...'
            }
        }
        // ...
    ]
});
map.geoObjects.add(objectManager);

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

Пробовал так, получилось только изменить внешний вид метки:

objectManager.objects.setObjectOptions(1, {
    preset: 'islands#redIcon',
    balloonContentBody: 'Загружено (бла бла бла)',
    properties: {
        balloonContentBody: 'Загружено (бла бла бла)'
    }
});

Ещё пробовал так:

objectManager.objects.getById(1).properties.balloonContentBody = 'Загружено (бла бла бла)';

В этом случае новый текст применяется только после открытия балуна (т.е. если балун открыт, текст внутри не поменяется пока не закроешь и не откроешь балун). Есть ли способ получше?

1 комментарий
ObjectManager,Balloon
Почему Balloon отображаентся не на своем месте?
Александр Копылов
14 сентября 2017, 10:59

Пробую сделать свой шаблон балуна, сделал всё один в один как в документации, но работает он себя странно. После добавления тестовых данных, при клике на точке балун появляется в левом верхнем углу (а не над точкой) и не реагирует ни на что, а при драге потом вообще всё вешается. В отладчике куча ошибок но ведущие вглубь самого API, а не мой код. Сам не силён в ява скрипте от слова "совсем".

Ссылка: https://jsfiddle.net/spyk6Luc/10/

2 комментария
balloonContentLayout
Слайдер в балуне
k1n3z
14 сентября 2017, 18:55
Добрый день. Подскажите пожалуйста как реализовать слайдер в балуне кластера. Одно изображение вывести могу: $[properties.imgSrc] - но как сделать когда их много в json?
6 комментариев
Uncaught TypeError: ymaps.GeoObject is not a constructor
Артем Маевский
15 сентября 2017, 10:43

Привет!

Не могу разобраться как подключить правильно, чтобы небыло ошибки:

Поключаю так:

...

  <script src="https://api-maps.yandex.ru/2.0-stable/?load=package.standard&lang=ru-RU" type="text/javascript"></script>
</head>

Использую так:

ymaps.ready(init);
var myMap,  myPlacemark;
function init(){     
  myMap = new ymaps.Map ("lo8gt4", {
      center: [44.827261, 37.369817], 
      zoom: 10                        
  });
  myMap.behaviors.enable("scrollZoom");
  myMap.controls.add("mapTools").add("typeSelector");

  //Добавляем метки с описанием
  //(x, y, met_id ,type, name, address, phone)
  add_placemark(44.882575, 37.306304, 1,'Гостиница', 'Лазурь', 'ул. Папанинцев, 8', '+7(123)123-12-12'); 
  add_placemark(44.790601, 37.401402, 2,'Минигостиница', 'у Романа', 'ул. Центральная улица, 41', '+7(123)123-12-12');   

}
function add_placemark(x, y, met_id ,type, name, address, phone){
  var parCont = (name + '<br> ' + address +'<br> ' + phone + '<br> ');
                myPlacemark = new ymaps.GeoObject({ //вот тут ymaps.GeoObject is not a constructor
                  geometry: {
                    hintContent: type, 
                    coordinates: [x, y],
                    type: "Point",
                    balloonContent: parCont,
                    id: met_id}
                });
                myMap.geoObjects.add(myPlacemark);
                met_id++;
                console.log(myPlacemark.id);
              }

Подскажите плиз как исправить!

3 комментария
Адрес есть, а в поиске не бьёт
Андрей
16 сентября 2017, 03:28

Адрес есть г.Тверь ул.Стержневая 52, есть дом на карте, а в поиске не бьёт. Не знаю куда корректно отправить запрос на эту тему.

1 комментарий