i am looking to render svg image on canvas with layers.My aim is to transfer svg image on canvas layer wise. As SVG String contain tag by which we can decompose on flutter. but i did not find any solution after a lot of research what i need to select and manipulate each layer by resizing and dragging. if anybody assist me, i will be thankful to him.
Suppose this simple SVG String
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="300" height="300" viewBox="312.07142857142856 203.98000000000002 233.02999999999997 122.98027586206888" xml:space="preserve"><defs></defs>
<desc>Create with Free Logo Design v1.0</desc>
<defs>
</defs>
<defs></defs><rect x="0" y="0" width="100%" height="100%" fill="rgba(0, 0, 0, 0)"></rect>
<g transform="matrix(1 0 0 1 469.77 247.73)" id="Layer_1">
<polygon style="stroke: none; stroke-width: 1; stroke-dasharray: none; stroke-linecap: butt; stroke-dashoffset: 0; stroke-linejoin: miter; stroke-miterlimit: 4; fill: rgb(29,29,27); fill-rule: nonzero; opacity: 1;" points="-50,-43.21 36.43,43.21 50,43.21 -36.41,-43.21 -50,-43.21 "></polygon>
</g>
<g transform="matrix(1 0 0 1 494.6 247.73)" id="Layer_1">
<polygon style="stroke: none; stroke-width: 1; stroke-dasharray: none; stroke-linecap: butt; stroke-dashoffset: 0; stroke-linejoin: miter; stroke-miterlimit: 4; fill: rgb(29,29,27); fill-rule: nonzero; opacity: 1;" points="-50,-43.21 36.43,43.21 50,43.21 -36.42,-43.21 -50,-43.21 "></polygon>
</g>
<g transform="matrix(1 0 0 1 361.98 237.81)" id="Layer_1">
<polygon style="stroke: none; stroke-width: 1; stroke-dasharray: none; stroke-linecap: butt; stroke-dashoffset: 0; stroke-linejoin: miter; stroke-miterlimit: 4; fill: rgb(29,29,27); fill-rule: nonzero; opacity: 1;" points="7.97,-18.1 7.97,14 3.47,18.09 -7.97,18.09 -7.97,-18.1 7.97,-18.1 "></polygon>
</g>
<g transform="matrix(1 0 0 1 403.87 247.81)" id="Layer_1">
<path style="stroke: none; stroke-width: 1; stroke-dasharray: none; stroke-linecap: butt; stroke-dashoffset: 0; stroke-linejoin: miter; stroke-miterlimit: 4; fill: rgb(29,29,27); fill-rule: nonzero; opacity: 1;" transform=" translate(-115.3, -127.06)" d="M 119.05 83.73 L 81.37 118.06 L 65.44 132.59 L 24 170.38 L 174.09 170.38 L 206.59 170.17 Z M 174.05 160.73000000000002 L 48.76 160.73000000000002 L 76.87 135.11 L 81.37 131.01000000000002 L 118.78 97 L 183.35 160.76 Z" stroke-linecap="round"></path>
</g>
<g transform="matrix(1 0 0 1 405.2 259.14)" id="Layer_1">
<path style="stroke: none; stroke-width: 1; stroke-dasharray: none; stroke-linecap: butt; stroke-dashoffset: 0; stroke-linejoin: miter; stroke-miterlimit: 4; fill: rgb(227,6,19); fill-rule: nonzero; opacity: 1;" transform=" translate(-116.63, -138.39)" d="M 103.13 124.89 L 103.13 151.89 L 130.13 151.89 L 130.13 124.88999999999999 Z M 120.5 142.26 L 112.73 142.26 L 112.73 134.48999999999998 L 120.5 134.48999999999998 Z" stroke-linecap="round"></path>
</g>
<g transform="matrix(1 0 0 1 371.45 309.98)" style="" id="Layer_1">
<text xml:space="preserve" font-family="Roboto-Bold, Roboto" font-size="29.16" font-style="normal" font-weight="700" style="stroke: none; stroke-width: 1; stroke-dasharray: none; stroke-linecap: butt; stroke-dashoffset: 0; stroke-linejoin: miter; stroke-miterlimit: 4; fill: rgb(227,6,19); fill-rule: nonzero; opacity: 1; white-space: pre;"><tspan x="-56.7" y="9.16">company</tspan></text>
</g>
</svg>