我有这个折线的代码,可以完美地工作。如何为每个位置点添加标记?

var userCoor = [
<?php
for($i=0; $i<sizeOf($lat); $i++)
echo "new google.maps.LatLng({$lat[$i]}, {$long[$i]}),";
?>
];

var userCoordinate = new google.maps.Polyline({
path: userCoor,
strokeColor: "#FF0000",
strokeOpacity: 1,
strokeWeight: 2
});

userCoordinate.setMap(map);

我试过了
var infowindow = new google.maps.InfoWindow();

var marker, i;

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

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

标记似乎丢失了吗?任何想法如何?谢谢。

最佳答案

我在这里测试了一些虚假数据,似乎没有问题。区别在于我在折线中使用userCoorPath,在标记中使用userCoor。我在重复这些信息,但是它们的使用方式有所不同。一个是LatLng数组,另一个是字符串数组和两个浮点数。

http://jsfiddle.net/nSf9N/

10-08 14:59