4 votos

Cómo cambiar de EPSG:900913 a EPSG:3857 en Postgresql

No utilicé el interruptor '-E 3857' al importar los datos de OSM a postgresql utilizando osm2psql.

Estoy intentando montar un servidor de mapas por primera vez y estoy siguiendo las instrucciones de aquí: https://github.com/mapserver/mapserver/wiki/RenderingOsmDataWindows#osm-prep .

He leído que epsg900913 y epsg3857 son básicamente lo mismo aquí: ¿Cuál es la diferencia entre EPSG:900913 y EPSG:3857? .

¿Cómo puedo cambiar/transformar la referencia espacial en las tablas osm (es decir, osm_line, osm_point, osm_polygon, etc) dentro de postgresql de epsg900913 a epsg3857 utilizando un comando SQL?

6voto

fmkatz Puntos 113

He encontrado la solución aquí: http://postgis.net/docs/UpdateGeometrySRID.html

--This will change the srid of the roads table to 3857 from whatever it was before

UpdateGeometrySRID(varchar table_name, varchar column_name, integer srid);

Así que para mi base de datos el nombre de la tabla era 'planet_osm_line' y la columna que contiene el srid y la geometría es 'way'. la consulta SQL que ejecuté fue:

SELECT UpdateGeometrySRID('planet_osm_line','way',3857);

Comprobé si funcionaba ejecutando una consulta psql desde la línea de comandos:

psql -U postgres -d osm -c "SELECT ST_extent(way) FROM planet_osm_line"

Los datos fueron devueltos

0voto

Dr Herbie Puntos 2966

Si quieres un poco más de control y un poco más de SQL:

UPDATE TABLE foo
SET geom = ST_TRANSFORM(geom, 3857);

El comando actualiza el geom columna de geometría de su tabla foo con una geometría con SRID transformado.

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