Angular Google Maps 组件更改选项不起作用
Posted
技术标签:
【中文标题】Angular Google Maps 组件更改选项不起作用【英文标题】:Angular Google Maps component changing options not working 【发布时间】:2021-10-22 18:03:01 【问题描述】:我正在使用谷歌地图组件并在其中显示几个谷歌地图标记组件。我有 mapMouseOver(hover) 事件,它应该改变标记的不透明度,但是它不起作用。我已经测试了该事件并且它可以正常触发,只是marker.setOpacity(0.5)
的一行没有生效。此外,this.manager.markers
的类型为 google.maps.Marker[]
<google-map
[options]="options"
[width]="'100%'"
(mapClick)="this.manager.onMapClick($event)"
>
<map-marker
*ngFor="let marker of this.manager.markers"
[position]="this.manager.getMarkerPosition(marker)"
(mapMouseover)="marker.setOpacity(0.5)" // Here's the problem
(mapMouseout)="this.manager.onMarkerExit(marker)"
(mapClick)="this.manager.onMarkerClick(marker)"
></map-marker>
</google-map>
【问题讨论】:
【参考方案1】:找到了解决方法。在组件 ts 文件中,我使用 @ViewChildren<MapMarker>
来引用组件,然后使用 MapMarker.marker
属性从这些组件中引用标记对象。使用这些对象,更改生效。我对为什么第一种方法不起作用的猜测是 *ngFor="let marker of this.manager.markers"
可能正在创建 this.manager.markers 标记的副本并使用它们而不是 this.manager.markers 标记。
【讨论】:
以上是关于Angular Google Maps 组件更改选项不起作用的主要内容,如果未能解决你的问题,请参考以下文章
Angular Google Maps 组件更改选项不起作用
angular-google-maps 通过鼠标点击获取 GEO 位置
RangeError,谷歌地图方向服务。 angular2, SebastianM/angular2-google-maps
Angular Google Maps - 在 AGM-MAP 标签和使用 map = new google.maps.Map() 之间创建地图差异
angular-google-maps TypeError: $scope.map.control.refresh 不是函数