4

我想动态更新由 Google Maps API v3 中的 MarkerImage 构造函数生成的精灵的“原点”点,并且想知道这是否可能在不完全生成新的 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 来再次设置精灵原点?

4

3 回答 3

4

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

marker.getIcon().origin = new google.maps.Point(0, 10);
marker.setIcon(marker.getIcon()); //re-draw the MarkerIcon
于 2011-09-07T09:14:43.177 回答
2

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

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

以下也有效:

marker.icon.origin = new google.maps.Point(0, 10);
于 2011-06-19T20:24:24.867 回答
0

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

于 2011-06-17T23:48:23.433 回答