2012-09-11 4 views
10

되지 않습니다 : 내가 코드를 축소에 대한 encodePath를 사용하려고Google지도 API - 기하학 인코딩 - 형식 오류 : a.lat 내가 이런 모습으로 배열 GeoPoints의 목록을 가지고 함수

var coordinates = [[50.7, 6.7], [49.5, 7.0], ...] 

explained here로, 나는 다음과 같은 오류가 발생합니다 :

TypeError: a.lat is not a function

내 코드는 다음과 같습니다

google.maps.geometry.encoding.encodePath(coordinates) 

어떤 아이디어?

답변

14

마지막으로 해결책을 찾았습니다! 문제는 encodePath이 이 아니라 google.maps.LatLng 개체를 필요로한다는 것입니다.

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

toFixed 바이트를 저장하기위한 소수점 수를 감소시킨다 : 여기서

는 인코딩 된 문자열로 상기 descripted 것과 같은 배열을 켤 수있는 기능이다. 이 매개 변수는 삭제하거나 조정할 수 있습니다.