Yo podría muy bien estar haciendo algo mal aquí, pero:
Si puedo importar algunos shapefile a una base de datos PostGIS utilizando shp2pgsql, tengo que primero averiguar el SRID/EPSG de que shapefile. Creo que este es, como mínimo, un proceso de dos pasos. En primer lugar me consulta el archivo de forma como esta:
>ogrinfo -al -so someshapefile.shp
que devuelve el conocido texto (wkt) proyección de la información, pero es un poco detallado y algo opaco [a mí]. Algo así como:
GEOGCS["NAD83",
DATUM["North_American_Datum_1983",
SPHEROID["GRS 1980",6378137,298.257222101,
AUTHORITY["EPSG","7019"]],
AUTHORITY["EPSG","6269"]],
PRIMEM["Greenwich",0,
AUTHORITY["EPSG","8901"]],
UNIT["degree",0.01745329251994328,
AUTHORITY["EPSG","9122"]],
AUTHORITY["EPSG","4269"]]
Entonces me suelen ejecutar el wkt información a través de una herramienta de conversión como Prj2EPSG para encontrar la EPSG/SRID.
En este punto, no puede importar el archivo de forma utilizando:
>shp2pgsql -I -s 4269 someshapefile.shp <schema>.<table> | psql -U <user> -d <dbname> -h <hostaddress> -p 5432
Nota, puedo especificar el SRID con la -s
bandera.
Si, puedo ejecutar shp2pgsql sin especificar el SRID, ninguna proyección es el conjunto y creo que la geometría de la columna tiene manualmente ser actualizado para incluir una proyección.
Como alternativa, puedo omitir la búsqueda, y sólo tiene que utilizar ogr2ogr:
>ogr2ogr -f "PostgreSQL" "PG:host=<hostaddress> user=<user> dbname=<dbname> password=<password>" "C:/shapefile.shp" -nln <schema>.<table>
los que, aparentemente, se establece la proyección de la multa, presumiblemente extraer automáticamente desde el origen de shapefile/prj.
Pregunta
Así que ¿cuál es la desventaja de usar ogr2ogr? Hay de hecho una bandera tan shp2pgsql extrae automáticamente y establece el derecho de proyección también? Si no, ¿por qué no?
Anexo
Hay una muy interesante, quizás un poco anticuado, el análisis comparativo de la utilización de ogr2ogr vs shp2pgsql disponible en naturalgis.pt. Se demuestra por su particular datos de la muestra, que ogr2ogr funciona mucho mejor en pequeños conjuntos de datos, pero que shp2pgsql realiza un poco mejor en grandes conjuntos de datos.
No siento que esto proporciona una respuesta definitiva. Los códigos base puede haber evolucionado, mejorando el rendimiento de cada uno. Ellos sólo he probado un conjunto muy pequeño de la muestra de datos. El representante de los "grandes" del conjunto de datos no es realmente grande. También, se debe principalmente a debatir cuestiones de rendimiento, lo que sin duda afecta a la usabilidad, pero la pregunta original está más interesado en la usabilidad relacionados con la entrada del usuario requisitos.