谷歌地图:标记不会出现?

时间:2016-06-29 23:07:03

标签: javascript google-maps

"use strict"; // eslint-disable-line


var map;
var initialLocation;
// TODO: Initialize and display Google Map
function initialize() {
    //get current location


  if(navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(function(position) {
      initialLocation = new         google.maps.LatLng(position.coords.latitude,position.coords.longitude);
      map.setCenter(initialLocation);
    }, function() {
      handleNoGeolocation(browserSupportFlag);
    });
  }

var mapProp = {
center:initialLocation,
zoom:6,
    mapTypeId:google.maps.MapTypeId.ROADMAP
      };

  map = new google.maps.Map(document.getElementById("googleMap"),mapProp);

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


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

我正在尝试使用Javascript将标记设置到我当前的位置。但是,当我加载地图时,地图将以我当前位置为中心,不会出现任何标记?

2 个答案:

答案 0 :(得分:0)

一切看起来都不错,只需在以下部分添加 marker.setPosition(initialLocation);

if (navigator.geolocation) {
  navigator.geolocation.getCurrentPosition(function(position) {
    initialLocation = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
    marker.setPosition(initialLocation);// ****** missing line ******
    map.setCenter(initialLocation);
  }, function() {
    handleNoGeolocation(browserSupportFlag);
  });
};

这是一个有效的JSFiddle,需要进行必要的修改。

密钥来自Google MAP API示例,需要使用您自己的内容进行更新,您可以在此处获取:Google MAP API

您可能需要重新加载JSFiddle示例,因为来自googleapis文件的async延迟似乎存在问题。等几秒钟然后按RUN。

答案 1 :(得分:0)

只需确保变量initialLocation的内容即可。 如果它具有正确的lon / lat,则会出现标记。 在以下情况之前,您必须确保它具有正确的值:  var marker = new google.maps.Marker({           position:initialLocation,           地图:地图         });