3 votos

Cómo crear un polígono a partir de las coordenadas del cuadro delimitador (PostGIS/cartoDB)

Tengo datos para importar a cartoDB en formato CSV en el que hay una columna de cuadro delimitador que contiene dos coordenadas lat/long que representan las esquinas de un cuadro delimitador, como

53.113206182344,-9.15629032156; 53.119089697211,-9.141677599209

Necesito conservar esta información como texto en su propia columna, pero también me gustaría derivar un polígono y almacenar su geometría como the_geom. Supongo que la geometría del polígono se crearía después de la importación a través de una actualización de SQL ... pero necesito orientación sobre cómo abordar esto.

2voto

MBCook Puntos 8316

Creo que la ruta más fácil sería utilizar ST_MakeEnvelope ( docs ) después de hacer un análisis básico de su texto. No estoy seguro si CartoDB permite crear funciones o no, pero yo haría una pequeña para esto:

CREATE OR REPLACE FUNCTION parse_box (text)
RETURNS geometry AS $$
WITH split AS (SELECT regexp_split_to_array($1, '[^\d.-]+') AS val)
SELECT ST_MakeEnvelope(val[1]::float, 
                       val[2]::float,
                       val[3]::float,
                       val[4]::float) FROM split;
$$ LANGUAGE SQL;

Y luego:

UPDATE my_table SET geom = parse_box(box);

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