Wie werden Shapefiles neu projiziert?

10

Ich wollte ein QGIS-Projekt neu projizieren, aber es gibt keine solche Option. Bei der Suche nach einer Antwort wird ein ogr2ogrVorschlag für diese Aufgabe angezeigt, indem jede Vektorebene (in diesem Beispiel Shapefile) neu projiziert wird. Ich bekomme jedoch kein erwartetes Ergebnis:

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)

Die neue Datei hat also das geografische Koordinatensystem geändert, wird jedoch nicht projiziert.
Wie geht das?

Zetah
quelle
Versuchen Sie, ein Shapefile neu zu projizieren? Eine Projektdatei hat eine .qqsEndung, ein Shapefile endet mit .shp. Ich glaube nicht, dass Sie eine Projektdatei neu projizieren können, aber ich könnte mich irren.
DJQ
1
Ich gehe davon aus, dass Sie die "on the fly" -Reprojektion in QGIS bereits kennen, mit der jede Vektorebene neu projiziert werden kann.
Steko
@steko: Wenn "on the fly" das ist, was von djq beantwortet wird, ja, das wusste ich schon.
Zetah
1
Nein, das ist ein anderer Weg und es werden die Daten dauerhaft geändert. Die On-the-Fly-Neuprojektion wird nur im QGIS-Projekt definiert und wirkt sich auf die Darstellung der Ebenen aus, berührt jedoch nicht die zugrunde liegenden Dateien.
Steko
Danke, ich wusste nichts davon und Googeln hat mir gezeigt, was du meinst. Es ist genau das, was ich brauchte. Wenn du gestern nur deinen letzten Kommentar gepostet hättest ... Ich habe viel
getippt

Antworten:

20

Angenommen, Sie möchten ein Shapefile neu projizieren, besteht eine Möglichkeit QGISdarin, die Datei right-clickauf der Ebene zu laden , auszuwählen Save As…, und dann wird das folgende Fenster angezeigt:

Geben Sie hier die Bildbeschreibung ein

Wenn Sie browseneben klicken CRS, können Sie eine neue Projektion auswählen, in der Sie Ihre Datei speichern möchten.

BEARBEITEN:

So etwas könnte funktionieren, um alle Shapfiles in einem Ordner neu zu projizieren:

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

(Ich habe dies nicht getestet und bin mit der Verkettung von Zeichenfolgen unter Windows nicht vertraut. Ich löse auch nicht das Problem mit ogr2ogr. Dieses Code-Snippet durchläuft jedoch einen Ordner und führt für jede Datei etwas aus.)

djq
quelle
Ja, das ist großartig, aber ich müsste das für jede Schicht tun, was zeitaufwändig ist. Durch die Verwendung der Befehlszeile hatte ich gehofft, alle Shapefiles auf einmal neu zu projizieren (mit for-Schleife)
zetah
Befinden sich alle Shapefiles in einem Ordner?
DJQ
Ja, sie sind in demselben Ordner
Zetah
Vielen Dank für Ihre Mühe, aber haben Sie meine Frage tatsächlich gelesen?
Zetah
3
Ja ... Sie können eine QGIS-Projektdatei nicht neu projizieren, weshalb ich meine erste Antwort gegeben habe. Dann wurde mir klar, dass Sie die Shapefiles in großen Mengen neu projizieren wollten. Eine Möglichkeit, dies zu tun, besteht darin, alle Dateien in einem Ordner über die Befehlszeile mit ogr zu durchlaufen (eine andere Möglichkeit besteht darin, zu prüfen, ob Sie ogr einen Ordner mit Shapefiles übergeben können).
DJQ