Вместо прямого доступа к объекту Маркер Google Maps я бы предложил манипулировать видимостью маркера с помощью компонента Marker
, свойство visible
кажется хорошим кандидатом для этой цели.
Предполагается, что данные производителей представлены вследующий формат
markers = [
{ Id: 1, name: "Oslo", lat: 59.923043, lng: 10.752839, visible: true },
{ Id: 2, name: "Stockholm", lat: 59.339025, lng: 18.065818, visible: true },
{ Id: 3, name: "Copenhagen", lat: 55.675507, lng: 12.574227, visible: true },
{ Id: 4, name: "Berlin", lat: 52.521248, lng: 13.399038, visible: true },
{ Id: 5, name: "Paris", lat: 48.856127, lng: 2.346525, visible: true }
];
и маркеры инициализируются следующим образом:
<agm-marker *ngFor="let m of markers" [visible]="m.visible" [latitude]="m.lat" [longitude]="m.lng" >
</agm-marker>
видимость маркера может быть изменена при нажатии кнопки следующим образом:
toggleMarker(index) {
this.markers[index].visible = !this.markers[index].visible;
}
<button (click)="toggleMarker(0)">Toggle marker</button>
Вот демоверсия