我有一个融合表层,我启用了热图,如下所示,它在我的图层中工作得很好。
layer = new google.maps.FusionTablesLayer({
query: {
select: 'Lat',
from: FT_TableID
},
map: map,
// suppressInfoWindows: true
heatmap: { enabled: true },
options: {
styleId: 2,
templateId: 2
}
});是否可以在特定缩放级别后禁用热图,例如13,以便在缩放级别= 13之后,我可以查看来自融合表的实际标记。
发布于 2013-04-24 18:32:28
是的,确实是这样!您只需为地图对象zoom_changed事件设置一个事件侦听器,并检查地图的缩放级别。然后使用layers setOptions()方法重新设置该层的热图启用属性。因此,将您的代码更改为:
layer = new google.maps.FusionTablesLayer({
query: {
select: 'Lat',
from: FT_TableID
},
map: map,
// suppressInfoWindows: true
heatmap: {
enabled: true
},
options: {
styleId: 2,
templateId: 2
}
});
var heatMapIsOn = true;
google.maps.event.addListener(map, 'zoom_changed', function () {
var zoom = map.getZoom();
//we could just reset the layers options at every zoom change, but that would be
//a bit redundant, so we will only reset layers options at zoom level 13
if (heatMapIsOn && zoom >= 13) {
layer.setOptions({heatmap: {enabled:false}});
heatMapIsOn = false;
} else if (!heatMapIsOn && zoom < 13) {
layer.setOptions({heatmap: {enabled:true}});
heatMapIsOn = true;
}
});https://stackoverflow.com/questions/16185871
复制相似问题