Ionic 5 Google Maps 标记在缩放时闪烁

Posted

技术标签:

【中文标题】Ionic 5 Google Maps 标记在缩放时闪烁【英文标题】:Ionic 5 Google Maps markers flickering when zooming 【发布时间】:2021-03-24 23:35:54 【问题描述】:

我的 Ionic 5 项目中存在 Google 地图标记问题,该项目仅与原生 android 版本隔离。

放大或缩小时,我的自定义标记闪烁/闪烁。 闪烁在其他平台上不是问题。仅在原生 Android 上。

任何想法都将不胜感激。

这里在标记代码的sn-p中

  addMarker(station: StationModel, showMemberDiscount: boolean, index: number) 
    let selectedPrice = showMemberDiscount? station.selectedFuelTypePrice.discountedPrice : station.selectedFuelTypePrice.price;

    this.getMarkerIcons(station, showMemberDiscount).pipe(takeUntil(this.destroyed$)).subscribe(
      icons => 
        let marker = new google.maps.Marker(
          position:  lat: station.location.position.latitude, lng: station.location.position.longitude ,
          label: 
            text:  selectedPrice.toFixed(1) + '',
            color: '#FFFFFF',
            fontSize: '20px',
            fontWeight: 'bold',
          ,
          icon: icons.iconDefault,
          zIndex: index,
          map: this.map,
        );
        marker.addListener('click', () => 
          this.ngZone.run(() => 
            // reset previous active marker if there's one
            this.clearActiveMarker(true);
            this.map.panTo(marker.getPosition());
            // store the default icon for selected marker
            this.activeMarkerDefaultIcon = marker: marker, icon: icons.iconDefault, zIndex: marker.getZIndex();
            this.selectedStation.next(station);
            marker.setZIndex(google.maps.Marker.MAX_ZINDEX + 1);
            marker.setIcon(icons.iconSelected);
          );
        );
        this.markers.push(marker);
      );
  

【问题讨论】:

调试和生产版本都发生这种情况吗? ionic cordova build android --prod 是的,发生在调试和生产版本上。我们正在使用电容器。命令是...ionic capacitor build android --prod 【参考方案1】:

将硬件加速设置为 false 解决了闪烁标记问题

<application android:hardwareAccelerated="false" ...>

https://developer.android.com/guide/topics/graphics/hardware-accel

【讨论】:

以上是关于Ionic 5 Google Maps 标记在缩放时闪烁的主要内容,如果未能解决你的问题,请参考以下文章

Ionic 2 - Google Maps Native:标记点击事件未触发

如何在 Google Maps V3 上居中和缩放多个标记

Ionic 2 Angular 2 Google Maps 从数据库坐标中添加多个标记

Google Maps API 3 - 根据缩放级别显示/隐藏标记

无论地图视图/缩放如何,如何使用 Google Maps API 一次只能看到 10 个标记

Angularjs - ng-map - Google Maps Javascript API v3 - 如何为多个标记设置最佳缩放