No entiendo qué tipo de formato tengo mis datos. El nombre de la columna es wkb_geom , así que supuse que los datos estaban en formato WKB, pero luego estaba revisando y no pude encontrar un ejemplo. Los datos son así:
"0106000020E6100000010000000103000000010000007218000007000060B1D42B4010000060A372454007000060B1D42B40030000009D724540030000E0D5D42B40030000009D724540030000E0D5D42B40050000C08A7245400B000040FAD42B40050000C08A7245400B000040FAD42B40130000807B7245400B000040FAD4 (...)
"
¿Está en formato WKB o WKT? Segunda pregunta, en caso de que esté en formato WKB, ¿cómo puedo convertirlo al formato WKT? Estaba tratando de seguir esta sugerencia
entonces la consulta es
UPDATE "ita_adm1"
SET wkb_geometry = ST_GeomFromWKB("wkb_geometry",4326)
pero sigue diciendo que la función ST_GeomFromWKB no existe.
postgis
convert
wkt
well-known-binary
usuario3520314
fuente
fuente
Respuestas:
En términos generales, esto se llama WKB codificado en hexadecimal. Este ejemplo específico es la versión extendida , llamada EWKB, ya que tiene SRID = 4326 como se encuentra en
E6100000
.WKB se puede ver en algunas formas. La representación de cadena codificada en hexadecimal es la más común, que si en realidad es texto, se puede convertir usando una conversión simple
::geometry
:Solo use ST_GeomFromWKB si es una
bytea
secuencia binaria sin formato .Además, cuando se seleccionan datos de geometría de una base de datos PostGIS, la representación EWKB codificada en hexadecimal se muestra en el resultado de la consulta. Para obtener representaciones WKT o EWKT, use las funciones ST_AsText o ST_AsEWKT , como se demostró anteriormente.
fuente