2013-01-22 75 views
0

我試圖在基於用戶通過複選框選擇的谷歌地圖上顯示多個KML圖層(全部存儲在相同的Fusion表格中)。地圖和複選框已經出現,但KML層沒有(通常我會在地圖窗口中看到平鋪的「數據可能仍在加載」響應)。我已經根據谷歌融合表示例(IN:pizza shops)編碼。從複選框選擇顯示KML圖層 - 在Google地圖中繪製圖層的問題

我很新的HTML & java,所以即使我一直無法找到我的腳本中的任何錯誤,或從其他'幫助'頁面的任何明顯差異,如this one並不意味着沒有某處出錯。

我已經寫了一堆,這些對每個圖層類型:

google.maps.event.addDomListener(document.getElementBId('trail'), 
     'click', function() { 
      filterMap(layer, tableId, map); 
    }); 

然後這個嘗試讓地圖過濾:

 function filterMap(layer, tableId, map) { 
     var where = generateWhere(); 

     if (where) { 
      if (!layer.getMap()) { 
       layer.setMap(map); 
      } 
      layer.setOptions({ 
       query: { 
        select: 'geometry', 
        from: tableId, 
        where: where 
       } 
      }); 
     } else { 
      layer.setMap(null); 
     } 
    } 

    function generateWhere() { 
     var filter = []; 
     var stores = document.getElementsByName('store'); 
     for (var i = 0, store; store = stores[i]; i++) { 
      if (store.checked) { 
       var storeName = store.value.replace(/'/g, '\\\''); 
       filter.push("'" + storeName + "'"); 
      } 
     } 
     var where = ''; 
     if (filter.length) { 
      where = "'descripion' IN (" + filter.join(',') + ')'; 
     } 
     return where; 
    } 

    google.maps.event.addDomListener(window, 'load', initialize); 

,然後將這些傢伙在DIV體:

<input type="checkbox" checked="checked" name="store" 
      id="trail" value="trail"> 
     <label>trail</label> 
     <input type="checkbox" checked="checked" name="store" 
      id="Historic" value="Historic"> 
     <label>Historic</label> 
     <input type="checkbox" checked="checked" name="store" 
      id="Energy" value="Energy"> 
     <label>Energy</label> 
     <input type="checkbox" checked="checked" name="store" 
      id="Hunting/Fishing" value="Hunting/Fishing"> 
     <label>Hunting/Fishing</label> 

我的Fusion表格是:https://www.google.com/fusiontables/DataSource?docid=1J8YjRYnWprhLdL0YMP6lxxb_encjkowSlqi1G3Y#rows:id=1

回答

0

有一個錯字:

 
    where = "'description' IN (" + filter.join(',') + ')'; 
    //----------------^ 

牛逼在你的代碼失蹤。