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

Макет хинта метки

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

Макеты объектов можно создавать с помощью фабрики templateLayoutFactory, используя текстовые шаблоны.

В данном примере создается пользовательский макет хинта геообъекта. Макет задается геообъекту через опции.

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

\n\n\n","placemark_hint_layout.js":"ymaps.ready(init);\n\nfunction init () {\n var myMap = new ymaps.Map(\"map\", {\n center: [55.76, 37.64],\n zoom: 10\n }, {\n searchControlProvider: 'yandex#search'\n }),\n // Создание макета содержимого хинта.\n // Макет создается через фабрику макетов с помощью текстового шаблона.\n HintLayout = ymaps.templateLayoutFactory.createClass( \"
\" +\n \"{{ properties.object }}
\" +\n \"{{ properties.address }}\" +\n \"
\", {\n // Определяем метод getShape, который\n // будет возвращать размеры макета хинта.\n // Это необходимо для того, чтобы хинт автоматически\n // сдвигал позицию при выходе за пределы карты.\n getShape: function () {\n var el = this.getElement(),\n result = null;\n if (el) {\n var firstChild = el.firstChild;\n result = new ymaps.shape.Rectangle(\n new ymaps.geometry.pixel.Rectangle([\n [0, 0],\n [firstChild.offsetWidth, firstChild.offsetHeight]\n ])\n );\n }\n return result;\n }\n }\n );\n\n var myPlacemark = new ymaps.Placemark([55.764286, 37.581408], {\n address: \"Москва, ул. Зоологическая, 13, стр. 2\",\n object: \"Центр современного искусства\"\n }, {\n hintLayout: HintLayout\n });\n\n myMap.geoObjects.add(myPlacemark);\n}\n"},"resources":[],"directory":"https://sandbox.api.maps.yandex.net/examples/ru/2.1/placemark_hint_layout/"}
Пишете на JavaScript? У нас есть вакансии
Sun Sep 18 2022 20:10:14 GMT+0300 (Moscow Standard Time)