2012-09-11 17 views

Respuesta

14

¡Finalmente encontré la solución! El problema era que encodePath esperaba un objeto google.maps.LatLng y no solo el GeoPoints.

Aquí es una función que convierte una matriz como la que descripted anterior en una cadena codificada:

function encodeLatLngPolygon(array) { 

var polyOptions = { 
strokeColor: '#000000', 
strokeOpacity: 1.0, 
strokeWeight: 3 
    } 
    poly = new google.maps.Polyline(polyOptions); 

var path = poly.getPath(); 

for(var i=0;i<array.length;i++) { 
    var xyz = new google.maps.LatLng(parseFloat(array[i][0]).toFixed(2), parseFloat(array[i][1]).toFixed(2)); 
    path.push(xyz);    

} 

var code = google.maps.geometry.encoding.encodePath(path) 

return code; 
} 

El toFixed reduce los números después del punto decimal para el ahorro de bytes. Puede eliminar o ajustar este parámetro.

Cuestiones relacionadas