Клуб API Карт

Найдено на тему «Map»:
Обновление карты js кодом
Виктор Иванов
19 января 2017, 16:25

ЗДравсвутйте, использую API 2.0.

На клиентской стороне меняю iconContent многих placemark. После этого данные не изменяются. Чтобы данные обновились необходимо провести какое-либо действие над картой, например переместить центр карты в другое место.
 

Подскажите пожалуйста метод, который обновит карту. update, redraw, map.container.fitToViewport(); не срабатывают.

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

5 комментариев
map,update
Выбор точки на карте (Яндекс)
Жуковский Павел
29 сентября 2016, 16:31

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

Есть ли примеры реализации? В документации нашёл только такой вариантhttps://tech.yandex.ru/maps/jsbox/2.1/dragger

но он плох тем, что маркет - это отдельный слой. И в будущем его спозиционировать по координатам невозможно.

1 комментарий
yandex api,dragger,map
Странное поведение адресов на катре
Жуковский Павел
14 сентября 2016, 10:32

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

Вот пример.

https://savgroup.ru/1/index.php

Помогите решить проблему. Спасибо.

7 комментариев
map,geoObjects,yandex
Удаление кастомного балуна с карты
akubenov
7 августа 2016, 13:51

Добрый день всем.

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

Для отображения нескольких балунов на карте отдновременно использую кастомные балуны:

var balloon = new ymaps.Balloon(this.map);

balloon.options.setParent(this.map.options);

balloon.options.set({
									shadow: false,
									layout: MyBalloonLayout,
									contentLayout: MyBalloonContentLayout,
									panelMaxMapArea: 0
});

balloon.setData({
   content: object.name
});

balloon.open(element.geometry.coordinates);

Вопрос: как удалять созданные кастомные балуны с карты? В документации не нашел как это можно сделать.

Сейчас удаляю балуны так $('selector').remove(). При следующем ховере создается новый балун.

1 комментарий
baloon,maps,API 2.1,custom ballon,yandex,map
Плавное появление карты
Дарья Миронова
26 марта 2016, 18:34

Как лучше всего сделать чтобы карта появлялась плавно, а не кусками. Вот так сейчас у меня подгружается http://prntscr.com/akamwn 

2 комментария
Map
привязать маркер и пункт меню
Дарья Миронова
24 марта 2016, 12:07

Здравствуйте направьте меня на правильный путь. Сейчас у меня на карте есть маркеры которые добавлены через коллекцию myCollection . и у меня есть тулбар со списком объектов которые на карту добавлены. Хочу сделать чтобы при наведении на объект из списка http://prntscr.com/ajabqk у меня у соотвествующего маркера появлялся hint . Как я понимаю это надо сделать привязку маркера из коллекции к событию коллекции(действие при наведении) Не знаю как это только сделать. И как из коллекции выбрать к примеру третий маркер? 

6 комментариев
Map,GeoObjectCollection
myMap.geoObjects как получить index объекта сгенерившего событие?
Mackiavelly67
26 февраля 2016, 18:14
ymaps.ready(init);

function init() {
    var myMap = new ymaps.Map("map", {
            center: [55.73, 37.75],
            zoom: 10
        }, {
            searchControlProvider: 'yandex#search'
        });

    // Создаем многоугольник, используя класс GeoObject.
    var myGeoObject = new ymaps.GeoObject({
        // Описываем геометрию геообъекта.
        geometry: {
            // Тип геометрии - "Многоугольник".
            type: "Polygon",
            // Указываем координаты вершин многоугольника.
            coordinates: [
                // Координаты вершин внешнего контура.
                [
                    [55.75, 37.80],
                    [55.80, 37.90],
                    [55.75, 38.00],
                    [55.70, 38.00],
                    [55.70, 37.80]
                ],
                // Координаты вершин внутреннего контура.
                [
                    [55.75, 37.82],
                    [55.75, 37.98],
                    [55.65, 37.90]
                ]
            ],
            // Задаем правило заливки внутренних контуров по алгоритму "nonZero".
            fillRule: "nonZero"
        },
        // Описываем свойства геообъекта.
        properties:{
            // Содержимое балуна.
            balloonContent: "Многоугольник"
        }
    }, {
        // Описываем опции геообъекта.
        // Цвет заливки.
        fillColor: '#00FF00',
        // Цвет обводки.
        strokeColor: '#0000FF',
        // Общая прозрачность (как для заливки, так и для обводки).
        opacity: 0.5,
        // Ширина обводки.
        strokeWidth: 5,
        // Стиль обводки.
        strokeStyle: 'shortdash'
    });

    // Добавляем многоугольник на карту.
    myMap.geoObjects.add(myGeoObject);

    // Создаем многоугольник, используя вспомогательный класс Polygon.
    var myPolygon = new ymaps.Polygon([
        // Указываем координаты вершин многоугольника.
        // Координаты вершин внешнего контура.
        [
            [55.75, 37.50],
            [55.80, 37.60],
            [55.75, 37.70],
            [55.70, 37.70],
            [55.70, 37.50]
        ],
        // Координаты вершин внутреннего контура.
        [
            [55.75, 37.52],
            [55.75, 37.68],
            [55.65, 37.60]
        ]
    ], {
        // Описываем свойства геообъекта.
        // Содержимое балуна.
        hintContent: "Многоугольник"
    }, {
        // Задаем опции геообъекта.
        // Цвет заливки.
        fillColor: '#00FF0088',
        // Ширина обводки.
        strokeWidth: 5
    });

    // Добавляем многоугольник на карту.
    myMap.geoObjects.add(myPolygon);
    
    myMap.geoObjects.events.add(['mouseenter', 'mouseleave'], onObjectEvent);
    
}

function onObjectEvent (e) {
    var objectIndex = ??? // Как получить хотябы индекс объекста в myMap.geoObjects
    console.log(objectIndex);
}

Пример из песочницы повесил ивенты на myMap.geoObjects только потом встал вопрос, а как получить индекс объекта который сгенерировал ивент?

2 комментария
Map,geoObjects,events
Проблемы с Map.panTo() при использовании внешних событий не относящихся к карте
nikita.pimoshenko
23 октября 2015, 11:56

Есть карта, на которой висят слушатели событий карты, например 'click', при клике метка на карте прягает в место клика и центр карты сдвигается на метку с помощью panTo и все работает отлично, с учетом даже того что расстояние перемещения метки по карте маленькое. Далее есть поля ввода ккординат и зума, на 'change' этих полей повещены обработчики, которые перемещают метку по карте, при использовании метода setCenter с измененными координатами, центр карты успешно перемещается(но естественно мгновенно, не помогает даже свойство options[duration]), при использовании panTo центр карты не перемещается, даже если расстояние будет в несколько областей видимости.

  

function inputEventsUpdate()
{
   var coords = map_object.get_coords();
myPlacemark.geometry.setCoordinates([coords.lat, coords.long]);
var panto = myMap.panTo([coords.lat, coords.long]);
var onRejected = function(data){
      console.log(data, 'rejected');
};
var onFulfilled = function(data) {
      console.log(data, 'fulfiled');
};
panto.then(onFulfilled, onRejected);
myMap.setZoom(coords.zoom);
}

 

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

2 комментария
API 2.1,события,Map,panTo,Map.panTo