6

PostGIS stores its geometry entities as long strings:

SELECT ST_GeomFromText('POINT(32.0 34.0)',4326);
                  st_geomfromtext
----------------------------------------------------
 0101000020E610000000000000000040400000000000004140

For nearby points like (32.0 34.0) and (32.01 34.01), the string has a common prefix 0101000020E6100000 which might suggest a suggest a geohash technique:

SELECT ST_GeomFromText('POINT(32.01 34.01)',4326);
                  st_geomfromtext
----------------------------------------------------
 0101000020E6100000E17A14AE47014040E17A14AE47014140

Any idea what is the storage format of PostGIS geometries?

  • 1
    PostGIS is open source, if ever in doubt read the source. – Nathan W Jul 20 '14 at 13:41
  • @NathanW Sure. I was looking for a reference to an explanation, rather than code. – Adam Matan Jul 20 '14 at 13:43
16

It is not a string format. It is a binary format using integers, double precission and special bytes used for flags.

What you see as output above is not the internal format but the wkb format represented as hex numbers

The internal format is described here: http://trac.osgeo.org/postgis/browser/trunk/liblwgeom/g_serialized.txt

The document is written before postgis 2.0 when g-serialized also is used for the geometey type. But as far as I know it is the same.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.