Я думаю, вы можете просто добавить новое свойство к вашему маркерному объекту.У вас есть массив маркеров, эти объекты имеют свойства latitude
, longitude
, iconURL
...
Вы можете добавить новые свойства к этим маркерам:
for (let marker of markers) {
marker.customProperty = 'my value'
}
И затем отфильтруйте их в своем HTML-шаблоне.Вы можете сделать это, например, используя функцию фильтра или создав другой массив, который вы можете отфильтровать в вашем файле TypeScript.Я пойду с первым вариантом:
<agm-map [latitude]="mapCenterLatitude" [longitude]="mapCenterLongitude" [zoom]="getMapZoom()" [mapTypeId]="'hybrid'">
<agm-marker-cluster maxZoom="13" imagePath="https://raw.githubusercontent.com/googlemaps/v3-utility-library/master/markerclustererplus/images/m">
<agm-marker *ngFor="let marker of markers.filter(item => item.customProperty === 'desiredProperty)" [latitude]="marker.latitude" [longitude]="marker.longitude" [iconUrl]="marker.iconUrl">
<agm-info-window>
<h2>{{marker.title}}</h2>
<a routerLink="{{ marker.url }}">Details</a>
</agm-info-window>
</agm-marker>
</agm-marker-cluster>
</agm-map>
И это подойдет.
PD Если вы не можете создать собственное свойство, потому что вы явно используете класс agm-marker, вы можетелибо не определяйте тип массива markers (установите его на any
), либо создайте свой собственный класс, который расширяет класс agm-marker.
Надеюсь, это поможет!