How to get canvas bounds in world space.

Hello,
I am trying to make a strategy game with a responsive map that stretches with the UI.

I have a basic algorithm to distribute buildings, and it works fine when I use a Sprite object for the map; because the SpriteRenderer.bounds are in world space.
The Sprite is not responsive, so I replaced it with a Canvas and UI Image. But now the distribution makes the buildings way off (numbers like -9564, -3040, -3200 !!)

RectTransform canvas = MapCanvas; //GetWorldRect(MapCanvas, Vector2.one);
Vector3 canvas_size = canvas.sizeDelta;
Vector3 canvas_center = canvas.position;
Bounds canvas_bound = Rend.bounds;	// new Bounds(canvas_center, canvas_size);

Replacing the above with this produces the crazy results.

Rect canvas = GetWorldRect(MapCanvas, Vector2.one);
    Vector3 canvas_size = canvas.size;
    Vector3 canvas_center = canvas.position;
    Bounds canvas_bound = new Bounds(canvas_center, canvas_size);

Here is the implementation of GetWorldRect

public static Rect GetWorldRect(RectTransform rt, Vector2 scale)
	{
		Vector3[] corners = new Vector3[4];
		rt.GetWorldCorners(corners);
		Vector3 topLeft = corners[0];
		Vector2 scaledSize = new Vector2(scale.x * rt.rect.size.x, scale.y * rt.rect.size.y);
 
		return new Rect(topLeft, scaledSize);
	}

Thank you.

Found what I needed here:
https://answers.unity.com/questions/620699/scaling-my-background-sprite-to-fill-screen-2d-1.html?childToView=620736#answer-620736