쉐이프 파일을 다시 투영하는 방법?


10

QGIS 프로젝트를 다시 투영하고 싶었지만 그러한 옵션은 없습니다. 답변을 검색 할 때 ogr2ogr각 벡터 레이어 (이 예제의 셰이프 파일)를 다시 투영 하여이 작업에 대한 제안을 보았습니다 . 그러나 나는 예상 결과를 얻지 못한다 :

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)

따라서 새 파일은 지리적 좌표계를 변경했지만 투영되지 않았습니다.
그렇게하는 방법?


쉐이프 파일을 재 투영하려고합니까? 프로젝트 파일은 .qqs끝이 있고 shapefile은로 끝납니다 .shp. 프로젝트 파일을 다시 투영 할 수는 없지만 잘못 될 수 있다고 생각합니다.
djq

1
QGIS에서 벡터 레이어를 재 투영 할 수있는 "즉석"재 투영을 이미 알고 있다고 가정합니다.
steko

@ steko : djq가 "즉석에서"응답하는 경우, 이미 알고 있습니다.
zetah

1
아니요, 다른 방법이며 데이터를 영구적으로 변경합니다. 즉석 재 투영은 QGIS 프로젝트에서만 정의되며 레이어가 시각화되는 방식에 영향을 주지만 기본 파일은 건드리지 않습니다.
steko

고마워, 나는 그것에 대해 몰랐다. 정확히 내가 필요한 것입니다. ) 당신은 어제 마지막 코멘트를 게시 할 수 있다면 ... 나는 거기에 도착하기 위해 타이핑을 많이했다
zetah

답변:


20

쉐이프 파일을 재 투영하려는 QGIS경우 파일을로드하는 방법 중 하나 right-click는 레이어에 파일을로드 하고을 선택 Save As…하면 다음 창이 나타납니다.

여기에 이미지 설명을 입력하십시오

browse옆 을 클릭 CRS하면 파일을 저장할 새 투영을 선택할 수 있습니다.

편집하다:

하나의 폴더에있는 모든 shapfile을 다시 투영하려면 다음과 같이 작동합니다.

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

(나는 이것을 테스트하지 않았으며 Windows에서 문자열 연결 에 익숙하지 않거나 ogr2ogr 문제를 해결하지 못하지만이 코드 스 니펫은 폴더를 반복하고 각 파일에서 무언가를 실행합니다.)


그렇습니다.하지만 시간이 많이 걸리는 모든 레이어에 대해 그렇게해야합니다. 커맨드 라인을 사용하여 모든 모양 파일을 한 번에 다시 투영하기를 원했습니다 (for 루프 포함)
zetah

모든 쉐이프 파일이 하나의 폴더에 있습니까?
djq

네, 같은 폴더에
zetah

노력해 주셔서 감사하지만 실제로 내 질문을 읽었습니까?
zetah

3
예 ... qgis 프로젝트 파일을 재 투영 할 수 없기 때문에 첫 번째 답변을 드리겠습니다. 그런 다음 shapefile을 대량으로 다시 투영하고 싶다는 것을 깨달았습니다. 이 작업을 수행하는 한 가지 방법은 ogr과 함께 명령 줄을 사용하여 폴더의 모든 파일을 반복하는 것입니다 (또 다른 방법은 ogr에 shapefile 폴더를 전달할 수 있는지 확인하는 것입니다).
djq
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.