Estou tentando seguir este tutorial ( https://maplibre.org/ngx-maplibre-gl/API/ ) para implementar o MapLibre GL em um aplicativo Angular, mas não consigo.
Não entendi como implementar este código do tutorial:
import { Component } from '@angular/core';
import { MapComponent } from '@maplibre/ngx-maplibre-gl';
@NgModule({
template: `
<mgl-map
[style]="'https://demotiles.maplibre.org/style.json'"
[zoom]="[9]"
[center]="[-74.5, 40]"
>
</mgl-map>
`,
styles: [
`
mgl-map {
height: 100%;
width: 100%;
}
`,
],
imports: [MapComponent],
})
export class AppComponent {}
Adaptando-o a um componente como
import { Component } from '@angular/core';
@Component({
selector: 'app-tabs',
template: `
<mgl-map
[style]="'https://demotiles.maplibre.org/style.json'"
[zoom]="[9]"
[center]="[-74.5, 40]"
>
</mgl-map>
`,
styles: [
`
mgl-map {
height: 100%;
width: 100%;
}
`,
],
standalone: false
})
export class MapPage {
constructor() {}
}
só mostra uma tela preta.
Eu não entendo como o código do tutorial deveria funcionar, porque se eu apenas implementar o código do tutorial diretamente, meu compilador diz que o literal do objeto pode especificar apenas propriedades conhecidas, e 'template' não existe no tipo 'NgModule' .
Você consegue fazer o código do tutorial funcionar? Como?
Muito obrigado pela sua ajuda🙂
Os passos são bem diretos. A única coisa que pode causar problemas como esse é ter a importação no lugar errado. Abaixo estão dois exemplos funcionais de
standalone
emodular
para referência de código.Primeiro eu instalei.
Em seguida, adicionei as duas propriedades abaixo
tsconfig.json
.Em seguida, adicionei a folha de estilo em
angular.json
:Uma coisa é que quando o componente é criado, ele terá altura e largura zero, o que fará com que o mapa fique oculto. Então, precisamos adicionar o SCSS abaixo ao
app.component.scss
nossostyles
array.Finalmente adicionei a importação no componente do aplicativo.
Abordagem autônoma:
Adicionamos o componente e a importação ao componente do aplicativo.
Demonstração do Stackblitz
Método modular:
Adicionamos a importação ao
app.module
imports
array. Então usamos o componente no componente do aplicativo.aplicativo.módulo.ts
aplicativo.componente.html
Demonstração do Stackblitz