【问题标题】:Map Markers do not appear (Javascript Google Maps API)地图标记不出现(Javascript Google Maps API)
【发布时间】:2015-12-26 07:44:00
【问题描述】:

我正在尝试在地图上实现标记。我可以验证地图在正确的中心正确渲染并缩放,但标记没有显示。

function initMap() {
  var latLng = new google.maps.LatLng({{latLng.latitude}}, {{latLng.longitude}})
  var mapOptions = {
    center: latLng,
    zoom: 14,
    mapTypeId: google.maps.MapTypeId.SATELLITE
  };
  var map = new google.maps.Map(document.getElementById("map"), mapOptions);
  var marker = new google.maps.Marker({
      position: latLng,
      visible: true,
      map: map
  });
}

我也尝试过使用marker.setMap(map)直接添加标记的实现:

function initMap() {
var myLatlng = new google.maps.LatLng({{latLng.latitude}}, {{latLng.longitude}});
var mapOptions = {
  zoom: 14,
  center: myLatlng
  mapTypeId: google.maps.MapTypeId.SATELLITE
}
var map = new google.maps.Map(document.getElementById("map"), mapOptions);

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

// To add the marker to the map, call setMap();
marker.setMap(map);
}

不渲染标记。我注意到,即使我用数字坐标替换纬度和经度的把手值以进行测试,标记仍然没有出现。任何帮助表示赞赏!

我正在 Chrome 中进行测试。

【问题讨论】:

  • 标记函数未调用
  • marker() 在函数 initMap() 中或作为参数与 myoptions 一起声明 map 变量
  • posted code works for me(我看到一个标记)

标签: javascript google-maps


【解决方案1】:

您需要使用此语法window.onload = function initMap(),并且您没有将标记分配给地图marker.setMap(map);,请尝试以下方式:

window.onload = function initMap() {

  //I just put some custom LatLng to make it work
  var LatLng = new google.maps.LatLng(41.9026329,12.452200400000038);

  var mapOptions = {

                     center: LatLng,
                     zoom: 14,
                     mapTypeId: google.maps.MapTypeId.SATELLITE
                   };

  var map = new google.maps.Map(document.getElementById("map"), mapOptions);

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

  marker.setMap(map);


};

如果您仍有问题,请告诉我。

希望我对您有所帮助。

【讨论】:

  • 嗨 - 实际上我确实尝试过,但没有成功 - 这里的文档指出,只有当你想直接添加标记时才需要该选项:developers.google.com/maps/documentation/javascript/markers。然而,这两种方法都不会为我生成标记。
  • 这很奇怪。你使用的是纯 JavaScript 还是 AngularJS 之类的框架?
  • 它确实向我展示了纯 Javascript。我编辑答案。
  • 嗯。感谢所有有用的信息,但不幸的是,我实际上已经尝试了所有这些,但仍然没有标记。如果我能弄清楚,会告诉你......另外,我们没有使用角度。我们正在通过快速车把,这可能是问题所在。我会进一步调查。
  • 原来是我使用的 CSS 影响了地图的渲染方式(尤其是地图宽度)的问题。不过感谢您的所有指点 - 经过所有调查后,肯定会更多地了解地图 API!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-06
  • 1970-01-01
  • 2015-07-01
  • 2011-12-11
相关资源
最近更新 更多