Подтвердить что ты не робот

Как выровнять значок маркера на карте google

В карте google обычно центральное дно изображения маркера - это точка lng точки, которую она должна отмечать.

Представьте себе, что мой значок маркера - это круг, я хотел бы, чтобы его центр находился на уровне заданной точки...

Код:

var image_hotspot = 'img/icons/bank_euro.png';
var marker = new google.maps.Marker({
      map: map,
      position: placeLoc,
      icon: image_hotspot
    });
4b9b3361

Ответ 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