我需要谷歌地图v3中的JavaScript帮助我有一个图像,我需要能够打开它。这是有效的,但真正的问题是,我不能感觉到标记因为我不知道如何调用它并修改这个标记。我向您展示了代码的一部分:
标记:
sURL = 'http://www.sl2o.com/tc/picture/Fleche.PNG';
iWidth = 97;
iHeight = 100;
mImage = new google.maps.MarkerImage(sURL, new google.maps.Size(iWidth,iHeight), new google.maps.Point(0,0), new google.maps.Point(Math.round(iWidth/2),Math.round(iHeight/2)));
var oMarker = new google.maps.Marker({
'position': new google.maps.LatLng(iStartLat,iStartLon),
'map': map,
'title': 'mon point',
'icon': mImage
});
然后我有了这个:
onload=function(){
rotate.call(document.getElementById('im'),50);
}
</script>
<img id="im" src="http://www.sl2o.com/tc/picture/Fleche.PNG" width="97" height="100" />
所以就是这样。正如你所看到的,我正在影响这个图像,事实上我需要对标记产生影响。我该怎么做 ?我需要这个,我几个小时都在工作。谢谢!!
答案 0 :(得分:0)
不幸的是,Google Maps API没有提供任何访问img-element的方法(我已多次查找)。 img元素在DOM树中混合,因此可以搜索。即:
var imgElements = document.getElementsByTagName('img'),
i = 0;
for (i = 0; i < imgElements.length; i+= 1) {
if (imgElements[i].src === 'http://www.sl2o.com/tc/picture/Fleche.PNG') {
rotate.call(imgElements[i], 50);
}
}
这将使用指定的src转换所有img-elments,您可以为if语句添加更多条件以使其更具体。
但这通常不是很好的解决方案,因为通常更多的标记,然后一个具有相同的img src。
我会制作多个图像并在Photoshop(或任何其他图像处理工具)中旋转它们,然后为您要使用的每个变体创建一个新的MarkerImage。并使用.setIcon()更改标记的图像。即:
oMarker.setIcon(mImage);
..弗雷德里克
答案 1 :(得分:0)
在我的项目中,我想旋转图像。 这就是为什么我建立了很多markerImages: for(var i = 1; i&lt; 31; i ++){ nadelimages [i] = new google.maps.MarkerImage( './static/map/Kompass_'+i+'.png', 新的google.maps.Size(w,w), 新的google.maps.Point(0,0), 新的google.maps.Point(w / 2,w / 2) );
现在: var rotatePin = function(){ ni = ni + 1 if(ni> 29)ni = 1; nadelMarkers [1] .setIcon(nadelimages [NI]); 的setTimeout(rotatePin,100); }
在上面的解决方案中,setIcon不会更新,但它插入新的标记图像。标记的数量正在增长。
var rotatePin = function(){ ni = ni + 1 if(ni> 29)ni = 1; nadelMarkers [1] .setIcon( './静态/图/康帕斯_ '+ NI +' PNG。'); 的setTimeout(rotatePin,100); }
在这种情况下,它工作正常,但中心不是图像的中心,但它是中心底部。
其他解决方案?
赖