2011-11-28 101 views
3

我正在爲我的谷歌地圖應用程序添加新圖層,並希望在那裏添加新徽標。像在這種情況下:如何在Google地圖中添加徽標到版權?

enter image description here

有一些乾淨的方法如何做到這一點的谷歌地圖API中,像谷歌地圖API V2使用GCopyrightGCopyrightCollection類?或者在v3中缺少這個功能(像很多其他功能一樣),我必須手動執行它?

+0

現在我發現了一個非常類似的問題在這裏:http://stackoverflow.com/questions/5489811/showing-map-copyright-in-gmaps-api-v3 – TMS

回答

7

在Google Maps API v3中,沒有版權API。請注意,在第2版中,GCopyright用於添加文本版權信息,而不是徽標。

要在地圖上添加徽標,您必須創建一個custom control

創建一個標誌自定義控件:

function MyLogoControl(controlDiv) { 
    controlDiv.style.padding = '5px'; 
    var logo = document.createElement('IMG'); 
    logo.src = 'img/my_logo.png'; 
    logo.style.cursor = 'pointer'; 
    controlDiv.appendChild(logo); 

    google.maps.event.addDomListener(logo, 'click', function() { 
     window.location = 'http://www.example.com'; 
    }); 
} 

的控件添加到地圖:

var logoControlDiv = document.createElement('DIV'); 
var logoControl = new MyLogoControl(logoControlDiv); 
logoControlDiv.index = 0; // used for ordering 
map.controls[google.maps.ControlPosition.BOTTOM_LEFT].push(logoControlDiv); 

同樣可以加入版權信息。但是您無法修改默認版權,您必須將其添加到默認設置旁邊。

如果要添加綁定到邊界框和/或縮放級別的版權信息,則必須手動創建此類行爲。

+0

謝謝Tomik,看起來不錯!至於右下角的文字信息?你會使用與BOTTOM_LEFT替換BOTTOM_RIGHT相同的代碼嗎? – TMS

+0

是的,基本上它會是相同的代碼(MyLogoControl()的內容會有些不同),我會使用BOTTOM_RIGHT或RIGHT_BOTTOM。在BOTTOM_RIGHT中,控件位於默認版權的左側,您無法修改它們。 – Tomik

+0

應該使用'logoControlDiv.index = 0'而不是1.編輯你的文章。謝謝。 – TMS

相關問題