为什么不featureClick工作在我的cartoDB地图
Why won't featureClick work in my cartoDB map?
我可以让所有的工作,除了featurecClick
。
我的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);
});
};
我的地图加载了样式,但是当光标经过一个国家时,它没有切换到一个手指指针,所以当我点击它时什么也没有发生。到底发生了什么事?
我也遇到过类似的问题——我觉得关于这方面的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);
});
})
希望对你有帮助。
相关文章:
- 谷歌地图固定位置覆盖
- 不显示带有本地json文件数据的谷歌地图脚本
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 谷歌地图标记不会显示
- 无法在JS中显示谷歌地图
- 科尔多瓦页面类应用程序中的多个谷歌地图
- 需要帮助谷歌地图方向面板在FancyBox中显示
- 是否可以控制获取哪些Google地图脚本(JavaScript API)
- 在谷歌地图上获取事件的x,y坐标
- 谷歌地图API v3不适用于移动浏览器或PhoneGap
- 模拟谷歌地图中的点击
- 如何知道哪个标记被谷歌地图点击了
- 谷歌地图JS API+JSON-多个标记没有显示
- 缓存谷歌地图数据
- Cartodb信息窗口未在地图上显示变量
- CartoDb+谷歌地图多边形
- 需要使用新数据重新绘制地图(与CartoDB.js结合使用)
- 在Cartodb中设置地图平移限制
- 只有一个圆圈,一次点击点-谷歌地图Api - Cartodb
- 为什么不featureClick工作在我的cartoDB地图