2013-10-03 6 views
0
function createBoundingBox() { 
outputDiv = document.getElementById('outputDiv'); 
outputDiv.innerHTML = ''; 
var queryList = []; 
queryList.push("SELECT 'WEB', 'NAME', 'ADDRESS', 'Lat', 'Lng', 'WEB1' FROM "); 
queryList.push(Table); 
queryList.push(" WHERE " + where + " AND "); 
queryList.push("ST_INTERSECTS('GEOMETRY', "); 
queryList.push("RECTANGLE(LATLNG"); 
queryList.push(sw); 
queryList.push(", LATLNG"); 
queryList.push(ne); 
queryList.push("))"); 
var query = encodeURIComponent(queryList.join('')); 
var gvizQuery = new google.visualization.Query(
    'http://www.google.com/fusiontables/gvizdata?tq=' + query); 

gvizQuery.send(function(response) { 

    numRow = response.getDataTable().getNumberOfRows(); 
    var datatable = response.getDataTable(); 


    if (datatable && datatable.getNumberOfRows()) { 
    // var linkList = []; 

     var newLinkList = []; 




     for (var i = 0; i < numRow; i++) { 
      var name = response.getDataTable().getValue(i, 1); 
      nameList.push(name); 
      var address = response.getDataTable().getValue(i, 2); 
      addressList.push(address); 
      var latitude = new google.maps.LatLng(response.getDataTable().getValue(i, 3)); alert(latitude) 
      latitudeList.push(latitude); 
      var longitude = new google.maps.LatLng(response.getDataTable().getValue(i, 4)); 
      longitudeList.push(longitude); 
      var newLink = response.getDataTable().getValue(i, 5); 
      newLinkList.push("<a name = 'link' id="+"'" + i + "'" + "onmouseover='getId(this)' href=" + newLink + " target='_blank'>" + name + "</a>"); 



      infoContent.push("name" + name + "<br>address: "+address); 

      //  var link = response.getDataTable().getValue(i, 0); 
    //   linkList.push(link); 


     } 

     names = newLinkList.join("<br>") ; 
     outputDiv.innerHTML = numRow+ " results nearby " + sAddress + "<br><br>"; 
     outputDiv.innerHTML += names; 


    } 



}); 

} 

Это код, который запрашивает данные из таблицы Fusion. Мне интересно, почему Широта и долгота появляются как (30.xxx, NaN) и (-97.xxx, NaN), когда это должно быть всего 30.xxx и -97.xxx. Спасибо за помощь!Запрос таблицы Fusion с помощью Google Визуализации

+0

Где код, который выводит (30.xxx, Nan) и (-97.xxx, NaN)? – geocodezip

ответ

2

В догадке, колонка 3 в ваших данных есть широта, а столбец 4 - долгота, правильно? Если это так, то ваша проблема в том, что вы неправильно используете google.maps.LatLng. LatLng конструктор ожидает (лат, длинный) пара в качестве аргументов, а именно:

var latLng = new google.maps.LatLng(latitude, longitude); 

и возвращает объект LatLng. Итак, когда вы называете это так:

var latitude = new google.maps.LatLng(response.getDataTable().getValue(i, 3)); 
var longitude = new google.maps.LatLng(response.getDataTable().getValue(i, 4)); 

конструктор считает, что вы даете ему широту, без долготы каждый раз. Что вы хотите сделать, так это:

var inputLatitude = response.getDataTable().getValue(i, 3); 
var inputLongitude = response.getDataTable().getValue(i, 3); 
var latLng = new google.maps.LatLng(inputLatitude, inputLongitude); 
latitudeList.push(latLng.lat()); 
longitudeList.push(latLng.lng()); 
+0

О, боже, я думаю, вы «Правильно, я не знаю, когда я это сделал, - изменил его на google.maps.LatLng. Спасибо, я собираюсь изменить его и посмотреть, что произойдет. – user2712882

+0

Господи, вот и все. Огромное спасибо. И спасибо «geocodezip», а также за ваше время! – user2712882

0

Это:

var latitude = new google.maps.LatLng(response.getDataTable().getValue(1, 3)); 
latitudeList.push(latitude); 
var longitude = new google.maps.LatLng(response.getDataTable().getValue(i, 4)); 
longitudeList.push(longitude); 

Вероятно, должно быть:

var latitude =response.getDataTable().getValue(i, 3); 
latitudeList.push(latitude); 
var longitude = response.getDataTable().getValue(i, 4); 
longitudeList.push(longitude); 

Или поставить комбинированный google.maps.LatLng на одном массиве

var latitude =response.getDataTable().getValue(i, 3); 
var longitude = response.getDataTable().getValue(i, 4); 
latlngList.push(new google.maps.LatLng(latitude,longitude)); 
+0

О, я на самом деле просто изменил его на «1» 30 минут назад, чтобы передать его функции предупреждения, чтобы снова увидеть, что кормит ... Это не сработало с «i» – user2712882

Смежные вопросы