谷歌地图折线和标记一起使用

3
我有这段关于折线的代码,它运行得很完美。我该如何为每个位置点添加标记?
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));
}
}

标记好像丢失了?你有什么想法吗?谢谢。

你能解释一下userCoor是如何从new.google.maps.LatLng变为一个包含“content”和两个浮点数的数组吗? - Tina CG Hoehr
2个回答

5

我在这里测试了一些虚假数据,似乎没有问题。不同之处在于我使用userCoorPath来绘制折线,并使用userCoor设置标记。我重复了信息,但它们被不同地使用。一个是LatLngs数组,另一个是字符串和两个浮点数的数组。

http://jsfiddle.net/nSf9N/


0

您没有设置标记icon属性。

此外,您正在覆盖标记变量。也许这与此有关。尝试将标记变量定义移动到循环内部。


实际上,标记出现在第一个点上而不是所有坐标上。 - cicakman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接