2014-10-28 59 views
1

下面的图片是我所有记录在postgreSQL中的外观。我无法弄清楚为什么geom领域如此之久,我也无法做出正确的数字。它是二进制表示吗?任何帮助表示赞赏geoDjango点geom字段

enter image description here

回答

2

几何类型存储在WKB内PostGIS的(熟知二进制)形式。

WKB表单是一串字节,用于对有关此几何体的信息进行编码。它保存诸如描述什么类型的几何体(点,线,多边形等)以及表示几何体本身所需的实际信息的信息。

在流中的第一个字节标识如何二进制值被表示,无论是:。NDR(网络数据表示或XDR(扩展数据表示)的两个编码之间的差是字节顺序NDR是小端,这意味着一个无符号整数(一种编码非负整数的32位数据类型)将首先存储最低有效字节,而双精度数据类型(使用IEEE 54双精度格式对双精度数字进行编码)将符号位存储为最后一个字节XDR是大端字节,因此字节顺序反转

流中的下一个组件表示几何类型1到7中的值表示Poi nt,LineString,Polygon,MultiPoint,MultiLineString,MultiPolygon和GeometryCollection。 如果一个几何体由多个几何体组成,则附加字节表示有多少几何体。

下一个字节分量指示第一个形状中的点数,然后是每个点的X,Y坐标。对于每个附加形状,一个字节表示点的数量,接着是定义每个点的坐标值的字节。

或者,WKT(公认的文本)是一种几何表示,它可以为人类观察者提供更好的描述。可以使用postGIS中的方法ST_AsText来显示WKT。有各种几何类型的WKT表示的例子列表in the postGIS documentation here

如果您想了解更多关于WKB,see this helpful explanation of the representation的信息。