Angular Google Maps(AGM)不可见

时间:2017-12-20 11:26:28

标签: angular google-maps angular-material

我正在尝试将地图添加到我的Angular项目中。使用AGM实现(https://github.com/SebastianM/angular-google-maps)。 我的地图虽然没有出现......

app.module.ts:

@NgModule(<NgModule>{
  declarations: [
    AppComponent,

  ],
  imports: [
    BrowserModule,
    OrderModule,
    AngularFireModule.initializeApp(environment.firebase),
    AngularFirestoreModule,
    FormsModule,
    MatTabsModule,
    BrowserAnimationsModule,
    MatTableModule,
    MatFormFieldModule,
    MatInputModule,
    NoopAnimationsModule,
    MatPaginatorModule,
    MatSortModule,
    MatButtonModule,
    MatDialogModule,
    MatCardModule,
    MatSelectModule,
    MatDatepickerModule,
    MatNativeDateModule,
    AgmCoreModule.forRoot({
      apiKey: <APIKEY>
    })
  ],

  exports: [FilterPipe],
  providers: [],
  bootstrap: [AppComponent]
})

app.component.html:

<div>
  <agm-map [latitude]="51.678418" [longitude]="7.809007" [zoom]="zoom" [disableDefaultUI]="false"
           [zoomControl]="false">
    <agm-marker [latitude]="51.678418" [longitude]="7.809007"></agm-marker>
  </agm-map>
</div>

我在mat-tab组件(角度材料)中显示它

提前致谢!

4 个答案:

答案 0 :(得分:8)

你应该给地图一个高度,所以在你的组件样式中添加:

agm-map{
    height: 300px
}

答案 1 :(得分:0)

这对我有用:

在HTML中

<agm-map [latitude]="lat" [longitude]="lng" [zoom]="zoom" [styles]="styles" [mapTypeId]='mapType' #AgmMap></agm-map>

在TS

ngAfterViewInit(): void {
   setTimeout(() => {
     console.log('Resizing');
     this.agmMap.triggerResize();
   }, 100);
 }

在CSS中

agm-map {
  height: 300px !important;
  width: 100%;  /* This is really important*/
}

答案 2 :(得分:0)

如果使用agm(谷歌角度地图),则应在属性中提供适当的纬度和经度。使用属性的正确绑定语法并提供样式的高度。

答案 3 :(得分:0)

最实用的方法是这样的:

<div class="map">
    <agm-map [latitude]="lat" [longitude]="lng" [zoom]="zoom" [disableDefaultUI]="false" [scrollwheel]="null" [zoomControl]="true" [styles]="styles">/agm-map>
</div>

.map {
    width: 100%;
    min-height: 50vh;
    height: 0;

    agm-map {
        height: 100%;
        width: 100%;
    }
}