Tip #1 – Extracting the Spatial Extent of an Image and Saving in a Drawing

This tip comes from a question Atelier Cassini asked on the Directions Magazine discussion list. He writes:

“I would like to create a box drawing around an image. Do I need to know the exact dimension of that image or can I draw it automatically?”

While one cannot do this automatically, one can use a single SQL SELECT statement to extract the boundary of an image and write it into a drawing component.

Let us assume that the target drawing is called “MyDrawing” and that the source image is called “SpatialDBAdvisor”.

The method I recommended was to create a new Query component and then add the following SQL SELECT statement into that component.

 INSERT INTO MyDrawing ([Geom (I)])
 SELECT Project(
           AssignCoordSys(
             CGeom(CGeomWKB(
                        "POLYGON(("&min([Easting (I)])&" "&
                                   min([Northing (I)])&", "&
                                   min([Easting (I)])&" "&
                                   max([Northing (I)])&", "&
                                   max([Easting (I)])&" "&
                                   max([Northing (I)])&", "&
                                   max([Easting (I)])&" "&
                                   min([Northing (I)])&", "&
                                   min([Easting (I)])&" "&
                                   min([Northing (I)])&"))")),
             CoordSys("SpatialDBAdvisor" AS Component)),
             CoordSys("MyDrawing" As Component))
 FROM [SpatialDBAdvisor]

If your image data is in geographics (ie Latitude/Longitude) then you should replace the Easting and Northing intrinsics with their Longitude/Latitude equivalents.

I hope this is useful.