我正在浏览Google Maps API指南,并注意到此页面上的演示: https : //developers.google.com/maps/documentation/javascript/marker-clustering显然使用了initMap()内部定义的函数,实际上打电话给他们。 我能找到的唯一相关信息是,人们在定义或传递为变量时错误地在函数的末尾添加了(),但我看不到这种情况- 这些函数是如何执行的?

function initMap() {

  var map = new google.maps.Map(document.getElementById('map'), {
    zoom: 3,
    center: {lat: -28.024, lng: 140.887}
  });

  // Create an array of alphabetical characters used to label the markers.
  var labels = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';

  // Add some markers to the map.
  // Note: The code uses the JavaScript Array.prototype.map() method to
  // create an array of markers based on a given "locations" array.
  // The map() method here has nothing to do with the Google Maps API.
  var markers = locations.map(function(location, i) {
    return new google.maps.Marker({
      position: location,
      label: labels[i % labels.length]
    });
  });

  // Add a marker clusterer to manage the markers.
  var markerCluster = new MarkerClusterer(map, markers,
      {imagePath: 'https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m'});
}

#1楼 票数:0

答案隐藏在HTML中:

<script async defer 
    src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">

看到callback参数了吗? 这告诉Google Maps在库加载完成后立即调用名为initMap的全局定义函数。

#2楼 票数:0 已采纳

该代码创建新对象,并传递现有对象。 例如,当声明map时,代码会调用document.getElementById('map')传递new google.maps.Map(...) document.getElementById('map') Map对象的构造函数创建地图并将其显示在元素内。 确实不需要该变量,除非稍后添加标记。

实际上,您可以从上面的代码中删除var markerCluster = ,它仍然可以正常工作。

如果您的问题是Google Maps API如何知道如何调用initMap ,请参阅Eric的答案。

  ask by Mr.Roboto translate from so

未解决问题?本站智能推荐:

3回复

Javascript:在循环中定义函数时使变量静态化?

使用Google Maps,我有以下代码: 这是我的问题:执行该函数时,“ getTileUrl”函数中的“ tileNames [i]”未定义。 但是,“ tileNames”数组仅用于定义“ mapType”对象,因此,与传递给函数的“ coord”和“ zoom”变量不同,我希望使用
2回复

Javascript-触发1个eventListener后执行2个函数

我正在制作一个类似googleMaps的应用程序,并且在单击应用程序中的图像时,我需要它执行两个功能。 第一个函数显示带有对象名称的内容字符串,第二个函数显示从用户当前位置到单击的对象的方向。 这是用于创建在两个函数中使用的不同变量的代码。 但是,该应用程序仅执行第一个功能(名称显示),
1回复

JS通过调用或不调用函数的反应不同(使用了GoogleMapsAPI)

通过调用或不调用JavaScript代码中的单独函数,我遇到了奇怪的行为。 我无法理解结果的差异–从我的角度来看,应该出现完全相同的结果。 以下代码是有效的代码。 它将InfoWindow设置到标记和链接上。 以下代码几乎相同,只是删除了函数调用。 但是结果却不同:仅将alleDa
1回复

单击按钮以加载地图图层,尽管有函数定义了该变量,但仍返回未定义的变量(src)吗?

嗨,我在网站上有一个按钮,当用户单击它时,应该在Google地图上加载一个图层(kml文件)。 单击该按钮可运行三个功能。 1.定义什么是src(对kml文件的url调用)的函数。 (此处使用串联)。2.加载KML文件的函数。3.初始化地图的函数。 问题是地图加载,但图层没有加载。
1回复

javascript函数返回未定义但在警报时工作正常

我正在使用google map api,其中有一个函数,我正在传递地址,该函数返回纬度和经度,但是在此代码函数中,我返回undefined,但是当我使用Alert而不是return时,它工作正常,请告诉我在哪里我在此代码中是错误的。 我过去在Ajax代码中也遇到过同样的问题,但是我使用asyn
2回复

函数为什么不等待另一个函数[重复]

这个问题已经在这里有了答案: 如何从异步回调函数返回值? [重复] 3个答案 我有2个函数,函数A调用函数B,该函数对地址进行地址解析并将LatLng对象返回给函数A,但是不知何故,函数A不会等待函数B从Google返回结果。 在功能B中 但似乎控制台的输出是 因
3回复

JavaScript函数变量

结果变量和状态指的是什么? 他们来自哪里? 如何将出发地,目的地和旅行模式传递给该功能? 函数的结果在哪里?
1回复

Javascript文字函数

我对Javascript Literal函数有问题。 问题是:调用“ MyFunction”时,第三个参数始终是函数创建中使用的最后一个值 (值分别为0、1、2、3、4、6,而我始终收到6)。 我该如何解决? 谢谢