Estoy tratando de cargar de forma diferida la biblioteca de dibujo js Leaflet-Geoman
Estoy usando webpack y el siguiente código para cargar
private async loadGeoman () { await import(/* webpackChunkName: "leaflet-geoman" */ '@geoman-io/leaflet-geoman-free') }Y luego usarlo en la siguiente función.
public async enableDrawing (type: TaggedType, item: any) { await this.loadGeoman() this._map.pm.enableDraw(type, { ... }) ....sigo recibiendo el siguiente error
TypeError: Cannot read properties of undefined (reading 'enableDraw') at DrawingService.enableDrawing (drawing.service.ts?af11:192) at eval (drawing.service.ts?af11:75)Parece que la biblioteca no se conecta en el mapa del folleto. El mapa del folleto se crea antes de que se cargue la biblioteca y supongo que ese es el problema, pero no sé cómo solucionarlo.
Geoman se agrega a sí mismo al mapa mientras lo inicializa. Esto significa que si se llama a L.Map antes de agregar Geoman-Script a su sitio, Geoman no se agregará al mapa. Luego debe llamar a L.PM.reInitLayer(map) .
public async enableDrawing (type: TaggedType, item: any) { await this.loadGeoman(); L.PM.reInitLayer(this._map); this._map.pm.enableDraw(type, { ... })