Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌地图Api v3标记。谷歌没有定义_Javascript_Google Maps_Google Maps Api 3 - Fatal编程技术网

Javascript 谷歌地图Api v3标记。谷歌没有定义

Javascript 谷歌地图Api v3标记。谷歌没有定义,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我有一个带有谷歌地图api的网站,它是异步加载的。但这就犯了一个错误:找不到谷歌。 我的代码是: <script> function initialize() { var mapOptions = { zoom: 10, center: new google.maps.LatLng(51.817116, 4.780616), mapTypeId: google.maps.MapTypeId.ROADMAP, panControl: false,

我有一个带有谷歌地图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>

函数初始化(){
变量映射选项={
缩放:10,
中心:新google.maps.LatLng(51.817116,4.780616),
mapTypeId:google.maps.mapTypeId.ROADMAP,
泛控制:错误,
mapTypeControl:false,
scaleControl:false,
街景控制:错误,
overviewMapControl:错误,
旋转控制:错误
};
var map=new google.maps.map(document.getElementById('maps'),
地图选项);
};
var customMarker=new google.maps.Marker({
位置:新google.maps.LatLng(51.817116,4.780616),
地图:地图
});
函数loadScript(){
var script=document.createElement('script');
script.type='text/javascript';
script.src=https://maps.googleapis.com/maps/api/js?v=3&sensor=false&' +
'回调=初始化';
document.body.appendChild(脚本);
}
addLoadEvent(loadScript);
当我删除标记时,代码正常工作。如果我按照一些示例中的说明添加标记,为什么它不起作用


addLoad是一个加载事件。这不是问题所在。。。有人能帮我实现吗?

您正在
initialize
中本地定义map变量,这意味着其他函数都无法访问它。在
初始化
之外全局声明它:

var map;

function initialize() {
  // code
  map = new google.maps.Map(document.getElementById('maps', mapOptions);
}

在加载Google Maps Javascript API v3之前,您不能使用它。在加载API之前,正在运行标记创建。您需要将其移入initialize函数,该函数在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>

函数初始化(){
变量映射选项={
缩放:10,
中心:新google.maps.LatLng(51.817116,4.780616),
mapTypeId:google.maps.mapTypeId.ROADMAP,
泛控制:错误,
mapTypeControl:false,
scaleControl:false,
街景控制:错误,
overviewMapControl:错误,
旋转控制:错误
};
var map=new google.maps.map(document.getElementById('maps'),
地图选项);
var customMarker=new google.maps.Marker({
位置:新google.maps.LatLng(51.817116,4.780616),
地图:地图
});
};  // 初始化结束
函数loadScript(){
var script=document.createElement('script');
script.type='text/javascript';
script.src=https://maps.googleapis.com/maps/api/js?v=3&sensor=false&' +
'回调=初始化';
document.body.appendChild(脚本);
}
addLoadEvent(loadScript);

addLoadEvent的实现是什么?可能不是问题,但没有它就无法复制。也许您可以提供一个显示问题的JSFIDLE?或者链接到一个实例?