Как выровнять значок маркера на карте google
В карте google обычно центральное дно изображения маркера - это точка lng точки, которую она должна отмечать.
Представьте себе, что мой значок маркера - это круг, я хотел бы, чтобы его центр находился на уровне заданной точки...
Код:
var image_hotspot = 'img/icons/bank_euro.png';
var marker = new google.maps.Marker({
map: map,
position: placeLoc,
icon: image_hotspot
});
Ответы
Ответ 1
Вам нужно создать объект MarkerImage
, например:
var markerImage = new google.maps.MarkerImage('img/icons/bank_euro.png',
new google.maps.Size(30, 30),
new google.maps.Point(0, 0),
new google.maps.Point(15, 15));
Где первый параметр - это URL изображения, второй - размер изображения, третий - исходная точка изображения, а четвертая - позиция на изображении, где должен указываться маркер.
Если ваш маркер представляет собой круг, установите четвертый параметр в центр изображения.
И создайте свой маркер, передающий MarkerImage
в свойство значка:
var marker = new google.maps.Marker({
map: map,
position: placeLoc,
icon: markerImage
});
Ответ 2
Из документов:
Преобразование объектов MarkerImage в тип Значок
var image = new google.maps.MarkerImage(
place.icon,
new google.maps.Size(71, 71),
new google.maps.Point(0, 0),
new google.maps.Point(17, 34),
new google.maps.Size(25, 25));
становится
var image = {
url: place.icon,
size: new google.maps.Size(71, 71),
origin: new google.maps.Point(0, 0),
anchor: new google.maps.Point(17, 34),
scaledSize: new google.maps.Size(25, 25)
};
https://developers.google.com/maps/documentation/javascript/markers
Ответ 3
С v3 Google Maps вы можете/должны использовать:
new maps.Marker({
...
icon: {
url: '.../myimage.png',
scaledSize: new maps.Size(60, 30),
anchor: new maps.Point(30, 30),
},
});
https://developers.google.com/maps/documentation/javascript/reference#Icon