Версия:
Популярные примеры
Карта
Геообъекты
Балун и хинт
Элементы управления
Активные области
Кластеризация
GeoQuery
Поведения и события
Поиск по карте
Пробки
Местоположение пользователя
Маршрутизация
YMapsML
GeoXML
ObjectManager
Модульная система
Панорамы
Внешние модули

Обработка клика на маркере панорамы

Сохранить как файлыЭкспорт на JSFiddle

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

У каждой карты есть менеджер панорам panorama.Manager, ссылку на который можно получить через метод getPanoramaManager(). С помощью методов этого менеджера можно включать и выключать поиск панорам на карте, открывать и скрывать плеер панорам и др.

После получения panorama.Player вы можете подписаться на события этого плеера.

\n\n","panorama_events.js":"ymaps.ready(function () {\n\n var myMap = new ymaps.Map('map', {\n center: [55.759142, 37.639987],\n zoom: 18,\n type: 'yandex#map',\n controls: ['typeSelector']\n }),\n // Создаём коллекцию, в которой будем хранить точки на карте.\n collection = new ymaps.GeoObjectCollection();\n // Добавляем коллекцию на карту.\n myMap.geoObjects.add(collection);\n\n // Получим менеджер панорамы карты.\n myMap.getPanoramaManager().then(function (manager) {\n // Включаем режим поиска панорам на карте.\n manager.enableLookup();\n // Открываем плеер панорам.\n manager.openPlayer(myMap.getCenter());\n // Подпишемся на событие открытия плеера панорам.\n manager.events.add('openplayer', function () {\n // Получим текущий плеер панорам.\n var player = manager.getPlayer();\n // При закрытии плеера или смене панорамы удаляем добавленные точки.\n player.events.add(['panoramachange', 'destroy'], function () {\n collection.removeAll();\n });\n // При клике по свернутому маркеру добавим метку в коллекцию на карте.\n player.events.add('markerexpand', function (e) {\n // Получим координаты дома, по которому кликнул пользователь.\n var position = e.get('marker').getPosition(),\n coords = position.slice(0, 2);\n\n // Добавим в коллекцию метку с координатами дома.\n collection.add(new ymaps.Placemark(coords, {}, {\n openBalloonOnClick: false,\n iconLayout: 'default#image',\n iconImageHref: 'circle.png',\n // Размеры метки.\n iconImageSize: [10, 10],\n // Смещение левого верхнего угла иконки относительно точки привязки.\n iconImageOffset: [-5, -5]\n }));\n });\n // При клике по раскрытому маркеру удалим метку из коллекции на карте.\n player.events.add('markercollapse', function (e) {\n // Получим координаты дома, по которому кликнул пользователь.\n var position = e.get('marker').getPosition(),\n coords = position.slice(0, 2);\n // Найдём метку в коллекции по координатам и удалим её.\n collection.each(function (obj) {\n if (ymaps.util.math.areEqual(obj.geometry.getCoordinates(), coords)) {\n collection.remove(obj);\n }\n });\n });\n });\n });\n});\n"},"resources":["circle.png"],"directory":"https://sandbox.api.maps.yandex.net/examples/ru/2.1/panorama_events/"}
Пишете на JavaScript? У нас есть вакансии
Sun Sep 18 2022 20:10:14 GMT+0300 (Moscow Standard Time)