2012-12-08 32 views
0

我正在使用谷歌地圖fitBounds,然後我使用map.setZoom放大一個級別(谷歌後找到最適合我的標記的縮放級別),然後我想檢查天氣我的標記在視口中是否可見,我該怎麼做?似乎map.getBounds()包含不工作,請看看這個小提琴:fiddle在設置後檢測可見的谷歌地圖標記

我想檢查我的標誌是可見或不可見:

google.maps.event.addListenerOnce(map, "zoom_changed", function() { 
     map.setZoom(map.getZoom()+2); 
     if(map.getBounds().contains("35.700592","51.394773")) 
alert('ok'); 


     but there seems to be an error 
     //alert("the zoom level is now "+map.getZoom()); 
}); 

回答

1

爲什麼你認爲"35.700592","51.394773"是一個google.maps.LatLng?它是由逗號分開的兩個字符串。

這是行不通的:

google.maps.event.addListenerOnce(map, "zoom_changed", function() { 
    map.setZoom(map.getZoom()+2); 
    if(map.getBounds().contains("35.700592","51.394773")) 
    alert('ok'); 
}); 

這是正確的使用方法「包含」(用經緯度對象):

google.maps.event.addListenerOnce(map, "zoom_changed", function() { 
    map.setZoom(map.getZoom()+2); 
    if(map.getBounds().contains(new google.maps.LatLng(35.700592,51.394773))) 
    alert('ok');     
}); 

而且你可能想使包含數組您的標記並在標記上使用.getPosition()

http://jsfiddle.net/Npu36/10/embedded/result/