2013-04-26 24 views
0
var classBounds = new google.maps.LatLngBounds(); 
var query = ""; 

query = "SELECT 'ROAD_NUMBER', 'geometry' FROM [TABLE_ID HERE] WHERE 'ROAD_NUMBER' CONTAINS IGNORING CASE '" + searchString + "' AND 'LINK_NUMBER' CONTAINS '" +searchStringLinkNo + "'"; 
var encodedQuery = encodeURIComponent(query); 

// Construct the URL 
var url = ['https://www.googleapis.com/fusiontables/v1/query']; 
url.push('?sql=' + encodedQuery); 
url.push('&key=[key]'); 
url.push('&callback=?'); 


// Send the JSONP request using jQuery 
$.ajax({ 
    url: url.join(''), 
    dataType: 'jsonp', 
    success: function (data){ 

     var rows = data['rows']; 

     if(rows){ 

      var classRoadGeo1  = rows[0][1].geometry.coordinates; 
      var classRoadGeo2  = rows[rows.length - 1][1].geometry.coordinates; 
      var classRoadGeoStart = classRoadGeo1[0]; 
      var classRoadGeoEnd  = classRoadGeo2[classRoadGeo2.length - 1]; 

      var startHolder = classRoadGeoStart.toString(); 
      var endHolder = classRoadGeoEnd.toString(); 

      var bound1 = startHolder.split(","); 
      var bound2 = endHolder.split(","); 

      var coordinate1 = new google.maps.LatLng(bound1[1], bound1[0]); 
      var coordinate2 = new google.maps.LatLng(bound2[1], bound2[0]); 

      alert(bound1); 
      alert(bound2); 

      classBounds.extend(coordinate1); 
      classBounds.extend(coordinate2);     

     } 
     else{ 

      alert("Unable to locate any counter/classifier stations for the current selection."); 
     } 
    } 
}); 

map.fitBounds(classBounds); 

}fitBounds和延伸 - 示出了在一個完全不同的地方

所有的代碼是上述起來。我從融合表中取出了幾何圖形,將其轉換回字符串,並從中取出LatLng對象。然而,當我運行fitBounds時,它將我帶到Papa New Guinea,當時座標實際上是在澳大利亞悉尼的Kiama。我沒有收到任何錯誤。任何想法可能是錯誤的?

回答

0

ajax請求是異步的,所以當調用map.fitBounds()時,邊界還沒有被擴展。把最後一行「map.fitBounds(classBounds);」在成功函數中的if子句的末尾,它應該可以正常工作。

相關問題