Google maps Google maps API v3-多个标记,每个标记带有自定义url链接+;自定义图标

Google maps Google maps API v3-多个标记,每个标记带有自定义url链接+;自定义图标,google-maps,google-maps-api-3,Google Maps,Google Maps Api 3,第一次尝试使用谷歌地图API构建地图时遇到了障碍 我正在尝试制作一个具有以下特性的自定义地图: 多位置标记 标记的自定义图标 每个标记的自定义url链接,这样每当有人单击标记时,他们都会转到url链接 这张地图是为一位在伦敦索霍区拥有几个办事处的客户绘制的。我一直在使用w3学校代码测试仪在Google的Playerd+上测试各种代码。我一直在寻找如何设置我的地图的各种元素的例子,这些元素在一个接一个地设置时都可以很好地工作 然而,如果我想结合地图的所有功能,代码需要以不同的方式设置 以下是我

第一次尝试使用谷歌地图API构建地图时遇到了障碍

我正在尝试制作一个具有以下特性的自定义地图:

  • 多位置标记

  • 标记的自定义图标

  • 每个标记的自定义url链接,这样每当有人单击标记时,他们都会转到url链接

这张地图是为一位在伦敦索霍区拥有几个办事处的客户绘制的。我一直在使用w3学校代码测试仪在Google的Playerd+上测试各种代码。我一直在寻找如何设置我的地图的各种元素的例子,这些元素在一个接一个地设置时都可以很好地工作

然而,如果我想结合地图的所有功能,代码需要以不同的方式设置

以下是我目前掌握的情况:

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>Google Maps Multiple Markers</title>
<script src="http://maps.google.com/maps/api/js?sensor=false"></script>
</head>
<body>
<div id="map" style="width: 100%; height: 300px;"></div>

<script type="text/javascript">
var locations = [
  ['56-58 Broadwick Street', 51.5053, -0.1481, 5],
  ['79 Wardour Street', 51.512370, -0.133300, 3],
];

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

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

var marker, i;
var markers = new Array();

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
  });

  markers.push(marker);

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

function AutoCenter() {
  //  Create a new viewpoint bound
  var bounds = new google.maps.LatLngBounds();
  //  Go through each...
  $.each(markers, function (index, marker) {
  bounds.extend(marker.position);
  });
  //  Fit these bounds to the map
  map.fitBounds(bounds);
}
AutoCenter();

</script>
</body>

谷歌地图多个标记
变量位置=[
['56-58布罗德威克街',51.5053,-0.1481,5],
[华都街79号,51.512370,-0.133300,3],
];
var map=new google.maps.map(document.getElementById('map'){
缩放:14,
中心:新google.maps.LatLng(51.5132695,-0.1356768),
mapTypeId:google.maps.mapTypeId.ROADMAP
});
var infowindow=new google.maps.infowindow();
var标记,i;
var markers=新数组();
对于(i=0;i

我们的想法是,var位置将是我的客户拥有的各种办公室位置。这些办公室位置标记中的每一个都将链接到相关的办公室页面

很抱歉要问你们,有人能给我指引正确的方向吗?我想我可以把所有的代码拼凑在一起,但如果我想把所有3个功能结合起来,代码的设置似乎就不同了


感谢您的时间。

对于初学者,与其将JS放在文档正文中,不如将其放在头部

并为窗口加载时添加事件侦听器,以调用创建映射的初始化函数:

google.maps.event.addDomListener(window, 'load', initialize);
并将当前不在任何函数中的所有JS移动到该初始化函数中

我不确定你的自动中心功能的意义。如果只是为了使贴图扩展以适合标记的边界,那么也将其放入initialize函数中

此外,这可能只是一些数据的样本,而不是您实际执行的操作,但最后一项后面的逗号将导致此数组在IE中出错:

var locations = [
  ['56-58 Broadwick Street', 51.5053, -0.1481, 5],
  ['79 Wardour Street', 51.512370, -0.133300, 3],
];

也许您应该在标记数组中包含相关的URL。然后使用函数闭包将URL与标记相关联,就像在