maybe try a demo if exists from here.
creating a real floor map is not easy, it needs much and exact measurements.
you start by entire surface and then adding a room outline.
on this outline u can add/move doors and windows. (mouse point & line intersect)
i would make it with some classes. add room add wall add door add window.
each object needs a sub for selecting it, moving selected, delete selected,add something, etc.
each object can paint itself into canvas.
each object have it properties and/or sub objects in a list.
scrolling (translate) would be just add a x,y value to all x,y position temporary.
scaling would be just multiply a value to all x,y values.