2012-05-05 45 views
0

我是JavaScript和Google Maps API v3的新手。我正在尝试ASP.Net页面中的开发人员指南示例代码。地图按预期显示,但标记不加载。我会很感激,如果有人可以发现我的错误:为什么我的Google地图标记不加载?

<style type="text/css"> 
    html, body, #map_canvas { margin: 0; padding: 0; height: 100%; } 
</style> 
<script type="text/javascript" 
    src="https://maps.googleapis.com/maps/api/js?sensor=false"></script> 
<script type="text/javascript"> 
    var map; 
    var myLatlng = new google.maps.LatLng(-41.2954168187213,174.767133718655) 
    function initialize() { 
     var myOptions = { 
      zoom: 4, 
      center: myLatlng, 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
     }; 
     map = new google.maps.Map(document.getElementById("map_canvas"), 
     myOptions); 
    } 

    var marker = new google.maps.Marker({ 
     position: myLatlng, 
     map: map, 
     title: "Hello World!" 
    }); 
    // The following set map made no difference. 
    //The constructor above should have been enough? 
    //marker.setMap(map); 
    //google.maps.event.addDomListener(window, 'load', initialize); 
</script> 
<body onload="initialize()"> 
    <div id="map_canvas"></div> 
</body> 

回答

2

尝试把标记代码初始化函数内。否则,标记不会看到创建的地图。

+1

为了扩展这个答案 - 你制作标记,然后在文档加载时制作地图。这意味着标记没有什么可以“锁定” - 地图变量为空。您需要先加载地图,然后将标记锁定到该地图上。如果你愿意,你可以创建一个标记队列,并在页面运行时通过它运行,如果地图准备就绪,则将标记添加到地图中。 – DanRedux

+0

谢谢。现在看起来很明显。 –

相关问题