Обновление исходной точки спрайта MarkerImage в маркере Google Maps (v3) - PullRequest
4 голосов
/ 18 июня 2011

Я хочу динамически обновить точку «происхождения» спрайта, созданного конструктором MarkerImage в Google Maps API v3, и мне интересно, возможно ли это без генерации нового MarkerImage полностью.

Вот некоторый код:

// Marker options
var markerOptions = {
    icon: new google.maps.MarkerImage('../images/content/marker.png', 
      new google.maps.Size(88,88),
        new google.maps.Point(0,0),
      new google.maps.Point(44,88)
    ),
  position: position,
  map: map
}

var marker = new google.maps.Marker(markerOptions);

Могу ли я сделать что-то в духе marker.setPoint (0,10) или мне нужно создать новый MarkerImage, чтобы снова установить источник спрайта?

Ответы [ 3 ]

4 голосов
/ 07 сентября 2011

Когда MarkerImage рисуется на карте, самый быстрый способ сделать это:

marker.getIcon().origin = new google.maps.Point(0, 10);
marker.setIcon(marker.getIcon()); //re-draw the MarkerIcon
2 голосов
/ 20 июня 2011

Вы можете установить свойство origin значка маркера. В вашем примере:

marker.getIcon().origin = new google.maps.Point(0, 10);

Работает также следующее:

marker.icon.origin = new google.maps.Point(0, 10);
0 голосов
/ 18 июня 2011

Нет способа (по крайней мере, в соответствии со ссылкой на API) изменить свойства MarkerImage после его создания.Вы можете создать новый MarkerImage и вызвать marker.setIcon().

...