如何在不刷新其他所有内容的情况下刷新Google地图的叠加层

时间:2018-07-12 15:53:37

标签: html angular typescript google-maps-api-3

请注意,这个问题与我问的问题here

有关

在我的html中,我将使用

为Google地图创建一个叠加层
<agm-map ngDraggable [latitude]="latitude" [longitude]="longitude" [zoom]="zoom" *ngIf="locations" (mapReady)="mapReady($event)" >

其中mapReady定义为

  mapReady($event: any) { 
    console.log("about fire init");
    nite.init($event);
    setInterval(nite.refresh(),10000);
  }

现在的问题是,nite.refresh()应该每10秒触发一次,但只能触发一次。我不确定这与我的{

ngOnInit()

这样的函数。这可能引起问题吗? timer(0, 10000).pipe( switchMap( _ => this.hawkerservice.fetchNews() )).pipe( map(...)).subscribe() 可以正常工作,我只需要能够刷新覆盖层而无需刷新整个页面,这就是我目前正在执行的操作,以刷新nite.init(...)。有什么想法吗?对不起,如果英语不是最好的话。

1 个答案:

答案 0 :(得分:0)

我刚刚发现了我需要做的答案

  mapReady($event: any) { 
    console.log("about fire init");
    nite.init($event);
    setInterval(function() { nite.refresh() }, 10000);
  }

换句话说,因为nite是js函数而不是打字稿,所以set Interval必须具有以这种方式定义的function()。