Jak ponownie projektować pliki kształtów?

10

Chciałem ponownie zaprojektować projekt QGIS, ale nie ma takiej opcji. Podczas szukania odpowiedzi widzę ogr2ogrsugestię dotyczącą tego zadania, ponownie rzutując każdą warstwę wektorową (w tym przykładzie plik kształtu). Jednak nie otrzymuję oczekiwanego wyniku:

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)

Nowy plik zmienił więc układ współrzędnych geograficznych, ale nie jest rzutowany.
Jak to zrobić?

zetah
źródło
Czy próbujesz zmienić wygląd pliku kształtu? Plik projektu ma .qqszakończenie, a plik kształtu kończy się na .shp. Nie sądzę, że możesz ponownie wyświetlić plik projektu, ale mogę się mylić.
djq 12.12.12
1
Zakładam, że znasz już reprojektację „w locie” w QGIS, która umożliwia ponowne zaprojektowanie dowolnej warstwy wektorowej.
steko 12.12.12
@steko: Jeśli „w locie” odpowiada djq, tak, już to wiedziałem.
zetah,
1
Nie, to inny sposób i trwale zmieni dane. W locie reprojectia jest zdefiniowana tylko w projekcie QGIS i wpłynie na sposób wizualizacji warstw, ale nie dotknie plików leżących u podstaw.
steko
Dzięki, że nie wiedziałem o tym, a Googling pokazał mi, co masz na myśli. Właśnie tego potrzebowałem. Gdybyś mógł tylko napisać swój ostatni komentarz wczoraj ... Napisałem dużo, żeby się tam dostać;)
zetah

Odpowiedzi:

20

Zakładając, że chcesz ponownie zaprojektować plik kształtu, jednym ze sposobów QGISjest załadowanie pliku, right-clickna warstwie, zaznacz Save As…, a następnie pojawi się następujące okno:

wprowadź opis zdjęcia tutaj

Jeśli klikniesz browseobok CRS, możesz wybrać nową projekcję, w której chcesz zapisać plik.

EDYTOWAĆ:

Aby ponownie wyrzucić wszystkie pliki kształtów w jednym folderze, coś takiego może działać:

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

(Nie testowałem tego i nie znam konkatenacji ciągów w systemie Windows, ani nie rozwiązuję problemu ogr2ogr - ale ten fragment kodu zapętla folder i uruchamia coś w każdym pliku).

djq
źródło
Tak, to świetnie, ale musiałbym to zrobić dla każdej warstwy, co jest czasochłonne. Korzystając z wiersza poleceń, miałem nadzieję na ponowne wyświetlenie wszystkich plików kształtów jednocześnie (z pętlą for)
zetah,
Czy wszystkie pliki kształtów znajdują się w jednym folderze?
djq 12.12.12
Tak, są w tym samym folderze
zetah,
dziękuję za twój wysiłek, ale czy rzeczywiście przeczytałeś moje pytanie?
zetah,
3
tak ... nie można ponownie zaprojektować pliku projektu qgis, dlatego udzieliłem pierwszej odpowiedzi. Potem zdałem sobie sprawę, że chcesz masowo odtworzyć pliki kształtu. Jednym ze sposobów na to jest przeglądanie wszystkich plików w folderze za pomocą wiersza polecenia z ogrodem (innym byłoby sprawdzenie, czy możesz przekazać ogr folderowi plików kształtów).
djq 12.12.12