首页 > web前端 > js教程 > 如何使用 Google Maps JS API v3 通过 InfoWindows 显示多个标记?

如何使用 Google Maps JS API v3 通过 InfoWindows 显示多个标记?

Barbara Streisand
发布: 2024-12-20 15:45:10
原创
803 人浏览过

How to Display Multiple Markers with InfoWindows using the Google Maps JS API v3?

Google Maps JS API v3 - 简单的多个标记示例

创建地图和标记

首先,创建一个新的 HTML 文件,并包含 Google 地图 API 脚本和您的 API 密钥。接下来,设置 Map 对象并为其提供必要的参数:

var map = new google.maps.Map(document.getElementById('map'), {
  zoom: 10,
  center: new google.maps.LatLng(-33.92, 151.25),
  mapTypeId: google.maps.MapTypeId.ROADMAP
});
登录后复制

创建 InfoWindow

定义一个 InfoWindow 对象,该对象在其上显示位置名称标记点击:

var infowindow = new google.maps.InfoWindow();
登录后复制

循环位置数据

接下来,迭代数据数组并为每个位置创建一个标记,并将其添加到地图中:

for (i = 0; i < locations.length; i++) {  
  marker = new google.maps.Marker({
    position: new google.maps.LatLng(locations[i][1], locations[i][2]),
    map: map
  });
登录后复制

设置 InfoWindows 的点击事件

最后,为每个标记添加一个事件侦听器,以在以下情况下触发 InfoWindow 打开:点击:

  google.maps.event.addListener(marker, 'click', (function(marker, i) {
    return function() {
      infowindow.setContent(locations[i][0]);
      infowindow.open(map, marker);
    }
  })(marker, i));
}
登录后复制

完整代码

完整代码如下所示:

var locations = [
  ['Bondi Beach', -33.890542, 151.274856, 4],
  ['Coogee Beach', -33.923036, 151.259052, 5],
  ['Cronulla Beach', -34.028249, 151.157507, 3],
  ['Manly Beach', -33.80010128657071, 151.28747820854187, 2],
  ['Maroubra Beach', -33.950198, 151.259302, 1]
];

var map = new google.maps.Map(document.getElementById('map'), {
  zoom: 10,
  center: new google.maps.LatLng(-33.92, 151.25),
  mapTypeId: google.maps.MapTypeId.ROADMAP
});

var infowindow = new google.maps.InfoWindow();

var marker, i;

for (i = 0; i < locations.length; i++) {  
  marker = new google.maps.Marker({
    position: new google.maps.LatLng(locations[i][1], locations[i][2]),
    map: map
  });

  google.maps.event.addListener(marker, 'click', (function(marker, i) {
    return function() {
      infowindow.setContent(locations[i][0]);
      infowindow.open(map, marker);
    }
  })(marker, i));
}
登录后复制

以上是如何使用 Google Maps JS API v3 通过 InfoWindows 显示多个标记?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板