javascript - Google Maps Api v3 标记。谷歌未定义

标签 javascript google-maps google-maps-api-3

我有一个带有异步加载的 google maps api 的网站。但这会引发错误:找不到谷歌。 我的代码是:

<script>

function initialize() {

  var mapOptions = {
    zoom: 10,
    center: new google.maps.LatLng(51.817116, 4.780616),
    mapTypeId: google.maps.MapTypeId.ROADMAP,
    panControl: false,
    mapTypeControl: false,
    scaleControl: false,
    streetViewControl: false,
    overviewMapControl: false,
    rotateControl: false
  };

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

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

function loadScript() {
  var script = document.createElement('script');
  script.type = 'text/javascript';
  script.src = 'https://maps.googleapis.com/maps/api/js?v=3&sensor=false&' +
    'callback=initialize';
  document.body.appendChild(script);
}

addLoadEvent(loadScript);

</script>

当我删除标记时,代码可以正常工作。如果我按照某些示例中指定的方式添加标记,为什么它不起作用?

addLoad 是一个加载事件。这不是问题所在...任何人都可以帮助我完成这项工作吗?

最佳答案

在加载 Google Maps Javascript API v3 之前,您无法使用它。您的标记创建在加载 API 之前正在运行。您需要将其移动到初始化函数中,该函数在 API 可用之前不会执行。

<script>

function initialize() {

  var mapOptions = {
    zoom: 10,
    center: new google.maps.LatLng(51.817116, 4.780616),
    mapTypeId: google.maps.MapTypeId.ROADMAP,
    panControl: false,
    mapTypeControl: false,
    scaleControl: false,
    streetViewControl: false,
    overviewMapControl: false,
    rotateControl: false
  };

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

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

};  // end of initialize


function loadScript() {
  var script = document.createElement('script');
  script.type = 'text/javascript';
  script.src = 'https://maps.googleapis.com/maps/api/js?v=3&sensor=false&' +
    'callback=initialize';
  document.body.appendChild(script);
}

addLoadEvent(loadScript);

</script>

关于javascript - Google Maps Api v3 标记。谷歌未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20386782/

相关文章:

javascript - 清除 Google map 中的路线

javascript - 以另一个对象的属性作为键的对象

javascript - 使用 GreenSock (GSAP) 的 float 输入标签

javascript - 如何向现有的 JavaScript 函数添加键盘快捷键?

php - 让 map 接受动态生成的 KML 文件?

javascript - 谷歌地图自动完成地点未定义

javascript - 如何使用谷歌地图中以条形图形式表示地点值的标记?

PHP - Google Maps API 搜索返回 ZERO_RESULTS 但 Navigator 显示它

javascript - d3.js - 按两个系列之一的值对两个系列进行排序

javascript - 在 Bootstrap 模式中打开 map