在GMaps API V3中显示地图版权

And*_*Dog 11 google-maps google-maps-api-3

我目前正在将应用程序从GMaps V2迁移到V3.当我使用OSM和其他非Google地图图层时,我希望将版权声明保留在右下方.但参考文档没有给出任何暗示.在V2中,版权甚至有自己的类GCopyrightCollection,并被传递给GTileLayer.Google Code游戏也没有提供V3的示例.

有谁知道如何在新的API中执行此操作?

And*_*Dog 8

邮件列表帮助我解决了这个问题(参见主题).有谷歌代码版权的馆藏示例代码,以及如何在地图DIV的右下角显示它们.

由于在右下角布局自定义DIV存在问题(拖动地图时仅跳转到正确位置,GMaps API本身存在问题),我现在将其显示在左下角.(更新:问题似乎在API中得到修复!)

以下代码按预期工作(当然,我没有使用全局变量,this.为清楚起见,已删除):

copyrightDiv = document.createElement("div")
copyrightDiv.id = "map-copyright"
copyrightDiv.style.fontSize = "11px"
copyrightDiv.style.fontFamily = "Arial, sans-serif"
copyrightDiv.style.margin = "0 2px 2px 0"
copyrightDiv.style.whiteSpace = "nowrap"
map.controls[google.maps.ControlPosition.BOTTOM_LEFT].push(copyrightDiv)

copyrights = {}
copyrights["OSM"] = "<a target=\"_blank\" href=\"http://www.openstreetmap.org/\">OpenStreetMap</a>"
copyrights["Osmarender"] = copyrights["OSM"]
copyrights["Cloudmade"] = "<a target=\"_blank\" href=\"http://cloudmade.com/\">CloudMade</a> - Map data <a target=\"_blank\" href=\"http://creativecommons.org/licenses/by-sa/2.0/\">CCBYSA</a>"
copyrights["Cloudmade-Fine"] = copyrights["Cloudmade"]

function onMapTypeIdChanged()
{
    newMapType = map.getMapTypeId()

    copyrightDiv = document.getElementById("map-copyright")
    if(newMapType in copyrights)
        copyrightDiv.innerHTML = copyrights[newMapType]
    else
        copyrightDiv.innerHTML = ""
}

google.maps.event.addListener(map, "maptypeid_changed", onMapTypeIdChanged)

// Call once so that the correct copyright notice is set for
// the initially selected map type
setTimeout(onMapTypeIdChanged, 50)
Run Code Online (Sandbox Code Playgroud)