Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 标记不会显示在谷歌地图上_Javascript_Maps - Fatal编程技术网

Javascript 标记不会显示在谷歌地图上

Javascript 标记不会显示在谷歌地图上,javascript,maps,Javascript,Maps,我需要在谷歌地图上放置多个标记。问题是:我有一个纬度/经度数据数组。我需要在地图上为每个lat/lng对显示一个标记。但不会。如果我要求函数打印出坐标,而不是在地图上标记坐标,它可以正常工作。我没有收到任何错误消息,所以我被卡住了。该页面显示地图,但没有任何标记。下面是应该添加标记的函数的代码: //adds markers to the map function addMarkers(locarray) { var infowindow = new google.maps.InfoW

我需要在谷歌地图上放置多个标记。问题是:我有一个纬度/经度数据数组。我需要在地图上为每个lat/lng对显示一个标记。但不会。如果我要求函数打印出坐标,而不是在地图上标记坐标,它可以正常工作。我没有收到任何错误消息,所以我被卡住了。该页面显示地图,但没有任何标记。下面是应该添加标记的函数的代码:

//adds markers to the map
function addMarkers(locarray) {

    var infowindow = new google.maps.InfoWindow();
    var marker, i;
    for (i = 0; i < locarray.length; i++) {  
        marker = new google.maps.Marker({
        position: new google.maps.LatLng(locarray[i][0], locarray[i][1]),
        map: map
        });
        google.maps.event.addListener(marker, 'click', (function(marker, i) {
        return function() {
        infowindow.setContent('some words');
        infowindow.open(map, marker);
        }
        })(marker, i));
    }

}
以下是在body load上调用的初始化函数:

function initialize() {
    geocoder = new google.maps.Geocoder();
    var latlng = codeAddress("<?php echo $_POST['postal']; ?>");
    var myOptions = {
    zoom: 11,
    center: latlng,
    mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
}
地理编码器和地图被声明为全局变量。codeAddress函数返回我想要将地图居中的位置的lat和lng,它已经过测试,运行良好。这不是问题所在,我将省略它以简化并避免使用PHP

下面是声明数组并调用addMarkers函数的脚本:

<script type='text/javascript'>
var locations = [
      [-33.890542, 151.274856],
      [-33.923036, 151.259052],
      [-34.028249, 151.157507]
    ];
addMarkers(locations)
</script>

有人认为这有什么不对吗

onload发生在所有其他脚本被执行之后。我明白了。但是,当我从主体而不是作为onload函数调用initialize函数时,我得到一个错误,即“a为null”。从init函数调用marker adding函数。