私はここで何か悪いことをしているかもしれませんが、
shp2pgsqlを使用していくつかのシェープファイルをPostGISデータベースにインポートする場合、まずそのシェープファイルのSRID / EPSGを把握する必要があります。これは、少なくとも2つのステップからなるプロセスだと思います。まず、次のようにシェープファイルを照会します。
>ogrinfo -al -so someshapefile.shp
これは、既知のテキスト(wkt)投影情報を返しますが、少し冗長で、やや不透明です(私には)。何かのようなもの:
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"]]
次に、通常はPrj2EPSGなどの変換ツールを使用してwkt情報を実行し、EPSG / SRIDを見つけます。
この時点で、次を使用してシェープファイルをインポートできます。
>shp2pgsql -I -s 4269 someshapefile.shp <schema>.<table> | psql -U <user> -d <dbname> -h <hostaddress> -p 5432
-s
フラグでSRIDを指定していることに注意してください。
SRIDを指定せずにshp2pgsqlを実行すると、プロジェクションが設定されず、geom列を手動で更新してプロジェクションを含める必要があると思います。
または、ルックアップをスキップして、ogr2ogrを使用することもできます。
>ogr2ogr -f "PostgreSQL" "PG:host=<hostaddress> user=<user> dbname=<dbname> password=<password>" "C:/shapefile.shp" -nln <schema>.<table>
どうやら、投影を細かく設定し、おそらくソースシェープファイル/ prjから自動的に抽出します。
質問
では、ogr2ogrを使用することの欠点は何ですか?実際にフラグがあるので、shp2pgsqlは自動的に適切なプロジェクションを抽出して設定しますか?そうでない場合、なぜそうではないのですか?
補遺
興味深いのは、上の利用可能shp2pgsqlと対ogr2ogr使用の日付、比較分析おそらく少し、ありますnaturalgis.ptが。それはことを、彼らの特定のサンプルデータのための実証ogr2ogr小さなデータセットに対して有意に良好に機能するが、それshp2pgsqlと行いがわずかに優れ、より大きなデータセットに。
これで決定的な答えが得られるとは思いません。コードベースが進化し、それぞれのパフォーマンスが向上した可能性があります。彼らは非常に小さなサンプルデータのセットのみをテストしました。代表的な「大きな」データセットは実際にはそれほど大きくありません。また、主にパフォーマンスの問題について説明していますが、これはユーザビリティに確実に影響しますが、元の質問は、ユーザビリティに関連するユーザ入力要件に関心があります。