2015-09-22 10 views
6

Zastanawiam się, czy ktoś może wskazać mi właściwy kierunek tu pracuję z mapy Google stara się cieniem przypisany obszarach kod pocztowy dla użytkownika, jeśli hardcode Latitude i geograficzną działa tak idealnie;Uncaught InvalidValueError: nie Array

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

ale próbuję uzyskać informacje z bazy danych MySQL vis PHP i JSON w ten sposób;

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

pojawia się błąd Uncaught InvalidValueError: not an Array na tych liniach: -

bermudaTriangleLS12 = new google.maps.Polygon({ 

wiem błąd nie mówi Array więc jak mogę umieścić punkty w tablicy? Byłbym bardzo wdzięczny za twoją pomoc.

Odpowiedz

3

Najpierw musisz skonstruować tablicę, a następnie użyć jej podczas tworzenia wieloboku. W swoim kodzie tworzysz nowy wielokąt wewnątrz pętli "współrzędne", więc tworzysz wielokąt z jednym punktem w każdej pętli.

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

Pseudokod mój przykład:

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

Kod:

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

Dziękuję bardzo, że pracował, mój błąd chłopiec szkoły. – Tony

Powiązane problemy