0

我有一個融合表圖層,我啓用了熱圖如下,它在我的地圖圖層中工作正常。融合表地圖圖層熱圖

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後,我可以看到從融合表中的實際標記。

回答

0

是的,這的確是!您只需將地圖對象的事件偵聽器設置爲zoom_changed事件並檢查地圖縮放級別。然後使用圖層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; 
    } 
});