【问题标题】:refresh the circle on google map刷新谷歌地图上的圈子
【发布时间】:2012-12-05 09:22:20
【问题描述】:

我正在实现一个应用程序,在该应用程序中,我必须在地图中心显示带有圆圈的谷歌地图。我可以在地图上画一个圆,但几秒钟后我必须更新圆的半径。我想使用相同的地图实例而不是创建新实例。 当我创建新圆圈时,它与旧圆圈重叠。我想删除以前添加的圈子并显示新的圈子。 在检查 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);
}

谢谢

【问题讨论】:

  • 将帮助我们查看您迄今为止尝试过的代码
  • 方法添加,做了一些改变。每次我同时创建实例时,我都不想公开 var。有什么方法可以访问地图的圈子信息框
  • 看起来您发布的代码每次运行时都会重新创建地图。如果您不希望这种情况发生,您应该做的第一件事是从定期执行的例程中删除该代码。您发布的代码有什么问题?
  • 我想从当前地图实例中删除之前添加的圆圈和信息框
  • 有什么方法可以从地图对象中删除之前添加的圆形和信息框实例

标签: google-maps google-maps-api-3 google-maps-markers


【解决方案1】:

试试circle.setRadius(radiusvalue)

【讨论】:

  • 有用且有效
【解决方案2】:

我们可以使用以下方法使已经绘制的圆圈在谷歌地图上不可见 circle.setOptions({visible:false}); 并且可以使该地图的实例为空。

【讨论】:

  • 但是如何刷新
  • @EdathadanChiefakaArun: setRadius() 立即生效,setOptions() 不生效吗?
猜你喜欢
  • 2017-10-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-06
  • 2012-12-25
相关资源
最近更新 更多