2013-05-05 55 views
1

我正在更改一個谷歌示例模板,以嘗試構建一個查詢,以查找用戶輸入的城市中表中最近的位置。在這個例子中,我只想輸出lat和lon,可能是最近表格位置的「id」到用戶輸入的城市。首先,我使用我的LATITUDE列作爲位置,因爲它已在表格中作爲兩列位置進行了地理編碼。奇怪的是,當我提醒那個變量時,它只顯示緯度而不是緯度/經度座標。我以爲自從LATITUDE作爲一個兩列位置後,它會返回一個經緯度。初學者融合表查詢...兩列位置和st_distance

所以,當我跑推動「走出去」按鈕,進入城市後,經過這個簡單的查詢:

var queryList = []; 
       queryList.push("SELECT LATITUDE,LONGITUDE FROM "); 
       queryList.push(tableid); 

,並通知該值,在彈出的窗口,它工作正常:http://greenandtheblue.com/whentoplant/test_query_geocode.html,提醒經緯度和桌子上的寂寞......我希望它會。

但是,當我嘗試使用st_distance,我沒有得到任何建議,它的工作。

queryList.push("ORDER BY ST_DISTANCE(LATITUDE, LATLNG("+coordinate.lat()+","+coordinate.lng()+")) LIMIT 1"); 

http://greenandtheblue.com/whentoplant/test_query_geocode_notworking.html

我寧願查詢的這種方法...似乎簡單:

query: { 
      select: 'LATITUDE', 
      from: tableid 
      }, 

,但我從我需要把第二個查詢的例子聚集(採取行動時,我推去)在一個排序數組,這使得它更復雜一點。

我希望這是一個足夠清晰的問題。謝謝你的幫助。

沙德

回答

1

如果我作出這樣的查詢:

queryList.push("SELECT STATION,STATION_NAME,ELEVATION,LATITUDE FROM "); 
queryList.push(tableid); 
//query seems to work when I comment out the line below. 
queryList.push("ORDER BY ST_DISTANCE(LATITUDE, LATLNG("+coordinate.lat()+","+coordinate.lng()+")) LIMIT 1"); 
var query = encodeURIComponent(queryList.join(' ')); 
var gvizQuery = new google.visualization.Query(
    'http://www.google.com/fusiontables/gvizdata?tq=' + query); 

gvizQuery.send(function(response) { 
    var datatable = response.getDataTable(); 
    var header = 'No results'; 
    var content = 'Sorry, no store delivers here.'; 
    if (datatable && (datatable.getNumberOfRows() > 0)) { 
     header = datatable.getValue(0, 0); 
     content = datatable.getValue(0, 1)+"<br>Station:"+datatable.getValue(0,0)+"<br>Elevation:"+datatable.getValue(0,2); 
    } 
    infoWindow.setContent('<h3>' + header + '</h3>' + 
     '<p>' + content + '</p>'); 
    infoWindow.setPosition(coordinate); 
    infoWindow.open(map); 
    }); 

works我。

改變:

var query = encodeURIComponent(queryList.join('')); // empty string 

到:

var query = encodeURIComponent(queryList.join(' ')); // single space 
+0

非常感謝!很好地工作。 – user1610717 2013-05-08 21:36:39