Клуб API Карт

июнь 2016
Определить принадлежность точки к улице
borzab
1 июня 2016, 11:11

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

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

Допустим, есть ломаная линия, и есть массив точек, мне нужно определить какие из этих точек ближайшие к ломаной линии (например, до 500 метров), а какие нет. Как это сделать?

2 комментария
Определения местоположения пользователя
rentaskcom
1 июня 2016, 13:42

Захожу в песочницу https://tech.yandex.ru/maps/jsbox/2.1/geolocated_map  и моё местоположение не определяет http://prntscr.com/baykr0 , хотя я нажал разрешать определять. Захожу на карты яндекса и там всё хорошо определяет точно всё http://prntscr.com/bayldp . Что не так в скрипте из песочницы? 

Сейчас у меня прописан код 

var geolocation = ymaps.geolocation;
geolocation.get({
    provider: 'yandex'
}).then(function (result) {
    
    var bounds = result.geoObjects.get(0).properties.get('boundedBy');
        
    console.log(ymaps.geolocation.latitude);
});

по этому коду у меня почему-то не спрашивает разрешение на отображение текущего местоположения

2 комментария
местоположение
Ошибка кластера при большом увеличении
happyluckybear
1 июня 2016, 22:28

http://jsfiddle.net/HappyCougar/j2e2xtts/1/

Карта зависает если приблизить до уровня разбития кластера на метки. Почему так, и где ошибка?

1 комментарий
maps,cluster
Как проверить попадание точек (добавленных через ObjectManager) в объект?
sqrt361
2 июня 2016, 04:01

Имеется большой массив точек. Все они добавляются через ObjectManager. Так же есть области в виде многоугольников и окружностей. Они добавляются как geoObject. Как проверить попадание в эти области?  

8 комментариев
ObjectManager,GeoObject
Карты 2.0 ошибка TypeError: this._xq is undefined
d@justopen.ru
2 июня 2016, 06:53

есть балун с оформлением

setBalloonLayout: function () {
                    var balloonLayout = ymaps.templateLayoutFactory.createClass(
                        '<div class="m-balloon">' +
                        '<a class="close" href="#"></a><div class="m-balloon-inner">' +
                        '<div class="map-description__name">$[properties.name]</div>' +
                        '<div class="map-description__address">$[properties.address]</div>' +
                        '</div></div>',
                        /*Переопределяем build балуна, для расчета смещения*/
                        {
                            build: function () {
                                var balloon    = this.getData().geoObject.balloon;
                                var projection = wifimap.map.options.get('projection');
                                var position   = this.getData().geoObject.geometry.getCoordinates();
                                var position_global_px = wifimap.map.converter.pageToGlobal(projection.fromGlobalPixels(position, wifimap.map.getZoom()));
                                var position_local_px  = wifimap.map.converter.globalToPage(projection.toGlobalPixels(position,wifimap.map.getZoom()));
                                wifimap.map.setGlobalPixelCenter([position_global_px[0] + position_local_px[0], position_global_px[1] + position_local_px[1] + 180]);

                                this.constructor.superclass.build.call(this);
                                /*Вешаем событие на кнопку закрытия*/
                                jQuery('.close').on('click', function (e) {
                                    e.preventDefault();
                                    balloon.close();
                                })
                            }
                        })
                    ymaps.layout.storage.add('wifi#balloon', balloonLayout);
                },

при открытии меняем координаты центра карты что бы балун был на экране
 

var projection = wifimap.map.options.get('projection');
var position   = this.getData().geoObject.geometry.getCoordinates();
var position_global_px = wifimap.map.converter.pageToGlobal(projection.fromGlobalPixels(position, wifimap.map.getZoom()));
var position_local_px  = wifimap.map.converter.globalToPage(projection.toGlobalPixels(position,wifimap.map.getZoom()));
wifimap.map.setGlobalPixelCenter([position_global_px[0] + position_local_px[0], position_global_px[1] + position_local_px[1] + 180]);

иногогда всё работает, иногда на вызове wifimap.map.setGlobalPixelCenter([position_global_px[0] + position_local_px[0], position_global_px[1] + position_local_px[1] + 180]); карты возвращают ошибку TypeError: this._xq is undefined

соотношение успехов к неудачам примерно 50/50 от чего это зависит понять не могу. 

2 комментария
КООРДИНАТЫ
alexcox2016
2 июня 2016, 13:19

Добрый день хочу создать метку в конструкторе по координатам на местности но поиск выдает несколько точек на планете которые не соответсвуют истенному положению объекта! требуется высокая точность но пальцем в карту не даст 100% результата! надеюсь на помощь

1 комментарий
Вывод данных в своём макете балуна
Андрей Нейман
2 июня 2016, 13:38

Есть балун, отображаемый по клику на карте (map.balloon.open()) с собственным макетом. Не удаётся вывести данные, переданные балуну, в макете.

Пример - https://jsfiddle.net/unnamed777/o01o5goy/

Ожидается, что в балуне будет выведено "param1: aa", однако, данные не доступны и через {{ data.param1 }}, и через {{ properties.param1 }}. Что я делаю не так?

2 комментария
балун
Метки со значком не загружаются
mitrofanovnk
3 июня 2016, 13:36

Доброго времени суток! Столкнулся с такой проблемой: При добавлении геообъекта устанавливаю значение опции preset в одно из доступных значений метки со значком, например 'islands#greenVegetationIcon'. На карте же отображается стандартная синяя метка.

Демонстрация (на базе примера из песочницы https://tech.yandex.ru/maps/jsbox/2.1/event_rollover): http://codepen.io/anon/pen/rLVMqL

Метка при наведении не меняется.

2 комментария
Метки со значком,Метки
Как упровлять мобилным отоброжением Балуна
Кирилл Балдин
4 июня 2016, 09:28

делаю приложения на фонгапе с яндекс картами

задача состоит в том чтобы баул открывался снизу экрана в большенстве случиев а не только когда расщирения 350 на 350

4 комментария
содержимое балуна,templateLayoutFactory,ballon
от геопозиции до заданной в коде страницы точки
mitrit
4 июня 2016, 09:30

Не могу в конструкторе построить маршрутную карту с конечным пунктом, заданным в коде (вручную) и авто-построения маршрута из автоматически определенного моего местонахождения.

Есть примеры с несколькими остановками, определением местонахождения и пр. А того что мне надо (см выше) -- нет.

Может даст кто пример кода для вставки в html?

Нет комментариев
геолокация
Кластеры за пределами видимой области карты
Швалёв Дмитрий
4 июня 2016, 13:54

Добрый день, есть задача соединить линиями кластеры геообъектов. На карту добавляются геоточки, затем добавляются кластеры, по координатам кластеров (geometry.getCoordinates()) создаётся ломаная (Polyline).

Проблема возникает когда кластер уходит за пределы видимой карты. В документации
https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/Clusterer-docpage/
есть упоминание: "Если объект не попадает в видимую область карты, он не будет добавлен на карту.", поэтому, как мне кажется, кластер уходя за видимую область удаляется и к нему невозможно нарисовать линию.

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

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

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

1 комментарий
кластер,кластеризатор,полилиния,координаты
Почему то не могу показать иконку 'islands#blueCircleDotIconWithCaption'
alekslv74
4 июня 2016, 17:43

Добрый

почему то не выводится иконка для метки 'islands#blueCircleDotIconWithCaption'

http://work1.alekslv.in.net/yandex.html

точнее она есть а вот надписи справа нету 

спасибо

5 комментариев
Как защитить паролем интерактивную карту Яндекс
tdbetonbaza
6 июня 2016, 14:29

Добрый день!

Появилась необходимость защитить список объектов нанесённые на яндекс карту (более 200 меток), сейчас карта доступна по ссылке.

Подскажите как её защитить паролем или доступом только по ip 

1 комментарий
Конвертировать гео-координаты в сферические
money-mvs
6 июня 2016, 16:57

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

Чтобы много не писать решил наглядно нарисовать суть задачи.

Если кто-то может, подскажите пожалуйста в какую сторону копать или киньте нужные формулы.

У меня есть сферическая панорама, снятая с известными гео-координатами и высотой съемки над уровнем земли (над уровнем моря также известно) на рисунке это 'cam' - camera.

Вот техническая реализация первой части задачи, если двигать точки на карте то в панораме они тоже правильно позиционируются по горизонтали - http://3d-live.com.ua/3dgallery/temp/gis/

И есть вторая точка (на рисунке "A") которая находится на расстоянии 64.3м от точки съемки если мерять по земле (координаты тоже ее знаю).

Так вот, азимут найти легко между этими двума точками ("C" и "A") - это будет поворот камеры по горизонтали в сторону точки "C". 

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

Результат должен получится +2.822 (это методом подбора)

Помогите пожалуйста

6 комментариев
Редактор многоугольников: открытие и сохранение. Uncaught TypeError: Cannot read property 'isLeaf' of undefined
darkdaemon1
7 июня 2016, 01:15

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

Uncaught TypeError: Cannot read property 'isLeaf' of undefined

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

https://jsfiddle.net/jat6eomk/1

Пробовал делать myMap и myPolygon глобальными переменными - не помогло. Принудительное удаление этих объектов при открытии координат на карте - не помогло. Пробовал отказаться от события drawingstop и вынес функцию на отдельную кнопку - тоже не помогло.

4 комментария
Научите пользоваться документацией?
maxyc.webber
7 июня 2016, 05:47
objectManager.objects.events.add('click', function (e) {
  var objectId = e.get('objectId');
  objectManager.objects.setObjectOptions(objectId, {
    BalloonContentLayout : BalloonContentLayout
   });
  objectManager.objects.balloon.open(objectId);
});

я честно облазил пол интернета, но так и не понял, как и где посмотреть что можно получить вот тут e.get('objectId'); objectId, type, target, возможно что то еще? Как и где этот список получить?

3 комментария
документация
API 2.0.30, меню у вершины полигона
clgs
7 июня 2016, 15:52

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

Необходимо некоторые пункты убрать, а другие слушать.

2 комментария
API Яндекс.Карт версия 2.1.41
ymapsapi
7 июня 2016, 17:53

Сегодня мы выпустили новую версию API Яндекс.Карт 2.1.41. Для её подключения используйте адрес: api-maps.yandex.ru/2.1.41/?lang=ru_RU
Также мы переключили на новую версию api-maps.yandex.ru/2.1-dev/?lang=ru_RU и api-maps.yandex.ru/2.1/?lang=ru_RU и вскоре опубликуем обновленную документацию.

Изменено:
- Продолжительность кинетического драга

Исправлено:
- Зависимости сторонних модулей не разрешались через fallback
- Не подгружалось сообщение об ошибке в searchControl при отсутствии результатов поиска. 

Нет комментариев
обновление,новости,API 2.1
Ссылка на другую точку внутри карты
a.khlebus
7 июня 2016, 20:02

Здравсвуйте! Мне необходимо из балуна точки, дать ссылку на другую точку, что бы при клике карта перешла в необходимые координаты.

Немного кода:

group.add(createPlacemark(new YMaps.GeoPoint(<?list($lon,$lat)=explode(",",$arItem["PROPERTIES"]["YMAP_POINT"]["VALUE"]); echo $lat.",".$lon?>),

//Далее все то, что вывожу в балуне

"<?=$arItem["PROPERTIES"]["NAME_SHORT"]["VALUE"]?> <?=$arItem["PROPERTIES"]["YMAP_PLACE"]["VALUE"]?>", 
"<table style='border:1px solid black'><tr><td><b>Наименование: </b></td>
//здесь еще куча всякой инфы...
<td><a href='#'><?=$arItem["PROPERTIES"]["KOMMENT"]["VALUE"]?></a></td></tr>"// вот здесь как раз должны быть та самая ссылка, переходящая к другому объекту

Помогите пожалуйста.

2 комментария
Разбитие адреса после его получения из геолокатора.
forsomeprojects
8 июня 2016, 15:10

Приветствую!

Получаю адрес 

addr = multiRoute.getWayPoints().get(0).properties.getAll().geocoderMetaData

Он приходит в виде объекта.

Как можно структурированно получить отдельные данные? (Город, область, улица, дом).

При попытки прямого обращения к свойствам объекта иногда получается ошибка, например, если не указана область (или улица) то отсутствует одно свойство ("вложение", например "SubAdministrativeArea"). Получается, надо проверять, есть ли это свойство. Может, есть список, когда определённые свойства есть, а когда нет? Или всё гораздо проще, и есть уже готовое решение? (обётрка, парсер)

Спасибо )

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