2012-05-23 36 views

回答

3

的方式來實現這一目標是地圖的東西上註冊事件「zoomend」事件像

map.events.register(type, obj, listener); 

你可以發現有更多的信息:http://dev.openlayers.org/releases/OpenLayers-2.11/doc/apidocs/files/OpenLayers/Map-js.html

也許你也應該同時加載的kml,然後根據縮放級別隱藏/顯示正確的圖層。

+0

我想要變焦的每一個變化做我插入的部分zoom_changed something.Th事件,但它不是working.maybe你把所有的事件列表 – user1365697

6

正如j_freyre提到的,您應該註冊一個函數,它將KML圖層的可見性更改爲「zoomend」事件。在你的情況下,它看起來像這樣:

map.events.register("zoomend", map, zoomChanged); 

zoomChanged() 
{ 
    zoom = map.getZoom(); 
    if (zoom == 3) 
    { 
    kml1.setVisibility (true); 
    kml2.setVisibility (false); 
    } 
    else if (zoom == 4) 
    { 
    kml1.setVisibility (false); 
    kml2.setVisibility (true); 
    } 
} 
+0

將'getZoom'的值存儲在一個像'zoom = map.getZoom();'這樣的變量中更加高效,然後在if語句中檢查出if(zoom == 3)'。這樣你就可以避免每次調用'getZoom'。 – Mahdi

+0

我完全同意你並編輯我的答案。 – ischas

相關問題