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

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来重新设置精灵原点?

3个回答

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

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

2
您可以设置标记图标的 origin 属性。在您的示例中:
marker.getIcon().origin = new google.maps.Point(0, 10);

以下内容也可以运行:
marker.icon.origin = new google.maps.Point(0, 10);

点赞因为你是对的 - 从技术上讲,我可以使用这两种方法设置原点属性,但似乎它不会影响之前设置的MarkerImage。如果我检查对象,我可以看到原点属性已更新,但屏幕上的MarkerImage没有任何变化反映。 - Jon

0

根据API参考,似乎没有办法修改MarkerImage的属性。但是你可以创建一个新的MarkerImage并调用marker.setIcon()方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接