2012-12-18 131 views
1

我正在实施一个应用程序,我必须在地图中心显示带有圆圈的谷歌地图。我可以在地图上画一个圆圈,但几秒钟后我必须更新圆的半径。我想使用相同的地图实例,而不是创建新的地图实例。 当我创建新的圈子在旧圈子上重叠。我想删除以前添加的圈子并显示新圈子。 在检查api的时候,我从Circle类中得到了这个方法,它会隐藏这个圆。 myCity.setOptions({visible:false});刷新谷歌地图上的圆圈

但问题是我没有访问较旧的圆形实例。 有没有什么方法可以让我获得分配给该地图的地图标记和信息框,并将其删除? 下面是方法,该方法将被调用的几秒钟的时间间隔

function mapByCoordinates() 
{ 
var lat=document.getElementById("latValue").value; 
var lng=document.getElementById("lngValue").value; 
var accuracy = document.getElementById("zoomValue").value; 
var zoomVal=getZoomBasedOnAccuracy(accuracy); 
var zm = parseInt(zoomVal); 
var tempRadius = getRadiusBasedOnAccuracy(accuracy); 
var amstr = new google.maps.LatLng(lat,lng); 

var mapProp = { 
    center:amstr, 
    zoom:zm, 
    mapTypeId:google.maps.MapTypeId.HYBRID 
    }; 

    map.setOptions(mapProp); 


    myCity.setOptions({visible:false}); 
    infobox.close(); 
    myCity = new google.maps.Circle({ 
    center:amstr, 
    radius:tempRadius 

    }); 

    marker=new google.maps.Marker({ 
    position:amstr, 
    }); 
myCity.setMap(map); 
myCity1.setMap(map1); 

infobox = new google.maps.InfoWindow({ 
       content:"Welcome to google map", 
       disableAutoPan:true 
}); 
infobox.open(map,marker); 


map.panTo(amstr); 
map.setZoom(19); 
} 

感谢

+0

将有助于我们看到到目前为止 – duncan

+0

方法添加你已经尝试什么样的代码,做了它的一些变化。每次我在创建实例的同时,我都不想让var公开。有没有什么办法可以访问圈子信息infobox被暗杀到地图 – swapnil

+0

看起来你发布的代码每次运行时都会重新创建地图。如果你不希望发生这种情况,你应该做的第一件事是从定期执行的例程中移除该代码。发布的代码有什么问题? – geocodezip

回答

5

我们可以通过下面的方法 circle.setOptions使已经绘制的圆谷歌地图不可见({可见:假}) ; ,并可以为该地图的实例清零。

+0

但是如何刷新 –

+1

@EdathadanChiefakaArun:setRadius()生效马上,不setOptions()? –

2

尝试circle.setRadius(radiusvalue)

+0

有帮助和有效 –