2011-11-19 138 views
2

我得到我的网站上的错误只是想实现基本的“Hello World”应用程序:谷歌地图V3,错误消息“谷歌是未定义”

<div id="map"></div> 

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script> 

$(document).ready(function() { 
    map = new google.maps.Map(document.getElementById("map"), myOptions); 
}); 

我得到的错误是:

'Uncaught ReferenceError: google is not defined'

我该如何解决这个问题?

+0

您不应该指定版本,但应该使用googleapis.com域名而不是google.com;两者都应该有效,但前者优于后者。你能否告诉我们完整的代码,例如myOptions中有什么? – duncan

回答

15

你的来源是错的,我也建议specifing要加载的准确版本:

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?v=3&sensor=true"></script> 

这应该帮助。

从您的代码
+1

谢谢!这解决了它,令人讨厌的是它在我的本地服务器和我的linux/apache主机上工作的很好,当我将它移动到我的生产框时,它又死了,再次感谢! – user499846

+1

此外,请确保您使用的IE8而不是https的HTTP ...不知道为什么 – Guus

1

许多事情:

  1. 你给document.ready但没有jQuery链接

  2. document.ready必须是内部<script>标签</script>

  3. 你也应该已经给出heightwidthdiv其中哟你拿着地图,因为它只是一个空标签。

  4. 您已经定义为myOptions地图,并没有什么解释的地图为哪些选择,同时加载地图**

这是一个完整的例子来加以考虑:

<html> 
<body> 

<div id="map" style="width:500px;height:500px;"></div> 
<script type="text/javascript" src="Please put your jquery here"></script> 
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script> 
<script type="text/javascript"> 
var myLatlng = new google.maps.LatLng(40.65, -73.95); 
    var myOptions = { 
    zoom: 13, 
    center: myLatlng, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
$("document").ready(function() { 

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

嗨对不起,这是我的复制pastery完整的失礼 - 我确实使用jQuery的库,并已附上脚本标签jcall到文档就绪功能,我设法错过了我的选择部分的代码示例 - 抱歉很难调试出我知道的正确信息,但没有任何错误会导致在控制台中看到错误。 – user499846

2

如果您的主站点位于https平台且地图位于http中,则有时会发生在浏览器Google Chrome中。为了显示地图,你在URL框中有一个盾牌,只需点击盾牌,它就会显示出来。

+0

你是对的当我添加https停止工作 – Jaypal

+0

使用相对协议指示: