在谷歌地图V3中转动图像?

时间:2011-01-10 08:20:33

标签: javascript maps

我需要谷歌地图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" />

所以就是这样。正如你所看到的,我正在影响这个图像,事实上我需要对标记产生影响。我该怎么做 ?我需要这个,我几个小时都在工作。谢谢!!

2 个答案:

答案 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); }

在这种情况下,它工作正常,但中心不是图像的中心,但它是中心底部。

其他解决方案?

相关问题