我知道在缩放Google地图时,可以通过以下方式强制规定圆圈适合地图:
map.fitBounds(circle.getBounds());
是否可以简单地检测圆圈是否包含在地图中? E.g。
这将返回 true :
这将返回 false :
答案 0 :(得分: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
- 事件触发之前调用它时会发生),它将返回{ {1}}
工作原理:
它创建一个空null
并使用地图的边界和圆的边界对其进行扩展。当圆圈完全可见时,此LatLngBounds
的边界必须等于地图的边界。