2015-09-22 3 views
6

मुझे आश्चर्य है अगर किसी ने मुझे सही दिशा यहाँ को इंगित कर सकते हैं, मैं गूगल के नक्शे एक उपयोगकर्ता के लिए छाया सौंपा पोस्ट कोड क्षेत्रों की कोशिश कर के साथ काम कर रहा हूँ, अगर मैं अक्षांश हार्डकोड और देशांतर यह इस तरह सही काम करता है;Uncaught InvalidValueError: नहीं किसी सरणी

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

लेकिन मैं MySQL डेटाबेस विज़ पीएचपी और 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 नहीं कहते हैं तो मैं कैसे सरणी में अंक रख सकता हूं? मैं आपकी मदद के लिए बहुत आभारी हूं।

उत्तर

3

आपको पहले सरणी बनाने की आवश्यकता है, और फिर जब आप बहुभुज बनाते हैं तो इसका उपयोग करें। अपने कोड में, आप "निर्देशांक" लूप के अंदर एक नया बहुभुज बनाते हैं, इसलिए आप प्रत्येक पाश पर केवल एक बिंदु के साथ बहुभुज बनाते हैं।

//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) 
} 
+0

आपको बहुत बहुत है कि काम किया धन्यवाद, मेरी स्कूल के लड़के त्रुटि। – Tony

संबंधित मुद्दे