Je ne comprends pas quel type de format j'ai mes données. Le nom de la colonne est wkb_geom , donc j'ai supposé que les données étaient au format WKB, mais ensuite je vérifiais et je n'ai pas pu trouver d'exemple. Les données sont comme ceci:
"0106000020E6100000010000000103000000010000007218000007000060B1D42B4010000060A372454007000060B1D42B40030000009D724540030000E0D5D42B40030000009D724540030000E0D5D42B40050000C08A7245400B000040FAD42B40050000C08A7245400B000040FAD42B40130000807B7245400B000040FAD4 (...)
"
Est-ce au format WKB ou WKT ?? Deuxième question, au cas où il serait au format WKB, comment puis-je le convertir au format WKT? J'essayais de suivre cette suggestion
donc la requête est
UPDATE "ita_adm1"
SET wkb_geometry = ST_GeomFromWKB("wkb_geometry",4326)
mais il continue de dire que la fonction ST_GeomFromWKB n'existe pas.
la source
Réponses:
D'une manière générale, cela s'appelle WKB codé hexadécimal. Cet exemple spécifique est la version étendue , appelée EWKB, car elle a SRID = 4326 comme trouvé par
E6100000
.WKB peut être visualisé sous plusieurs formes. La représentation sous forme de chaîne codée hexadécimale est la plus courante, qui, s'il s'agit en fait de texte, peut être convertie à l'aide d'une simple conversion
::geometry
:Utilisez uniquement ST_GeomFromWKB si elle est crue
bytea
flux binaire.En outre, lorsque les données de géométrie sont sélectionnées dans une base de données PostGIS, la représentation EWKB au format hexadécimal est affichée dans le résultat de la requête. Pour obtenir des représentations WKT ou EWKT, utilisez les fonctions ST_AsText ou ST_AsEWKT , comme illustré ci-dessus.
la source