2015-09-22 18 views
6

Tôi tự hỏi nếu ai đó có thể chỉ cho tôi đi đúng hướng ở đây, tôi đang làm việc với bản đồ Google cố gắng để bóng râm giao khu vực bài viết Mã để một người sử dụng, nếu tôi hardcode vĩ longitude nó hoạt động hoàn hảo như thế này;InvalidValueError chưa gặp: không phải là một mảng

var triangleCoordsLS12 = [ 
     {lng: -1.558585, lat: 53.796545}, 
     {lng: -1.558585, lat: 53.796545}, 
     ..... 
]; 

nhưng tôi đang cố gắng lấy thông tin từ cơ sở dữ liệu MySQL bằng PHP và JSON như thế này;

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

tôi nhận được một lỗi Uncaught InvalidValueError: not an Array trên những dòng này: -

bermudaTriangleLS12 = new google.maps.Polygon({ 

Tôi biết lỗi không nói một Array vậy làm thế nào để tôi đặt các điểm trong mảng? Tôi rất biết ơn sự giúp đỡ của bạn.

Trả lời

3

Trước tiên, bạn cần phải tạo mảng, sau đó sử dụng nó khi bạn tạo đa giác. Trong mã của bạn, bạn tạo một đa giác mới bên trong vòng lặp "tọa độ", do đó bạn tạo một đa giác chỉ với một điểm trên mỗi vòng lặp.

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

Mã giả ví dụ của tôi:

For each coordinate { 
    add coordinate to array 
} 
construct-polygon(coordinate array) 

Mã của bạn:

For each coordinate { 
    construct-polygon(coordinate) 
} 
+0

Cảm ơn bạn rất nhiều mà làm việc, tôi lỗi cậu học sinh. – Tony

Các vấn đề liên quan