Google maps api 3 谷歌地图JS API v3-简单多标记+;多段线

Google maps api 3 谷歌地图JS API v3-简单多标记+;多段线,google-maps-api-3,google-polyline,Google Maps Api 3,Google Polyline,我一直在尝试扩展示例以包括多段线。到目前为止,我根本没能让它工作。我的代码当前如下所示: function initialize() { var locations = [ [12.239107980270559, 109.1947902572488, 'Nha Trang', 'Vietnam', '27/03/13', 1], [11.938864949999937, 108.43334708999994,

我一直在尝试扩展示例以包括多段线。到目前为止,我根本没能让它工作。我的代码当前如下所示:

function initialize() {
  var locations = [
      [12.239107980270559, 109.1947902572488, 'Nha Trang', 'Vietnam', '27/03/13', 1],                            
      [11.938864949999937, 108.43334708999994, 'Dalat', 'Vietnam', '28/03/13', 2],                            
      [10.76674113559709, 106.69295712387172, 'Ho Chi Minh', 'Vietnam', '02/04/13', 3],                            
      [10.035511715481054, 105.78650841255843, 'Can Tho', 'Vietnam', '06/04/13', 4],                            
      [10.379392700137583, 104.48601004588143, 'Ha Tien', 'Vietnam', '07/04/13', 5],                            
      [10.607085236979454, 104.18364549108138, 'Kampot', 'Cambodia', '09/04/13', 6],                            
      [10.615441163514843, 103.5214887207791, 'Sihanoukville', 'Cambodia', '12/04/13', 7],                           
      [10.575040390060632, 103.54923875808034, 'Otres Beach', 'Cambodia', '15/04/13', 8] 
  ];
  var mapOptions = {
    mapTypeId: google.maps.MapTypeId.ROADMAP,
    zoom: 9,
    center: new google.maps.LatLng(10.575040390060632, 103.54923875808034),
    panControl: false,
    scaleControl: false,
    mapTypeControl: false,
    streetViewControl: false,
    overviewMapControl: false,
    zoomControl: true,
    zoomControlOptions: {
      style: google.maps.ZoomControlStyle.SMALL,
      position: google.maps.ControlPosition.RIGHT_TOP
    }
  };
  var map = new google.maps.Map(document.getElementById("map"), mapOptions);
  var infowindow = new google.maps.InfoWindow();
  var marker, poly, i;
  for (i = 0; i < locations.length; i++) {  
    marker = new google.maps.Marker({
      position: new google.maps.LatLng(locations[i][0], locations[i][1]),
      map: map
    });
    poly = new google.maps.Polyline({
      path: new google.maps.LatLng(locations[i][0], locations[i][1]),
      strokeColor: '#000000',
      strokeOpacity: 1.0,
      strokeWeight: 3
    });
    google.maps.event.addListener(marker, 'click', (function(marker, i) {
      return function() {
        infowindow.setContent(locations[i][2]);
        infowindow.open(map, marker);
      }
    })(marker, i));
  }
}
function loadScript() {
  var script = document.createElement("script");
  script.type = "text/javascript";
  script.src = "http://maps.googleapis.com/maps/api/js?key=AIzaSyAhnheFVYaMG44DfbXYCuNmKHuf15Ar1_I&sensor=true&callback=initialize";
  document.body.appendChild(script);
}
window.onload = loadScript;
函数初始化(){
变量位置=[
[12.239107980270559109.1947902572488,'芽庄','越南','13年3月27日',1],
[11.9388649499937108.43334708999994,'达拉特','越南','2013年3月28日',2],
[10.76674113559709,106.69295712387172,'胡志明','越南','2013年4月2日',3],
[10.035511715481054,105.78650841255843,'Can Tho','Vietnam','06/04/13',4],
[10.379392700137583104.48601004588143,'河田','越南','2013年4月7日',5],
[10.607085236979454,104.18364549108138,'柬埔寨','09/04/13',6],
[10.615441163514843,103.5214887207791,'西哈努克','柬埔寨','12/04/13',7],
[10.575040390060632,103.54923875808034,'奥特雷斯海滩','柬埔寨','15/04/13',8]
];
变量映射选项={
mapTypeId:google.maps.mapTypeId.ROADMAP,
缩放:9,
中心:新google.maps.LatLng(10.575040390060632103.549238758034),
泛控制:错误,
scaleControl:false,
mapTypeControl:false,
街景控制:错误,
overviewMapControl:错误,
动物控制:对,
ZoomControl选项:{
样式:google.maps.ZoomControlStyle.SMALL,
位置:google.maps.ControlPosition.RIGHT\u顶部
}
};
var map=new google.maps.map(document.getElementById(“map”)、mapOptions);
var infowindow=new google.maps.infowindow();
var标记,poly,i;
对于(i=0;i

我想问题在于数组,因为它不是标准的方法(根据谷歌文档),我只是不知道如何正确地调用它。非常感谢您提供的任何帮助。

您需要将多段线的创建移出循环,并向其提供一组LatLng对象

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

  // <-- snipped -->
}

Edit:

  var poly = new google.maps.Polyline({
      path: arr,
      strokeColor: '#000000',
      strokeOpacity: 1.0,
      strokeWeight: 3,
      map: map    
    });
var arr=[];
对于(var i=0;i
嘿,谢谢。有你的变化。仍然没有出现。。有什么想法吗?看来你需要告诉它显示在地图上。请参阅我的编辑。