问题描述
我需要将国家/地区的群集分组(因此,一个群集的所有标记用于法国,一个群集的所有标记用于意大利等)在4级缩放以上。如果单击群集,则缩放必须最大为5,并且国家/地区的中心为最大,同样,如果我缩放时没有单击某些行为,但具有正常的缩放中心,则为
。我使用两个不同的agm-map和不同的逻辑来创建标记,从而获得了结果,但是我不喜欢这种解决方案,而且效果也不佳。在下面是我的代码。
<div *ngIf="selectedZoom > 4">
<agm-map [scrollwheel]="false" minZoom="4" [latitude]="startingLat" [longitude]="startingLng" [zoom]="startingZoom" (centerChange)="onCenterChange($event)" (zoomChange)="onZoomChange($event)">
<agm-marker-cluster imagePath="https://raw.githubusercontent.com/googlemaps/v3-utility-library/master/markerclustererplus/images/m" [minimumClusterSize]="2">
<agm-marker *ngFor="let m of resultsMarkers; let i = index"
(markerClick)="clickedMarker(m.label,i)"
[latitude]="m.lat"
[longitude]="m.lng"
[label]="test"
[markerDraggable]="false">
</agm-marker>
</agm-marker-cluster>
</agm-map>
</div>
<div *ngIf="selectedZoom <= 4">
<agm-map [scrollwheel]="false" minZoom ="4" [latitude]="startingLat" [longitude]="startingLng" [zoom]="startingZoom" (centerChange)="onCenterChange($event)" (zoomChange)="onZoomChange($event)">
<agm-marker-cluster maxZoom="5" imagePath="https://raw.githubusercontent.com/googlemaps/v3-utility-library/master/markerclustererplus/images/m" [minimumClusterSize]="2" (clusterClick)="onClusterClick($event)">>
<agm-marker *ngFor="let m of resultsMarkers; let i = index"
(markerClick)="onMarkerClick(m,i)"
[latitude]="m.lat"
[longitude]="m.lng"
[label]="test"
[markerDraggable]="false">
</agm-marker>
</agm-marker-cluster>
</agm-map>
</div>
在第一张地图中,resultsMarkers是来自我的实体的lat-lng数组(考虑街道邮政编码城市等),在第二张地图中,resultMarker是仅来自我的实体所在国家/地区的lat-lng数组(所以我将它们按4缩放级别分组为国家/地区)。我希望我足够清楚,以防不介意询问更多细节。我在Angular 8中使用Angular Google Maps(AGM)。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)