地图无法显示 Google Maps API V3。

6

使用V3 API编写代码。

function initialize ()
{
    if (GBrowserIsCompatible()) 
    { 
        var ch = new GLatLng (0,0);

        var myOptions = {
            zoom:7,
            center: ch,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        }

        map = new google.maps.Map(document.getElementById("map"), myOptions);

        directionsDisplay = new google.maps.DirectionsRenderer(map, document.getElementById("map"));
        directionsDisplay.setMap(map);                  
    }
}

使用V2 API编写代码。
function initialize ()
{
     if (GBrowserIsCompatible()) 
     { 
         map = new GMap2 (document.getElementById("map"));
         map.setCenter (new GLatLng(0,0),1 );
     }
}

V2 API代码运行完美,V3 API代码没有显示任何地图。 我错过了什么要点吗?

编辑 已修改V3代码如下,但仍未显示地图:

var chicago = new google.maps.LatLng (0, 0);

var myOptions = {
    zoom:1,
    center: chicago,
    mapTypeId: google.maps.MapTypeId.ROADMAP
}

map = new google.maps.Map(document.getElementById("map"), myOptions);
5个回答

13

请确保您正在加载正确的Google Maps API,并且有一个id为map的

标签,同时最好为该
设置高度和宽度。(也许更好的做法是将高度和宽度放在样式表中,但为了清晰起见,在这里我将其包含在内联中。)

这是一个包含您编辑后代码的网页。尝试一下,对我来说有效。

<html>
<head>
<title>Google Map test</title>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
</head>
<body>
<div id="map" style="height:500px;width:500px"></div>
<script>
var chicago = new google.maps.LatLng (0, 0);

var myOptions = {
    zoom:1,
    center: chicago,
    mapTypeId: google.maps.MapTypeId.ROADMAP
}

map = new google.maps.Map(document.getElementById("map"), myOptions);
</script>
</body>
</html>

@Ray @wong2 最终问题已解决,没有你们的帮助我做不到!问题出在这一行 <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=GOOGLE_MAPS_KEY",我将其替换为 Trott 的这一行 src="http://maps.google.com/maps/api/js?sensor=false",这起到了作用:mad: 感谢所有人的帮助。 - Aquarius_Girl
1
对我有用。没有设置高度和宽度。谢谢! - William Weckl

1

在v3中没有GLatLng,请将其更改为google.maps.LatLng

center: chicago,

我也试过了,没有帮助 :( 这个文档也显示了没有引号: http://code.google.com/apis/maps/documentation/javascript/tutorial.html#HelloWorld - Aquarius_Girl
@AnishaKaul:你能否制作一个jsfiddle(jsfiddle.net)?这样我就可以更了解你的情况。 - wong2
1
中心点需要是一个LatLng对象,而不是一个字符串,因此将其更改为“芝加哥”将无济于事。幸运的是,OP在随后编辑问题时似乎已经做对了这一部分。 - Trott

1
在V3中,所有名称均已更改。例如,GLatLng现在是google.maps.LatLng。您需要修改代码以使用新名称。
如果您没有文档,请查看文档链接

谢谢,但是那并没有改变任何事情 :( 地图仍然没有显示! - Aquarius_Girl
好的,我刚刚把 if (GBrowserIsCompatible()) 语句全部删除了,但是没有任何变化。我实际上想要这个属性:http://code.google.com/apis/maps/documentation/javascript/reference.html#DirectionsRoute 它在V2上可用吗? - Aquarius_Girl
这可能是一个愚蠢的问题,但你确定 document.getElementById("map") 确实找到了一个 DOM 元素吗? - Ray
确实GBrowserIsCompatible()不适用于V3 API。如果我启用它,地图将不会显示。 - Aquarius_Girl

0

1- 确保您的Google地图API密钥正确。

2- 可能未在您的Google地图控制台中启用。

3- 错误启用了位置API而不是地图API。


0

我遇到了同样的症状,我的v2地图无法在V3中显示。当我查看浏览器控制台日志时,会看到错误:Uncaught ReferencedError: GBrowserIsIncompatible未定义。

根据Google V2 to V3 Migration Guide,GBrowserIsIncompatible不再受支持。我没有找到替代方案,只是删除了与此函数相关的逻辑。这网站建议只需删除该函数

我发现在迁移过程中还存在其他问题,在上面链接的Google迁移指南中有解决方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接