Javascript 显示相同位置的多个标记内容

Javascript 显示相同位置的多个标记内容,javascript,google-maps,Javascript,Google Maps,我试图显示多个带有内容的标记。 这是我正在使用的代码- var latitude=[10,20,30]; var longitude=[10,20,30]; var address=["Test1","Test2","Test3"]; function initialize() { var mapObject = { mapTypeId: google.maps.MapTypeId.ROADMAP }; map = new google.maps.Map

我试图显示多个带有内容的标记。 这是我正在使用的代码-

var latitude=[10,20,30];
var longitude=[10,20,30];
var address=["Test1","Test2","Test3"];

function initialize() {
    var mapObject = {
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    map = new google.maps.Map(document.getElementById("googleMap"), mapObject);
    loadMarkers();
}
google.maps.event.addDomListener(window, 'load', initialize);

function loadMarkers() {
    for (var i = 1; i < latitude.length; i++) {
        var markerCenter = new google.maps.LatLng(latitude[i], longitude[i]);
        var marker = new google.maps.Marker({
            position: markerCenter,
            animation: google.maps.Animation.BOUNCE
        });
        marker.setMap(map);
        marker.info = new google.maps.InfoWindow({
            content: address[i]
        });
        markers.push(marker);
        google.maps.event.addListener(marker, 'click', function () {
            marker.info.open(map, marker);
        });
    }
}
var纬度=[10,20,30];
变量经度=[10,20,30];
变量地址=[“Test1”、“Test2”、“Test3”];
函数初始化(){
变量映射对象={
mapTypeId:google.maps.mapTypeId.ROADMAP
};
map=new google.maps.map(document.getElementById(“谷歌地图”),mapObject);
loadMarkers();
}
google.maps.event.addDomListener(窗口“加载”,初始化);
函数loadMarkers(){
对于(变量i=1;i
问题是它总是显示地址数组的最后一个地址。
有人能帮我吗?

您的代码中缺少一些内容。就像一个开始的缩放和地图的中心

但问题是: -制作一个infowindow,并反复使用它。 -我看你有记号笔;在你的代码中。那很好(也许你看过我的其他帖子)。当您拥有这个(标记对象的)数组时,您可以看到单击了哪个标记

我想这就是你想要的

<script src="https://maps.googleapis.com/maps/api/js?v=3.exp"></script>
<script>
var latitude=[10, 20, 30];
var longitude=[10, 20, 30];
var address=["Test1", "Test2", "Test3"];
var markers = [];  // store the marker objects here
var infoWindow;

function initialize() {
  var mapObject = {
    mapTypeId: google.maps.MapTypeId.ROADMAP,
    zoom: 4,
    center: new google.maps.LatLng(latitude[1], longitude[1])  // let's take the middle marker as center
  };
  map = new google.maps.Map(document.getElementById("googleMap"), mapObject);
  loadMarkers();
}
google.maps.event.addDomListener(window, 'load', initialize);

function loadMarkers() {
  for (var i=0; i<=latitude.length; i++) {
    var markerCenter = new google.maps.LatLng(latitude[i], longitude[i]);
    var marker = new google.maps.Marker({
      position: markerCenter,
      // animation: google.maps.Animation.BOUNCE,
      map: map  // replaces  marker.setMap(map);
    });
    markers.push(marker);  // store the marker in the array
    // click on the marker
    google.maps.event.addListener(marker, 'click', function () {
      // first we want to know which marker the client clicked on.
      var i=markers.indexOf(this);
      // we set the content of infoWindow, then we open it.
      infoWindow.setContent(address[i])
      infoWindow.open(map, markers[i]);
    });
  }
  // make 1 infowindow.  We will use it again and again
  infoWindow = new google.maps.InfoWindow({
    content: ''
  });
}
</script>
<style>
#googleMap {
  height: 400px;
}
</style>
<div id="googleMap"></div>

变量纬度=[10,20,30];
变量经度=[10,20,30];
变量地址=[“Test1”、“Test2”、“Test3”];
变量标记=[];//将标记对象存储在此处
var信息窗口;
函数初始化(){
变量映射对象={
mapTypeId:google.maps.mapTypeId.ROADMAP,
缩放:4,
中心:新的google.maps.LatLng(纬度[1],经度[1])//让我们以中间的标记为中心
};
map=new google.maps.map(document.getElementById(“谷歌地图”),mapObject);
loadMarkers();
}
google.maps.event.addDomListener(窗口“加载”,初始化);
函数loadMarkers(){

for(var i=0;在for循环中,
latitude.length
似乎没有多大意义。应该类似于
markers.length
…或一组lat lng位置。您在哪里定义了
latitude
?您能解释一下原因吗?@timvermaelen因为从功能角度来看,
loadMarkers()
需要在位置集合上循环。然后每个位置都成为地图上的一个标记。在初始化函数@putvandeThanks以获取帮助之前:)