#angular #google-maps #angular-google-maps
Вопрос:
Мне нужно отобразить около 15 000 маркеров на карте Google.
Чтобы избежать проблем с производительностью, я внедрил кластерное решение.
Фреймворк, который я использую,-это angular12 с @angular/google-maps.
Коза очень проста:
<div class="map-wrapper">
<google-map
#googleMap="googleMap"
width="100%"
height="100%"
[center]="mapCenter"
[zoom]="mapZoom"
[options]="mapOptions"
(boundsChanged)="onZoomChange()"
>
<map-marker-clusterer
*ngIf="!loading"
(clusterClick)="onTransformersClusterMapClick($event)"
[options]="markerClustererOptions"
[imagePath]="transformersMarkerClustererImagePath">
<map-marker
#marker="mapMarker"
*ngFor="let marker of markerList; let i = index"
[title]="marker.title"
[position]="{lat: marker.lat, lng: marker.lng}"
(mapClick)="openInfoWindow(marker, i)"
[options]="markerOptions"
></map-marker>
</map-marker-clusterer>
</google-map>
</div>
Однако даже при первой загрузке с большим уменьшением масштаба требуется несколько минут, чтобы отобразить один кластер из 15 000 маркеров.
Не могу сказать вам, если я попытаюсь увеличить масштаб, так как он почти замерзает.
Попытка вместо этого использовать приложение React с картами Google и пакетом supercluster (не нашел способа реализовать суперкластер на angular) занимает менее секунды для визуализации одного кластера из 15 000 маркеров.
Есть ли что-то не так с моей угловой реализацией google maps, или это просто неправильный api Google maps?
Могу ли я использовать сверхскопление на угловых картах Google?