2011-01-10 58 views
1

我需要谷歌地圖v3中JavaScript的幫助我有一個圖像,我需要能夠打開它。這是有效的,但真正的問題是,我不能感染一個標記,因爲我不知道如何調用它並修改這個標記。我告訴你的代碼的一部分:在谷歌地圖V3中打開圖片?

標記:

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

不幸的是,Google Maps API沒有提供任何訪問img-element的方法(我多次查找它)。 img-elements在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); 
    } 
} 

這將關閉所有IMG-elments與指定src時,可以添加更多的條件,if語句更加具體。

但是,這通常不是很好的解決方案,因爲通常更多的標記,然後一個具有相同的img src。

我會製作多個圖像並在Photoshop(或任何其他圖像處理工具)中旋轉它們,然後爲您想要使用的每個變體創建一個新的MarkerImage。然後用.setIcon()更改標記的圖像。即:

oMarker.setIcon(mImage); 

..fredrik

+0

非常感謝!但我如何在我的代碼中使用它?我無法適應它,Sory我是JS新手:S – Ilrodri 2011-01-10 11:38:54

0

在我的項目,我想旋轉圖像。 這就是爲什麼我建立了很多markerImages的: 爲(VAR I = 1;我< 31;我++){ nadelimages [I] =新google.maps.MarkerImage( 」 ./static/map/Kompass_'+i+ '.png', new google.maps.Size(w,w), new google.maps.Point(0,0), new google.maps.Point(w/2,w/2) );

目前: VAR rotatePin =函數(){ NI = NI + 1 如果(NI> 29)NI = 1; nadelMarkers [1] .setIcon(nadelimages [ni]); setTimeout(rotatePin,100); }

在上述的setIcon溶液不更新但它插入新標記圖像。標記的數量正在增加。 (ni> 29)ni = 1;如果(ni> 29)ni = 1,則可以使用以下公式來計算:其中, nadelMarkers [1] .setIcon('./ static/map/Kompass _'+ ni +'。png'); setTimeout(rotatePin,100); }

在這種情況下,它工作正常,但中心不是圖像的中心,但它不是centerbottom。

其他解決方案?

Rainer