Bagaimana cara memproyeksikan kembali shapefile?

10

Saya ingin memproyeksikan ulang proyek QGIS, tetapi tidak ada opsi seperti itu. Saat mencari jawaban yang saya lihat ogr2ogrdisarankan untuk tugas ini, dengan memproyeksikan kembali setiap layer vektor (shapefile dalam contoh ini). Namun saya tidak mendapatkan hasil yang diharapkan:

C:\temp>ogrinfo -al -so misc.shp
INFO: Open of `misc.shp'
      using driver `ESRI Shapefile' successful.

Layer name: misc
Geometry: Line String
Feature Count: 10
Extent: (21.267388, 42.015857) - (21.270225, 42.017470)
Layer SRS WKT:
PROJCS["MGI_Balkans_zone_7_deprecated",
    GEOGCS["GCS_MGI",
        DATUM["Militar_Geographische_Institute",
            SPHEROID["Bessel_1841",6377397.155,299.1528128]],
        PRIMEM["Greenwich",0],
        UNIT["Degree",0.017453292519943295]],
    PROJECTION["Transverse_Mercator"],
    PARAMETER["latitude_of_origin",0],
    PARAMETER["central_meridian",21],
    PARAMETER["scale_factor",0.9999],
    PARAMETER["false_easting",7500000],
    PARAMETER["false_northing",0],
    UNIT["Meter",1]]
id: Integer (10.0)

C:\temp>ogr2ogr -t_srs EPSG:4326 misc_re.shp misc.shp

C:\temp>ogrinfo -al -so misc_re.shp
INFO: Open of `misc_re.shp'
      using driver `ESRI Shapefile' successful.

Layer name: misc_re
Geometry: Line String
Feature Count: 10
Extent: (-34.004490, 0.000230) - (-34.004490, 0.000230)
Layer SRS WKT:
GEOGCS["GCS_WGS_1984",
    DATUM["WGS_1984",
        SPHEROID["WGS_84",6378137,298.257223563]],
    PRIMEM["Greenwich",0],
    UNIT["Degree",0.017453292519943295]]
id: Integer (10.0)

Jadi file baru telah mengubah sistem koordinat geografis, tetapi tidak diproyeksikan.
Bagaimana cara melakukannya?

zetah
sumber
Apakah Anda mencoba memproyeksikan kembali shapefile? File proyek memiliki .qqsakhiran, sebuah shapefile berakhir dengan .shp. Saya tidak berpikir Anda dapat memproyeksikan ulang file proyek tetapi saya bisa salah.
djq
1
Saya berasumsi Anda sudah tahu proyeksi ulang "on the fly" di QGIS yang memungkinkan memproyeksi ulang setiap layer vektor.
steko
@steko: Jika "on the fly" adalah apa yang dijawab oleh djq, ya saya sudah tahu itu.
zetah
1
Tidak, itu cara lain dan itu akan mengubah data secara permanen. Proyeksi on the fly hanya didefinisikan dalam proyek QGIS dan akan memengaruhi bagaimana layer divisualisasikan tetapi tidak menyentuh file yang mendasarinya.
steko
Terima kasih, saya tidak tahu tentang itu, dan Googling menunjukkan kepada saya apa yang Anda maksudkan. Persis seperti yang saya butuhkan. Jika Anda hanya dapat memposting komentar terakhir Anda kemarin ... Saya melakukan banyak pengetikan untuk sampai ke sana;)
zetah

Jawaban:

20

Dengan asumsi Anda ingin memproyeksi ulang sebuah shapefile, salah satu caranya QGISadalah dengan memuat file, right-clickpada layer, pilih Save As…, dan kemudian jendela berikut muncul:

masukkan deskripsi gambar di sini

Jika Anda mengklik browsedi samping CRSAnda dapat memilih proyeksi baru untuk menyimpan file Anda.

EDIT:

Untuk memproyeksi ulang semua shapfile dalam satu folder, sesuatu seperti ini bisa berfungsi:

set "str1=_projected"
for %f in (E:\data\*.shp) do ogr2ogr -t_srs EPSG:4326 %str1%"misc_re.shp %f

(Saya belum menguji ini dan saya tidak terbiasa dengan rangkaian string pada windows, saya juga tidak memecahkan masalah ogr2ogr - tetapi potongan kode ini loop melalui folder dan menjalankan sesuatu pada setiap file.)

djq
sumber
Ya itu bagus, tapi saya harus melakukan itu untuk setiap lapisan, yang memakan waktu. Dengan menggunakan baris perintah saya berharap untuk memproyeksikan kembali semua shapefile sekaligus (dengan untuk loop)
zetah
Apakah semua shapefile dalam satu folder?
djq
Ya, mereka berada di folder yang sama
zetah
terima kasih atas usaha Anda, tetapi apakah Anda benar-benar membaca pertanyaan saya?
zetah
3
ya ... Anda tidak dapat memproyeksi ulang file proyek qgis dan itulah sebabnya saya memberikan jawaban pertama saya. Kemudian saya sadar Anda ingin memproyeksi ulang shapefile secara massal. Salah satu cara untuk melakukan ini adalah untuk loop melalui semua file dalam folder menggunakan baris perintah dengan ogr (yang lain adalah untuk melihat apakah Anda dapat melewatkan ogr folder shapefile).
djq