2013-06-27 54 views
3

我試圖在Leaflet地圖上切換CartoDb圖層的顯示。我已經能夠使用此代碼加載層:將CartoDb圖層添加到單張圖層控件

 var layerUrl = 'http://ronh-aagis.cartodb.com/api/v1/viz/rotaryclubs_geo2/viz.json'; 

     var clubPts = cartodb.createLayer(map, layerUrl, { 
      // The ST_AsGeoJSON(ST_Simplify(the_geom,.01)) as geometry will store a simplified GeoJSON representation of each polygon as an attribute we can pick up on hover 

      query: 'select *, ST_AsGeoJSON(the_geom) as geometry from {{table_name}}', 

      interactivity: 'cartodb_id, geometry' 
     }) 

          .on('done', function(layer) { 
           map.addLayer(layer); 

          layer.on('featureOver', function(e, pos, latlng, data) { 
         $('.leaflet-container').css('cursor','pointer'); 

         if (data.cartodb_id != point.cartodb_id) { 
          drawHoverPoint(data); 
         } 
         cartodb.log.log(pos, data); 
        }); 

        layer.on('featureOut', function(e, pos, latlng, data) { 
         $('.leaflet-container').css('cursor','default') 
         removePoint(); 
        }); 

        layer.on('error', function(err) { 
         cartodb.log.log('error: ' + err); 
        }); 

       }).on('error', function() { 
        cartodb.log.log("some error occurred"); 
       }); 

然而,當我嘗試將此圖層添加到圖層控制:

 var clubs = new L.LayerGroup(); 
     clubs.addLayer(clubPts); 

我得到一個「遺漏的類型錯誤:對象#有沒有方法'onAdd'「錯誤。

有什麼想法?謝謝!

+1

您是否試圖在HTML頭中加載*'* leaflet.js'和'cartodb.js'?這看起來就像你首先加載'cartodb.js',然後用'leaflet.js'覆蓋它的一部分所得到的錯誤。 –

回答