2011-11-28 93 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

相关问题