[postgis-users] WKB Geometry Column
Paul Ramsey
pramsey at refractions.net
Thu Mar 17 13:38:31 PST 2005
Sean,
You are confusing storage format with inout/output format. No matter how
you get data *into* postgis, it will be stored the same way, using the
same internal structure. You have three choices for getting data into
and out of postgis:
- Use the "canonical format". This is a string representation of the
internal format. It might change, if we want to change the internal
format. It currently looks a lot like WKB, but it is not. You can see
the canonical format by going "select geom_column from geom_table".
- Use WKT. This is a human readable form of the geometry, using numbers
and brackets and whatnot. You can see the WKT format by going "select
astext(geom_column) from geom_table".
- Use WKB. This is a computer readable form of hte geometry, a
byte-stream. You can see the canonical format by going "select
asbinary(geom_column) from geom_table".
The only thing that is "faster" about WKB is your handling of it on the
client side. It is much faster for client software to parse the
byte-stream than it for it to parse WKT. PostGIS itself will not have
noticably different performance if you use WKB or WKT on output.
Paul
Sean M. Montague wrote:
> I figured out how to insert GeomFromWKB, which makes me realize that I
> may be misunderstanding WKB. My interest in postGIS is for creating SVG
> and I'm transitioning from an Avenue/ArcObjects background to web based
> implementation utilizing SVG, PHP, and hopefully postGIS. I admit my
> knowledge of databases is lacking. Previously I used MySQL, which is a
> lot easier to find answers to questions that I, as a novice to
> intermediate database user, have. I try to avoid posting a question
> unless my search for an answer has turned up nothing. I have come a
> long way, but I'm still trying to grasp conceptually what is going on in
> PostGIS. What I don't get is how to utilize the WKB ability of postGIS.
> I read that shp2pgsql will insert as WKB, but after much searching, I
> have failed in figuring out how. Where I read this didn't say how.
> Below is what I have figured out so far. I extracted a poly from the
> database asBinary(geom) and printed it out into my SVG file. I then
> viewed source and copied the poly binary string and placed it into the
> insert statement which worked, but the resulting geom in the new table
> is WKT, or what I believe to be WKT.
>
> INSERT INTO table1 (the_geom)
> VALUES
> (GeomFromWKB('01060000000100000001030000000100000005000000000000C0331E59
> C100000080D0874DC1000000C0331E59C1000000C0D42D58410000000053085041000000
> C0D42D5841000000005308504100000080D0874DC1000000C0331E59C100000080D0874D
> C1',32767));
>
> In the database, the above Insert creates a table where the geom is
> stored identically as if I had inserted with WKT. What is it that I
> don't know about WKB? I understand that WKB is faster, which explains
> my interest in it. I thought that it would be stored as binary in the
> database. Any insight would help.
> _______________________________________________
> postgis-users mailing list
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users
More information about the postgis-users
mailing list