我想动态更新由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才能再次设置精灵来源?
答案 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()
。