2 votos

ST_MakePoint fuera de PostGIS

Para importar datos a una base de datos PostgreSQL/PostGIS necesito este formato CSV:

"1,nameOfPoint,0101000020E6100000689DA690152F114090338CFF9B0B4A40,2019-07-22 19:56:03.603+00,2019-07-22 19:56:04.243+00"

A mi entender, el tercer campo es un objeto geométrico de PostGIS (creado dentro de PostGIS con ST_MakePoint ). Sin embargo, tengo coordenadas. ¿Puedo convertir las coordenadas en un objeto PostGIS fuera de la base de datos? ¿Existe una herramienta de conversión para esto?

1voto

Mark Jeronimus Puntos 196

El tercer campo debe ser similar a lo que se puede conseguir con:

select encode(ST_AsEWKB(geom),'hex')

Así que debería ser ewkb detrás, mostrado en hexadecimal. Me parece que no es muy fácil generarlo y pasarlo entre ordenadores, y sobre todo depurarlo. Se puede encontrar una librería para usarlo en diferentes lenguajes como python con plpygis

Personalmente, prefiero importarlo en texto (ewkt típicamente) (no estoy seguro de la ', tal vez usted no necesita estos):

"1,nameOfPoint,'POINT(2.3 3.4)',2019-07-22 19:56:03.603+00,2019-07-22 19:56:04.243+00"

Y añadir una columna de geometría después con:

SELECT AddGeometryColumn ('my_schema','my_spatial_table','geom',4326,'POINT',2);
UPDATE my_spatial_table SET geom = ST_GeomFromEWKT(my_ewkt_field);

Tenga en cuenta que si tiene problemas de rendimiento al hacerlo, es más rápido crear una nueva tabla en lugar de actualizar una.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X