-2

我有一个单独的.js文件中的以下代码,但由于某种原因制造商没有显示当我加载页面,只有地图。Javascript谷歌地图API - 标记不显示

document.addEventListener('DOMContentLoaded', drawMap); 

//MAP 

function drawMap() { 

    var myLatLong = new google.maps.LatLng(53.4680477, -2.2400482); 

     var mapOptions = { 
      center: myLatLong, 
      zoom: 14 
     }; 
     var map = new google.maps.Map(document.getElementById('map-canvas'), 
      mapOptions); 
     } 

//MARKERS 

var marker = new google.maps.Marker( 
    { 
     position: myLatLong, 
     map: map, 
     title: "Marker" 
    } 
); 

marker.setMap(map); 
+2

你已经在函数之外声明了你的标记。 – sideroxylon

+0

当然哦,谢谢 – user3376304

回答

-1

试试这个

document.addEventListener('DOMContentLoaded', drawMap); 

//MAP 

function drawMap() { 

    var myLatLong = new google.maps.LatLng(53.4680477, -2.2400482); 

    var mapOptions = { 
     center: myLatLong, 
     zoom: 14 
    }; 
    var map = new google.maps.Map(document.getElementById('map-canvas'), 
    mapOptions); 

    //MARKERS 

    var marker = new google.maps.Marker({ 
     position: myLatLong, 
     map: map, 
     title: "Marker" 
    }); 

    marker.setMap(map); 
} 
+1

在写答案时请正确缩进你的代码。除此之外,由于'map:map'已经在标记选项中,因此不需要'setMap(map)'。 – MrUpsidown

0

我注意到,marker.setMap(图)在地图初始化之前添加。 尝试以下操作:从Google developers doc

function initialize() { 
    var myLatlng = new google.maps.LatLng(-25.363882,131.044922); 
    var mapOptions = { 
    zoom: 4, 
    center: myLatlng 
    } 
    var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions); 

    var marker = new google.maps.Marker({ 
     position: myLatlng, 
     map: map, 
     title: 'Hello World!' 
    }); 
} 

google.maps.event.addDomListener(window, 'load', initialize); 

希望这有助于提供

function drawMap() { 
    // init maps then add marker to map 
    marker.setMap(map); 
} 

这里有一个例子。