Tengo una serie de cuadrículas hexagonales de 1 km que cubren varios condados en los Estados Unidos en una base de datos postgreSQL / postGIS. Cada cuadrícula tiene el CRS EPSG: 3857, y la capa de los condados tiene EPSG: 3857. Al ver las cuadrículas con los condados en QGIS, todo parece grandioso.
Pero ... para compartir estas cuadrículas con colegas, tuve que exportarlas a archivos de forma usando ogr2ogr. Al verlos en QGIS, cada cuadrícula parece desplazada unos 20 km más o menos, y QGIS establece automáticamente el CRS en EPSG: 3395 (que no es el CRS del proyecto).
Cuando exporto las tablas postGIS como archivos de forma desde QGIS , el archivo .prj se ve exactamente igual que los archivos de forma exportados ogr2ogr , pero las tablas exportadas postGIS se muestran correctamente. Noté que QGIS crea un archivo .qpj al exportar archivos shape desde QGIS , por lo que he llegado a la conclusión de que QGIS está ignorando el .prj y está buscando un .qpj. ¿Por qué no puede leer el .prj sin un .qpj? Otros archivos de forma (como los del Censo de EE. UU.) No tienen un .qpj, pero QGIS los muestra correctamente.
He encontrado una solución al guardar un default.qpj y crear un nuevo .qpj a partir de esto para cada archivo que se exporta usando ogr2ogr, pero esto parece desordenado y obviamente no es reproducible, ya que solo funciona para EPSG: 3857.
Nota al margen: estoy usando QGIS 2.0.1.
EDITAR:
Aquí está el comando ogr2ogr que utilicé:
ogr2ogr -f "ESRI Shapefile" /home/matt/data/hex_grid_1 PG:'dbname=mydb user=matt' hex_grid_1
Contenido del .prj:
PROJCS ["WGS_84_Pseudo_Mercator", GEOGCS ["GCS_WGS_1984", DATUM ["D_WGS_1984", SPHEROID ["WGS_1984", 6378137,298.257223563]], PRIMEM ["Greenwich", 0], UNIDAD [32] [32], 0.09, 1932, 25 " ["Mercator"], PARÁMETRO ["central_meridian", 0], PARÁMETRO ["false_easting", 0], PARAMETER ["false_northing", 0], UNIT ["Meter", 1], PARAMETER ["standard_parallel_1", 0.0] ]
Contenido del .qpj:
PROJCS ["WGS 84 / Pseudo-Mercator", GEOGCS ["WGS 84", DATUM ["WGS_1984", SPHEROID ["WGS 84", 6378137,298.257223563, AUTORIDAD ["EPSG", "7030"]], AUTORIDAD [" EPSG "," 6326 "]], PRIMEM [" Greenwich ", 0, AUTORIDAD [" EPSG "," 8901 "]], UNIDAD [" grado ", 0.0174532925199433, AUTORIDAD [" EPSG "," 9122 "]], AUTORIDAD ["EPSG", "4326"]], PROYECCIÓN ["Mercator_1SP"], PARAMETER ["central_meridian", 0], PARAMETER ["scale_factor", 1], PARAMETER ["false_easting", 0], PARAMETER ["false_northing" , 0], UNIDAD ["metro", 1, AUTORIDAD ["EPSG", "9001"]], EJE ["X", ESTE], EJE ["Y", NORTE], EXTENSIÓN ["PROJ4", "+ proj = merc + a = 6378137 + b = 6378137 + lat_ts = 0.0 + lon_0 = 0.0 + x_0 = 0.0 + y_0 = 0 + k = 1.0 + unidades = m + nadgrids = @ null + wktext + no_defs "], AUTORIDAD [" EPSG "," 3857 "]]
EDITAR :
El problema se resolvió convirtiendo EPSG: 3857's a EPSG: 2163 en todos mis scripts. Sin embargo, todavía no estoy seguro de cuál es el problema, ya que las cuadrículas se muestran correctamente en QGIS cuando se cargaron originalmente desde una tabla postgreSQL (con EPSG: 3857).
Mi solución probó ser cruda como pensé, ya que mi colega no pudo usar el archivo en ArcGIS, que no leía el .prj o el .qpj correctamente.
Respuestas:
La
EPSG:3857
definición es un truco sucio para obtener la proyección que Google inventó en el software SIG moderno. Es una combinación de esfera y elipsoide que no se usa en proyecciones "normales". Desafortunadamente, cada software usa otra forma de adaptarlo.QGIS usa el archivo .qpj, ARCGIS el WKT en el archivo .prj y GDAL la definición del proj.4. El archivo .qpj incorpora la definición proj.4 en la definición WKT.
La forma más segura de lidiar con estos problemas es evitar Google Mercator. Puede utilizar mejor su plano estatal local, UTM o algunas proyecciones Lambert o Albers de todo el continente.
fuente