We had a business requirement to show charts with regions. For the first use case we had to show body injury data and what we had was an SVG that had all the body injury locations.
We looked at a lot of solutions:
1. Storing the SVG data in a table/measure and displaying it.
This did not work, as the SVG data I could only get to display in a table visual and that would be very small for our use case. Additionally we wanted to be able to pick locations and display regions with color coding.
2. Using the ShapeMap.
I tried to convert the SVG vector to TopoJson, but nothing seemed to be able to convert the SVG to a good TopoJson. I even tried to trace the SVG into a vector file using QGIS and then convert it to a TopoJson file. But it always ended up looking like a "Picaso Painting"
3. Custom Visual:
There are a few different custom visuals available and we were investigating
Synoptic Panel from Okviz). This would probably work, but if you had a lot of shapes, regions, then it would cost a per user license.
Final Solution:
The final solution actually turned out to be the easiest (the only requirement is that you need to have Visio online).
Here are the details: Add Visio Visuals to Power BI reports - Microsoft Support
And here is what it can look like:
One reason that this is a really good solution is that if you have a drawing that might frequently change (example floor map), then all you have to do is edit the visio diagram in Visio Online and if you open up the PowerBi dashboard, the changes immediately show up.
How we did it: Its simple, create a new visio diagram and insert the SVG. As long as your SVG was made up of different parts, the svg will come in as a vector. You will have to ungroup your vector and you can make changes. For PowerBi to be able to color the image, the transparency for each part needs to be set to 0%. One thing I could not figure out is, how Power Bi determined as the page to use for the visual. It seemed like which one was the last one being edited would be picked. This felt dangerous, as if someone edited the diagram, it could impact the dashboard. So, we went with the option of a separate visio file for each diagram we wanted to include in PowerBi.
We will be investigating this option more, but I wanted to put this out there as a potential solution.
More info: