将值传递给google.maps.LatLng

passing values to google.maps.LatLng

本文关键字:maps LatLng google 值传      更新时间:2023-09-26

我有一个数组,我想把它的值传递给一个路径来绘制一个多边形

var coords = new Array("25.1, 66", "25.5, 65", "21.3, 67");

不管坐标是多少,我如何将这个模式"x, y"传递给上面数组中的google.maps.LatLng

  var triangleCoords = [ 
            new google.maps.LatLng(coords[0]),
             new google.maps.LatLng(coords[1]),
              new google.maps.LatLng(coords[2]),
  ];
  // Construct the polygon
  // Note that we don't specify an array or arrays, but instead just
  // a simple array of LatLngs in the paths property
  draw = new google.maps.Polygon({
    paths: triangleCoords,
    strokeColor: "#FF0000",
    strokeOpacity: 0.8,
    strokeWeight: 2,
    fillColor: "#FF0000",
    fillOpacity: 0.35
  });

不做new google.maps.LatLng(coords[0])可以做new google.maps.LatLng(coords[0].split(',')[0],coords[0].split(',')[1])

然而,由于这是做分割两次,我可能会把它拉出到一个函数-像这样:

function createLatLng(coordString) {
     var a = coordString.split(',');
     return new google.maps.LatLng(a[0],a[1]);
}
var triangleCoords = [ 
       createLatLng(coords[0]),
      ....
];

为了额外的学分,你可以使用For循环:

   var triangleCoords = [];
   for (var i = 0; i < coords.length; i++) {
      triangleCoords[i] = createLatLng(coords[i]);
   }

try this:

var coords = new Array("25.1, 66", "25.5, 65", "21.3, 67");
var triangleCoords = [];
for (var i = 0; i < coords.length; i++) {
 var pos = coords[i].split(",");
 var loc = new google.maps.LatLng(pos[0], pos[1]);
  triangleCoords.push(loc);
}