Маркеры
Один маркер
Чтобы добавить маркер на карту, укажите его координаты:
const marker = new mapgl.Marker(map, {
coordinates: [55.31878, 25.23584],
});
Несколько маркеров
Чтобы добавить несколько маркеров, используйте цикл:
const coords = [
[55.27414804174869, 25.257576991034284],
[55.289254243403306, 25.211614202468652],
[55.34418588368302, 25.215341562259866],
[55.35036569359612, 25.26068195798851],
[55.32976632814914, 25.238324424362062],
];
coords.forEach((coord) => {
const marker = new mapgl.Marker(map, {
coordinates: coord,
});
});
Изменение иконки маркера
Чтобы изменить иконку маркера, укажите параметр icon
:
const marker = new mapgl.Marker(map, {
coordinates: [55.31878, 25.23584],
icon: 'https://docs.2gis.com/img/mapgl/marker.svg',
});
Маркер с текстом
Добавление текста
Чтобы добавить текст для маркера, укажите параметр label
:
const marker = new mapgl.Marker(map, {
coordinates: [55.31878, 25.23584],
label: {
text: "The marker's label",
},
});
Выравнивание текста
Чтобы изменить расположение текста, укажите параметры relativeAnchor
и offset
у label
(см. LabelOptions для полного списка параметров):
// Выравнивание справа по центру
const rightCenter = new mapgl.Marker(map, {
coordinates: [55.32878, 25.23584],
icon: '/img/mapgl/marker.svg',
label: {
text: 'Right center placement',
offset: [20, 0],
relativeAnchor: [0, 0.5],
},
});
// Выравнивание по левому верхнему краю
const leftTop = new mapgl.Marker(map, {
coordinates: [55.30878, 25.22584],
icon: '/img/mapgl/marker.svg',
label: {
text: 'Left top placement',
offset: [-10, -10],
relativeAnchor: [1, 1],
},
});
Фон текста
Чтобы добавить фоновое изображение для текста, укажите параметр image
(см. LabelImage для более подробного описания параметров):
const marker = new mapgl.Marker(map, {
coordinates: [55.31878, 25.23584],
label: {
text: "The marker's label",
offset: [0, 25],
relativeAnchor: [0.5, 0],
image: {
url: 'tooltip-top.svg',
size: [100, 50],
stretchX: [
[10, 40],
[60, 90],
],
stretchY: [[20, 40]],
padding: [20, 10, 10, 10],
},
},
});
Информацию о том, как правильно растягивать фоновое изображение, см. в примерах текстовых меток.
События
Чтобы подписаться на события, такие как нажатие на маркер, используйте метод on()
(см. DynamicObjectEventTable для полного списка событий):
const marker = new mapgl.Marker(map, {
coordinates: [55.31878, 25.23584],
icon: 'https://docs.2gis.com/img/mapgl/marker.svg',
});
marker.on('click', (e) => {
alert('Marker is clicked');
});