在网页中调用Google地图功能无法正常工作

时间:2014-01-13 20:19:38

标签: javascript html google-maps-api-3

我在网页的<head>中有以下功能:

    <script type="text/javascript"> 

    $(document).ready(function(){
    function googmap(){

    var marker;
    var circle;
    var map;
    var bounds = new google.maps.LatLngBounds();
    var latit = 5;
    var longi = 6;
    var search_range =  2;

map = new google.maps.Map(document.getElementById('map'), {
centre: new google.maps.LatLng(latit, longi),
mapTypeId: google.maps.MapTypeId.ROADMAP,
zoom: 6
});

marker = new google.maps.Marker({
position: new google.maps.LatLng(latit, longi),
map: map
});

google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(latit);
infowindow.open(map, marker);
}
})(marker, i));

    }
    });
    </script>

我使用以下方法调用此函数:

<body onLoad="googmap()">

然而,在javascript控制台中,它告诉我函数googmap()未定义。我确定这个问题与范围等有关或我定义函数的方式是错误的,但我对JavaScript很新,所以我不能自己解决它 - 任何帮助都会感激不尽!

2 个答案:

答案 0 :(得分:1)

你不需要在这里调用“onLoad ='googmap()'”,因为你已经在jquery document.ready中执行了这个功能。

您需要在此处更改脚本: (省略规则'function googmap(){'和匹配的结束'}')

$(document).ready(function(){

var marker;
var circle;
var map;
var bounds = new google.maps.LatLngBounds();
var latit = 5;
var longi = 6;
var search_range =  2;

map = new google.maps.Map(document.getElementById('map'), {
centre: new google.maps.LatLng(latit, longi),
mapTypeId: google.maps.MapTypeId.ROADMAP,
zoom: 6
});

marker = new google.maps.Marker({
position: new google.maps.LatLng(latit, longi),
map: map
});

google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(latit);
infowindow.open(map, marker);
}
})(marker, i));
    });
    </script>

答案 1 :(得分:0)

当你说由于范围而未定义googmap时,你是对的。由于该函数是在匿名函数内创建的:

$(document).ready(function(){

它不存在于它之外。添加googmap();到匿名函数的末尾。