2012-05-05 3 views
0

Я новичок в JavaScript и API Карт Google v3. Я пытаюсь привести пример кода разработчика на странице ASP.Net. Карта отображается так, как ожидалось, но маркер не загружается. Я был бы признателен, если бы кто-то мог определить мою ошибку:Почему мои маркеры Google Maps не загружаются?

<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

Чтобы продлить этот ответ: вы создаете маркер, а затем, когда документ загружается, создавая карту. Это означает, что маркер не имеет ничего, чтобы «защелкнуться» - переменная карты имеет значение null. Вам нужно сначала загрузить карту, а затем нажать на нее метки фиксатора. Если вы хотите, вы можете создать Маркерную очередь и запустить ее при запуске страницы, добавив маркеры из нее на карту, если карта будет готова. – DanRedux

+0

Спасибо. Теперь это кажется таким очевидным. –

Смежные вопросы