2

円をマーカーでバインドして、次のようなビューを作成しました。

ここに画像の説明を入力

しかし、マップからマーカーを削除しようとすると、円がまだ存在します。うーん、

円でマーカーを削除するにはどうすればよいですか?

関連コード:

 function removeMarker(){
    if(selectedMarker)
       selectedMarker.setMap(null);      
}

....

function createCircle()
{
                var circle = {
                strokeColor: "#006DFC",
                strokeOpacity: 0.4,
                strokeWeight: 2,
                fillColor: "#006DFC",
                fillOpacity: 0.15,
                map: mapA,
                center: selectedMarker.getPosition(),
                radius: 50 // in meters
            };
            var cityCircle = new google.maps.Circle(circle);    


            cityCircle.bindTo('center', selectedMarker, 'position');
}

任意の提案をいただければ幸いです。

ありがとう、

4

1 に答える 1

3

マーカーを削除するときに円を削除する場合は、それも削除する必要があります。

 cityCircle.setMap(null);

そのためには、円への参照を保持する必要があります (テストされていません)。

function removeMarker(){
  if(selectedMarker)
    selectedMarker.setMap(null); 
    selectedMarker._mycityCircle.unbindAll();
    selectedMarker._mycityCircle.setMap(null);  
}

....

function createCircle()
{
  var circle = {
    strokeColor: "#006DFC",
    strokeOpacity: 0.4,
    strokeWeight: 2,
    fillColor: "#006DFC",
    fillOpacity: 0.15,
    map: mapA,
    center: selectedMarker.getPosition(),
    radius: 50 // in meters
  };

  cityCircle.bindTo('center', selectedMarker, 'position');
  selectedMarker._mycityCircle = cityCircle;
}
于 2012-12-22T20:21:46.500 に答える