我想知道是否有人可以指出我正确的方向,如果我硬编码纬度和经度它像这样完美;
var triangleCoordsLS12 = [
{lng: -1.558585, lat: 53.796545},
{lng: -1.558585, lat: 53.796545},
.....
];
但是我试图从PHP数据库获取PHP和JSON的信息,这样;
$.ajax({
type:'POST',
url:'test.php',
success:function(data){
var resultArray = JSON.parse(data);
for (var i=0; i<resultArray.length; i++) {
var triangleCoordsLS12 = new google.maps.LatLng(resultArray[i].lat, resultArray[i].lng);
if(location.uname == 'John Smith'){
bermudaTriangleLS12 = new google.maps.Polygon({
paths: triangleCoordsLS12,
strokeColor: '#ff0000',
strokeOpacity: 0.8,
strokeWeight: 1,
fillColor: '#ff0000',
fillOpacity: 0.30
});
bermudaTriangleLS12.setMap(map);
} else if(location.uname == 'Bruce Brassington'){
bermudaTriangleLS12 = new google.maps.Polygon({
paths: triangleCoordsLS12,
strokeColor: '#FFcc00',
strokeOpacity: 0.8,
strokeWeight: 1,
fillColor: '#FFcc00',
fillOpacity: 0.25
});
bermudaTriangleLS12.setMap(map);
}
}
}
})
我在这些行上收到错误Uncaught InvalidValueError: not an Array
: -
bermudaTriangleLS12 = new google.maps.Polygon({
我知道错误不是Array
所以我如何将这些点放在数组中?我非常感谢你的帮助。
答案 0 :(得分:4)
首先需要构造数组,然后在创建多边形时使用它。在您的代码中,您在&#34;坐标&#34;内创建一个新的多边形。循环,所以你创建一个多边形,每个循环只有一个点。
//build the array
var resultArray = JSON.parse(data);
var triangleCoordsLS12 = []
for (var i=0; i<resultArray.length; i++) {
triangleCoordsLS12[i] = new google.maps.LatLng(resultArray[i].lat, resultArray[i].lng);
}
//use the array as coordinates
bermudaTriangleLS12 = new google.maps.Polygon({
paths: triangleCoordsLS12,
trokeColor: '#ff0000',
strokeOpacity: 0.8,
strokeWeight: 1,
fillColor: '#ff0000',
fillOpacity: 0.30
});
bermudaTriangleLS12.setMap(map);
伪代码我的例子:
For each coordinate {
add coordinate to array
}
construct-polygon(coordinate array)
您的代码:
For each coordinate {
construct-polygon(coordinate)
}