【发布时间】:2019-07-03 18:56:42
【问题描述】:
我正在从数据库中读取一些标记,并使用<agm-marker> 标记将它们呈现在Google-maps 上。
这是我读取标记并将它们推入 markers 数组 (componentName.component.ts) 的代码部分:
ngOnInit(): void {
this.markerService.fetchMarkers()
this.markerService.markersSubject.subscribe(markers => {
markers.forEach(marker => {
this.markers.push({
lat: marker.latitude,
lng: marker.longitude,
title: marker.title,
story: marker.story,
path: marker.img_path
})
})
})
} //onInit
以及渲染标记的 Html:
<agm-map
[latitude]="latitude"
[longitude]="longitude"
[zoom]="zoom"
[disableDefaultUI]="false"
[streetViewControl]="false"
[zoomControl]="false"
[mapTypeControl]="false"
[mapTypeId]="'terrain'"
>
<agm-marker id="display-markers"
*ngFor="let m of markers; let i = index"
(markerClick)="openModal('marker-content' + i)"
[latitude]="m.lat"
[longitude]="m.lng"
[markerDraggable]="m.draggable"
[iconUrl]="m.icon"
[visible]="true"
[id]="i"
</agm-marker>
</agm-map>
我需要让用户通过按下按钮来清除所有标记,这意味着<agm-marker> 的[visible] 属性应该为每个标记设置为False。如何从 component.ts 文件中访问标记并更改它?
还有其他方法可以在 Angular 中清除地图上的所有标记吗?
我在网上找不到任何东西:(
谢谢
【问题讨论】:
标签: angular typescript google-maps-markers