2015-06-02 96 views
0

我可以得到除featurecClick之外的所有東西。爲什麼不能在我的cartoDB地圖中點擊工作?

我的JS:

window.onload = function(){ 
    var cartoDbTableName = 'sipri_import_export_map_1950_2014'; 
    var domId = 'map'; 
    var mapStyle = document.getElementsByClassName('map-style'); 
    var lat = 0; 
    var lon = 0; 
    var zoomLvl = 2; 
    var options = { 
     center: [lat,lon], 
     zoom: zoomLvl 
    }; 
    var mapObject = new L.Map(domId,options); 
    var layerSource = { 
     user_name: 'chrismp', 
     type: 'cartodb', 
     sublayers: [ 
      { 
       sql: "SELECT * FROM "+cartoDbTableName+" WHERE (gwsyear <= 1950 AND gwsyear > 0)", 
       cartocss: mapStyle[0].innerHTML 
      } 
     ] 
    }; 

    L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png') 
     .addTo(mapObject); 

    cartodb.createLayer(mapObject,layerSource) 
     .addTo(mapObject) 
     .on('done',function(layer){ 
       layer.getSubLayer(0).on('featureClick', function(e, latlng, pos, data, subLayerIndex) { 
        console.log(e, latlng, pos, data, subLayerInde); 
       }).on('error',function(err){ 
        console.log('featureClick error: '+err); 
       }); 
     }).on('error',function(err){ 
      console.log(err); 
     }); 
}; 

我的地圖加載與造型,但我的光標不切換到手指指針時,它是在一個國家,所以當我點擊它沒有任何反應。是什麼賦予了?

回答

0

我有一個類似的問題 - 我覺得CartoDB的文檔上,這是一個小斑片狀......我相信,你需要補充一點:

cdb.vis.Vis.addInfowindow(map, sublayers, [/*ADD DESIRED INFO FIELDS HERE*/]); 

因此,例如:

cartodb.createLayer(mapObject,layerSource) 
    .addTo(mapObject) 
    .on('done',function(layer){ 

      //ADD THESE TWO LINES HERE 
      sublayers = layer.getSubLayer(0); 
      cdb.vis.Vis.addInfowindow(map, sublayers, [/*ADD DESIRED INFO FIELDS HERE*/]); 


      layer.getSubLayer(0).on('featureClick', function(e, latlng, pos, data, subLayerIndex) { 
       console.log(e, latlng, pos, data, subLayerInde); 
      }).on('error',function(err){ 
       console.log('featureClick error: '+err); 
      }); 
    }) 

希望有所幫助。