У меня проблема с использованием листовки в плагине powerbi:
в конструкторе я могу показать карту, отметить местоположение на ней и все в порядке:
export class Visual implements IVisual {
private target: HTMLElement;
private dataView: DataView;
private map: L.Map;
private basemap: L.TileLayer;
private markerLayer: L.LayerGroup<L.CircleMarker>;
constructor(options: VisualConstructorOptions) {
console.log('constructor called');
this.target.innerHTML='<div id="map" style="height:100vh;width:100vw;"></div>';
this.basemap = L.tileLayer('http://localhost/mapfiles/{z}/{x}/{y}.png',{ maxZoom: 17,minZoom:10 });
this.map = L.map('map', {
center: new L.LatLng(35.658, 51.403),
zoom: 12,
maxZoom: 18,
minZoom: 12
});
this.map.addLayer(this.basemap);
}
но!
В публичном обновлении , когда (например, я хочу отметить другое местоположение), this.map не определено!
А также, событие Click возвращает ошибки о «функция не найдена» или «MouseEvent» не объявлено ...
Я думаю, что точная проблема заключается в том, что после добавления слоя на карту Leaflet теряет ссылку на карту и не может найти ее снова для редактирования!
Что я могу сделать? Это конфликт между TS и JS?
[извините за мою грамматику :) Английский не является моим основным языком]