передача значений в google.maps.LatLng - PullRequest
1 голос
/ 12 декабря 2011

У меня есть массив, и я хочу передать его значения в путь для рисования многоугольника

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
  });

Ответы [ 2 ]

0 голосов
/ 12 декабря 2011

вместо 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]);
   }
0 голосов
/ 12 декабря 2011

попробуйте это:

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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...