#GoogleMap #JavaScript #TypeScript https://developers.google.com/maps/documentation/javascript/examples/marker-remove?hl=ja#maps_marker_remove-typescript [[Maps JavaScript API]]の公式ドキュメントによると`Marker.setMap(null)`で削除できるらしい.. がObjectの関連は消えるが地図上からは消えなかった。。 色々調べても該当する情報を得られなかったが、事前に`Marker.setVisible(false)`することで解決。多分、何かが原因で描画が残ってしまってたと思われるので、大きな問題はないはず..。 [[Vue3]]との相性による問題かもしれない。 ```ts const removeAllMarkers = () => { state.markers.forEach((x) => { x.setVisible(false); x.setMap(null); }); }; ``` また、[optimizedを有効にしている]と、上記方法で削除してもズーム値を変更したらピンが再描画される。恐らく`setMap(null)`が上手くいっていない副作用だろう。 回避策としては、[optimizedを有効にしている]Markerがある場合に地図を初期化して作り直すようにしている。 [optimizedを有効にしている]: https://developers.google.com/maps/documentation/javascript/markers#optimize