В данном примере создаются три метки со своими HTML макетами.
Создание своих макетов происходит при помощи фабрики макетов.
Всем меткам задаются разные фигуры активных областей: прямоугольник, круг и полигон.
Метка, чтобы ловить события мышки, использует активную область.
По умолчанию при задании своего HTML макета фигура активной области не задается, и её нужно задать самостоятельно.
Это можно сделать при помощи опции метки iconShape в виде JSON описания геометрии.
\n","placemark_shape.js":"ymaps.ready(function () {\n var map = new ymaps.Map('map', {\n center: [55.7, 37.6],\n zoom: 10,\n controls: []\n });\n\n // Создание метки с квадратной активной областью.\n var squareLayout = ymaps.templateLayoutFactory.createClass('
$
');\n\n var squarePlacemark = new ymaps.Placemark(\n [55.725118, 37.682145], {\n hintContent: 'Метка с прямоугольным HTML макетом'\n }, {\n iconLayout: squareLayout,\n // Описываем фигуру активной области \"Прямоугольник\".\n iconShape: {\n type: 'Rectangle',\n // Прямоугольник описывается в виде двух точек - верхней левой и нижней правой.\n coordinates: [\n [-25, -25], [25, 25]\n ]\n }\n }\n );\n map.geoObjects.add(squarePlacemark);\n\n // Создание метки с круглой активной областью.\n var circleLayout = ymaps.templateLayoutFactory.createClass('
#
');\n\n var circlePlacemark = new ymaps.Placemark(\n [55.783202, 37.605584], {\n hintContent: 'Метка с круглым HTML макетом'\n }, {\n iconLayout: circleLayout,\n // Описываем фигуру активной области \"Круг\".\n iconShape: {\n type: 'Circle',\n // Круг описывается в виде центра и радиуса\n coordinates: [0, 0],\n radius: 25\n }\n }\n );\n map.geoObjects.add(circlePlacemark);\n\n // Создание метки со сложной фигурой активной области.\n var polygonLayout = ymaps.templateLayoutFactory.createClass('
!
');\n\n var polygonPlacemark = new ymaps.Placemark(\n [55.662693, 37.558416], {\n hintContent: 'HTML метка сложной формы'\n }, {\n iconLayout: polygonLayout,\n // Описываем фигуру активной области \"Полигон\".\n iconShape: { \n type: 'Polygon',\n // Полигон описывается в виде трехмерного массива. Массив верхнего уровня содержит контуры полигона. \n // Первый элемента массива - это внешний контур, а остальные - внутренние.\n coordinates: [\n // Описание внешнего контура полигона в виде массива координат.\n [[-28,-76],[28,-76],[28,-20],[12,-20],[0,-4],[-12,-20],[-28,-20]]\n // , ... Описание внутренних контуров - пустых областей внутри внешнего.\n ]\n }\n }\n );\n map.geoObjects.add(polygonPlacemark);\n});"},"resources":[],"directory":"https://sandbox.api.maps.yandex.net/examples/ru/2.1/placemark_shape/"}
Создание своих макетов происходит при помощи фабрики макетов.
Всем меткам задаются разные фигуры активных областей: прямоугольник, круг и полигон.
Метка, чтобы ловить события мышки, использует активную область.
По умолчанию при задании своего HTML макета фигура активной области не задается, и её нужно задать самостоятельно.
Это можно сделать при помощи опции метки iconShape в виде JSON описания геометрии.