Forum Discussion

jerryr125's avatar
jerryr125
Helper IV
6 months ago
Solved

Shape Map Visualization - working with Body Chart

Hi - I am trying to use the Shape Map visualization.  I created a svg file with layers (body chart).  

1. What is the best way to convert the SVG file (Abobe Illustrator) to .json file or a .topjson file ?

2. I tried to add it to the Power BI app using the Shape Map visualization and   the image does not appear.

Is there any tricks/steps I need to be aware off ?

 

Thanks - jerryr

 

Note: Synoptic Panel will not work due to licensing.

  • Hi jerryr125
    Thanks for the follow-up question.

    Microsoft documentation confirms that Power BI Shape Maps only support custom TopoJSON files containing polygon or multipolygon geometry. https://learn.microsoft.com/en-gb/power-bi/visuals/power-bi-map-visualizations-overview 

     

    Adobe Illustrator can only export SVG files and cannot convert them to GeoJSON/TopoJSON. For Power BI Shape Maps, the SVG must be converted using a GIS tool that outputs Polygon or MultiPolygon geometry. A commonly used and reliable option is Mapshaper which is already suggested by the community member JamieHolding,  which allows you to upload the SVG, visually confirm closed and filled shapes, and export directly to GeoJSON (and TopoJSON if needed).

    After conversion, please ensure the GeoJSON contains only Polygon/MultiPolygon types and that region names exactly match your Power BI data (case-sensitive). Once validated, the file should render correctly in the Shape Map visual.

    Thanks again for using the Microsoft Fabric Community Forum.

9 Replies

  • Hi - unforrtunately that did not work - any other recommendations ? Jerry

    • v-kpoloju-msft's avatar
      v-kpoloju-msft
      Community Support

      Hi jerryr125,

      Thank you for reaching out to the Microsoft Fabric Community Forum. Also, thanks to JamieHolding,  for his inputs on this thread.

      There is a known limitation with the Shape Map visual in Power BI that explains the behaviour you are seeing. Shape Map is designed for geographic polygon data and does not reliably support illustration-based SVGs such as body or anatomical charts. When an SVG converts into line-based or unsupported geometry, Power BI can load the custom JSON but silently skips rendering the shapes, which results in a blank visual without showing an error.

      To work around this, the SVG needs additional preparation before conversion. Each body part must be a closed, filled polygon (not strokes or open paths), with all masks and effects removed, and each region clearly named. After cleaning the SVG, convert it to GeoJSON first and confirm the geometry is Polygon or MultiPolygon, then convert it to TopoJSON and import it into the Shape Map. Finally, ensure the region names in the JSON exactly match the values used in your data model (case-sensitive). With these steps, the Shape Map should render as expected.

      Refer this link:
      https://learn.microsoft.com/en-us/power-bi/visuals/desktop-shape-map 

      Hope that clarifies. Let us know if you have any doubts regarding this. We will be happy to help.

      Thank you for using the Microsoft Fabric Community Forum.

      • jerryr125's avatar
        jerryr125
        Helper IV

        Hi - 
        Thank you very much for your help.

        Ok - we have done the following:

        - Took the the body chart and traced each 'part' as a layer.  Each layer has an unique name and the name matches the data body part name.  We did the image in Adobe Ilustrator.

        Where I am struggling is the following step:


        "After cleaning the SVG, convert it to GeoJSON first and confirm the geometry is Polygon or MultiPolygon, then convert it to TopoJSON and import it into the Shape Map."

         

        Basically how to I get the SVG from Adobe Illustrator (any tricks on saving the file) and  convert it to GeoJSON first and confirm the geometry is Polygon or MultiPolygon, then convert it to TopoJSON ?

        Any assistance on next steps would be appreciated ! Thank you - Jerry