我得到一个包含由逗号分隔的多边形的纬度和经度的字符串(顶点)。我将其转换为数组并尝试将其分配给谷歌地图以显示多边形。但是当我硬编码下面注释数组中的值时,我在地图上得到多边形但是如果我尝试分配我的数组(polygoncoordinates)它没有显示。有人可以告诉我,我在做什么错误吗?
function initialize() {
var mapOptions = {
center: new google.maps.LatLng(23.9661, 76.6845),
zoom: 7
};
var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
var val = vertices.split(',');
var polygonCoordinates = [];
for (var i = 1; i<val.length; i++) {
if (val[i] == "") {
}
else {
var temp;
temp = val[i].split(':');
var kk = temp[1].split(';');
var googleContent = 'new google.maps.LatLng(' + kk[0] + ', ' + kk[1] ')';
polygonCoordinates.push(googleContent);
}
}
// var polygonCoordinates = [new google.maps.LatLng(23.9661, 76.6845),
//new google.maps.LatLng(23.1605,81.7822),
//new google.maps.LatLng(26.7848, 82.4853)
//];
var bermudaTriangle = new google.maps.Polygon({
paths: polygonCoordinates,
strokeColor: 'black',
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: 'black',
fillOpacity: 0.35
});
bermudaTriangle.setMap(map);
}
google.maps.event.addDomListener(window, 'load', initialize);
提前致谢
答案 0 :(得分:1)
使用
var googleContent = 'new google.maps.LatLng(' + kk[0] + ', ' + kk[1] ')';
polygonCoordinates.push(googleContent);
您正在构建一个字符串数组。 polygonCoordinates
应该是LatLng
的数组。你必须使用:
var googleContent = new google.maps.LatLng(kk[0], kk[1]);
polygonCoordinates.push(googleContent);