cablop.net – Software Tips

Tips de software, hardware… y algo más

Skip to: Content | Sidebar | Footer

Category: PostGIS

Obtener el SRID de un archivo .prj para usarlo en PostGIS

29 Agosto, 2009 (11:33) | PostGIS, PostgreSQL 8.3 | By: 天龙

Usualmente los archivos de shapes de GIS traen un archivo .prj adjunto. Este tiene la informacion de la proyeccción y otros datos. Lo abrimos con un editor de texto cualquiera, el contenido es similar al siguiente:
NAD_1983_StatePlane_Massachusetts_Mainland_FIPS_2001 and UNIT["Meter",1.0]
Luego en nuestra base de datos consultamos los SRIDs candidatos con una búsqueda como:
SELECT
srid, srtext, proj4text
FROM
spatial_ref_sys
WHERE
srtext ILIKE ‘%Massachusetts%’
De [...]

Actualizar el SRID en una columna de geometrías en PostGIS

29 Agosto, 2009 (11:28) | PostGIS, PostgreSQL 8.3 | By: 天龙

Hay que cambiar dos valores, el de la tabla geometry_columns y los de cada geometría para que sean acordes.
Esto lo conseguimos mediante estos sqls:
Para modificar los valores a nivel geometry_columns:
SELECT updategeometrysrid(’<tabla>’, ‘<columna_geometria>’, <nuevo_srid>);
Y este para modificar los valores internos:
SELECT setsrid(<columna_geometria>, <nuevo_srid>) FROM <tabla>;
Fuente: [postgis-users] changing srid

Error “column not found in geometry_columns table” al ejecutar “updategeometrySRID”

29 Agosto, 2009 (11:24) | PostGIS, PostgreSQL 8.3 | By: 天龙

Si al ejecutar algo como:
SELECT
updategeometrySRID(’<tabla>’, ‘<columna_geometria>’, <srid>);
obtenemos el siguiente error:
ERROR: column not found in geometry_columns table
CONTEXT: SQL statement “SELECT UpdateGeometrySRID(”,”, $1 , $2 , $3 )”
PL/pgSQL function “updategeometrysrid” line 4 at SQL statement
Este error se debe a que no tenemos resgitrada la columna en la tabla geometry_columns.
En la entrada anterior he citado como [...]

Agregar manualmente una columna de geometrías a geometry_columns en PostGIS

29 Agosto, 2009 (11:18) | PostGIS, PostgreSQL 8.3 | By: 天龙

Si ya hemos creado una columna para las geometrías en nuestra tabla pero la columna no está referida en la tabla geometry_columns debemos agregarla manualmente.
Esto lo logramos con el siguiente sql:
INSERT INTO
geometry_columns
(
f_table_catalog,
f_table_schema,
f_table_name,
f_geometry_column,
coord_dimension,
srid,
“type”
)
SELECT
”,
‘public’,
‘<tabla>’,
‘<columna_geom>’,
ST_CoordDim(<columna_geom>),
ST_SRID(<columna_geom>),
GeometryType(<columna_geom>)
FROM
public.<tabla>
LIMIT
1;

Fuente: “Manually Registering Geometry Columns in geometry_columns” en el manual de PostGIS

pgAdminIII, PostGIS, PostgreSQL 8.x, SQL, template_postgis

29 Agosto, 2009 (11:07) | PostGIS, PostgreSQL 8.3, SQL, pgAdminIII | By: 天龙

Lo intenté, busque en la red, que le añadiera un sleep a la funcion antes del createdb… no, no lo añadí, ya era ir demasiado lejos… con el pgAdminIII… tampoco…
¿De que habló?
Al ejecutar el comando:
createdb -T template_postgis my_spatial_db
la base de datos no se crea y si usamos pgAdminIII nos devuelve el siguiente error:
database “template_postgis” is [...]

Instalar PostGIS en Ubuntu con PostgreSQL 8.3

29 Agosto, 2009 (11:01) | PostGIS, PostgreSQL 8.3, Ubuntu | By: 天龙

Esta instalación se realizó sobre Ubuntu 9.04 con PostgreSQL 8.3.
Instalación de PostGIS
Una vez instalado el PostgreSQL instalamos el PostGIS.
Nos vamos a sentir tentados a instalar el paquete postgis, pero este es un metapaquete que por alguna razón no nos instala el PostGIS.
El que debemos instalar es postgresql-8.3-postgis.
Por consola el comando es:
sudo apt-get install postgresql-8.3-postgis
Con eso [...]