Advance your Data & AI career with 50 days of live learning, dataviz contests, hands-on challenges, study groups & certifications and more!
Get registeredGet Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Request now
I am trying to develop custom visual for Power BI. I have div element with leaflet map. When I do not set a height, visual is emplty. I can set a height with
this.mapDiv.style.height="300px";
But this is fixed.
How can I set height dynamically by viewport?
This is my code
private mapDiv: HTMLElement;
constructor(options: VisualConstructorOptions) {
this.mapDiv = document.createElement("div");
this.mapDiv.id = "mapid";
options.element.appendChild(this.mapDiv);
var map = L.map('mapid');
map.setView([48.14, 17.12], 13);
L.tileLayer('https:....', {
minZoom: 4,
maxZoom: 18,
}).addTo(map);
}
public update(options: VisualUpdateOptions) {
// this.mapDiv.style.height = "300px"; WORKS
this.mapDiv.style.height = options.viewport.height.toString(); // DOESNT WORKS !!!
}
Solved! Go to Solution.
You need to add the length unit.
this.mapDiv.style.height = options.viewport.height.toString() + "px";
You need to add the length unit.
this.mapDiv.style.height = options.viewport.height.toString() + "px";
I am trying to develop custom visual for Power BI. I have div element with leaflet map. When I do not set a height, visual is emplty. I can set a height with
this.mapDiv.style.height="300px";
But this is fixed.
How can I set height dynamically by viewport?
This is my code
private mapDiv: HTMLElement;
constructor(options: VisualConstructorOptions) {
this.mapDiv = document.createElement("div");
this.mapDiv.id = "mapid";
options.element.appendChild(this.mapDiv);
var map = L.map('mapid');
map.setView([48.14, 17.12], 13);
L.tileLayer('https:....', {
minZoom: 4,
maxZoom: 18,
}).addTo(map);
}
public update(options: VisualUpdateOptions) {
// this.mapDiv.style.height = "300px"; WORKS
this.mapDiv.style.height = options.viewport.height.toString(); // DOESNT WORKS !!!
}
Check out the November 2025 Power BI update to learn about new features.
Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!