[postgis-users] WKB to native geometry using BULK COPY

David Blasby dblasby at refractions.net
Wed Mar 24 09:38:15 PST 2004


Ryan Proulx wrote:

> Any thoughts on this yet? Or is this just a really stupid question? I am open to suggestions on how to make transfering data in and out of PostGIS easier.
> 
> Regards,
> ryan
> 
> -----Original Message-----
> From: Ryan Proulx 
> Sent: March 4, 2004 16:02
> To: PostGISUserGroup (E-mail)
> Subject: [postgis-users] WKB to native geometry using BULK COPY
> 
> 
> Greetings,
> 
> I am curious how I can use the COPY commands to insert literal geometry data. Currently this works with WKT by specifying the geometry as: 
> 
> 'srid=<srid>;<the_geometry_as_wkt>'. 
> 
> However, I would like to do the same thing using WKB. Any ideas on how that might successfully be done? 
> 
> It seems I will have to get an SRID and a WKB geometry, in hex preferably, and combine the two to form a single hex literal to be inserted directly into a column of type GEOMETRY.
> 
> When I am using single INSERT statements instead of the COPY commands I use the 'geomfromwkb' function to combine the SRID and WKB hex string, so I guess what I really need to know is how this is accomplished and likely what the native underlying geometry looks like.

Dont try to directly create a GEOMETRY object outside the database - 
you're almost certainly going to give yourself nightmares!

Currently, postgis allows the "srid=<srid>;<wkt>" for input to the 
"normal" creation function ("geometry_in()").

You could modify the PostGIS geometry_in() function so that it could 
tell the difference between "srid=<srid>;<wkt>" and say 
"srid=<srid>;<hex WKB>".

IF <isWKB>
    get SRID (-1 if not present)
    grab the hex WKB portion of the input string
    convert hex WKB string to an actual WKB type (WKB_in())
    convert the WKB to GEOMETRY (geometry_from_wkb())
    set the SRID on the new GEOMETRY (setSRID())
    return the GEOMETRY;
ELSE <is WKT>
    ... as before ...
END






More information about the postgis-users mailing list