[我正在使用angular-google-map。当单击标记时,信息窗口将打开并在单击其他标记时隐藏previos窗口。现在,我想在鼠标单击地图时关闭信息窗口。
<agm-map [latitude]="lat" [longitude]="lng" [zoom]="zoom" [styles]="styles" [disableDefaultUI]="false" [zoomControl]="true"
[scrollwheel]="false" [streetViewControl]="false" [fitBounds]="false" (zoomChange)="onagmZoomChange($event)">
<agm-marker *ngFor="let c of markers; let i = index" (markerClick)="clickedMarker(infowindow, i)" [latitude]="c.location_details_lat"
[longitude]="c.location_details_lon" [iconUrl]="m.icon">
<agm-info-window #infowindow [maxWidth]="320" >
<div class="info-header">
<h2>add: {{ c.add }}</h2>
</div>
</agm-info-window>
</agm-marker>
</agm-map>
[在AgmMap上为mapClick事件添加处理程序,该处理程序检查您是否有打开的信息窗口,如果有,请关闭它。由于您已经实现了只打开一个信息窗口的处理程序,因此您可能有一个变量包含打开的窗口,例如:
private singleInfoWindow: AgmInfoWindow = null;
您的AgmMap mapClick事件处理程序可以关闭该infoWindow:
if (this.singleInfoWindow) {
this.singleInfoWindow.close();
this.singleInfoWindow = null;
}