1

マップの中心に円を付けてGoogleマップを表示する必要があるアプリケーションを実装しています。マップ上に円を描くことはできますが、数秒後に円の半径を更新する必要があります。新しいマップを作成するのではなく、同じインスタンスのマップを使用したい。新しい円を作成すると、古い円に重なっています。以前に追加したサークルを削除して、新しいサークルを表示したい。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);
}

ありがとう

4

2 に答える 2

5

次のメソッド circle.setOptions({visible:false}); を使用して、既に描画されている円を Google マップで非表示にすることができます。そのマップのインスタンスを null にすることができます。

于 2013-01-22T11:04:01.253 に答える