在Google Maps标记中更新MarkerImage精灵原点(v3)

时间:2011-06-17 21:39:08

标签: google-maps google-maps-api-3 marker

我想动态更新由Google Maps API v3中的MarkerImage构造函数生成的精灵的“origin”点,我想知道是否可以完全生成新的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 个答案:

答案 0 :(得分:4)

当MarkerImage在地图上绘制时,最快的方法是:

marker.getIcon().origin = new google.maps.Point(0, 10);
marker.setIcon(marker.getIcon()); //re-draw the MarkerIcon

答案 1 :(得分:2)

您可以设置标记图标的origin属性。在您的示例中:

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

以下也有效:

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

答案 2 :(得分:0)

在创建MarkerImage之后,无法改变MarkerImage的属性(至少根据API参考)。您可以创建一个新的MarkerImage并调用marker.setIcon()