2014-02-07 56 views

回答

2

可能解決方案:

google.maps.Circle.prototype.inViewPort=function(){ 
    var map=this.getMap(); 
    if(!map){ 
    return null; 
    } 
    try{ 
    var mb=map.getBounds(), 
     cb=this.getBounds(), 
     ub=new google.maps.LatLngBounds(); 
     ub.union(mb); 
     ub.union(cb); 
     return(ub.equals(mb)); 
    }catch(e){return null;} 
} 

用法:只需撥打circle.inViewPort()

當圓圈在地圖內完全可見時,將返回true,否則返回false

當圓不與地圖相關聯或地圖還沒有完成初始化(投影還不可用,發生在你第bounds_changed -event閃光之前稱呼它)將返回null

工作原理:

它創建一個空的LatLngBounds並用地圖邊界和圓的邊界擴展它。當圓圈完全可見時,此LatLngBounds的邊界必須等於地圖的邊界。

+0

完美。非常感謝你。 – bitpshr