我需要一些关于Google Maps API v3的帮助。
我有一张带有标记(图片)的地图,来自数据库的信息。图片和地图目前还可以。
我想在更改缩放比例时调整标记的大小,但我的代码不起作用(图片消失,替换为默认图标)。你能帮我看看有什么问题吗?
这是我的代码:
这部分还可以
var marker = new google.maps.Marker({
map: map,
icon: new google.maps.MarkerImage("../images/installateurs/<?php echo $row_artisans['photo0']; ?>",
new google.maps.Size(40, 53.2),
new google.maps.Point(0, 0),
new google.maps.Point(0, 0),
new google.maps.Size(40, 53.2)
),
position: new google.maps.LatLng(<?php echo $row_artisans['Lat']; ?>, <?php echo $row_artisans['Lng']; ?>)
});
问题的第二部分(此侦听器放置在创建地图之后,在渲染地图之前)
google.maps.event.addListener(map, 'zoom_changed', function() {
var largeur = 20 + (5 *(map.getZoom() - 9));
var ratio = largeur / 40;
var hauteur = 26.6 * ratio;
for(i=0; i< markers.length; i++ ) {
var icon = markers[i].getIcon();
markers[i].setIcon(
icon.url,
new google.maps.Size(largeur, hauteur),
new google.maps.Point(0, 0),
new google.maps.Point(0, 0),
new google.maps.Size(largeur, hauteur)
);
}
});
感谢您的帮助!
根据文档,setIcon
要么接受字符串,要么接受MarkerImage
对象。最初您设置了一个MarkerImage
,但在侦听器代码中,您不会构造MarkerImage
。请尝试以下操作:
for(i=0; i< markers.length; i++ ) {
var icon = markers[i].getIcon();
markers[i].setIcon(new google.maps.MarkerImage(
icon.url,
new google.maps.Size(largeur, hauteur),
new google.maps.Point(0, 0),
new google.maps.Point(0, 0),
new google.maps.Size(largeur, hauteur))
);
}