오픈 소스 도구를 사용하여 Shapefile에 투영을 추가하는 방법은 무엇입니까?


10

투영없이 형태 파일이 주어졌습니다. 따라서 Google지도에 투영하려면 투영을 추가해야합니다. http://spatialreference.org/ref/epsg/2066 에서 필요한 투영 정보를 찾았습니다 .

질문 :
오픈 소스 방법을 사용하여 투영을 추가하려면 어떻게해야합니까 (ESRI 소프트웨어에 액세스 할 수 없음)?

고마워
크리스

답변:


16

사용 ogr2ogr 에서 GDAL :

ogr2ogr -a_srs EPSG:2066 output.shp input.shp

ogr의 장점은 기존 PRJ 파일을 입력으로 사용할 수 있다는 것입니다.

ogr2ogr -a_srs input.prj output.shp input.shp


2
위의 유틸리티를 시도 할 때 다음과 같은 오류가 발생합니다. "좌표를 변환 할 수 없습니다. 소스 레이어에 좌표계가 없습니다. -s_srs를 사용하여 설정하십시오."
ChrisJ

@ chris 나는 잘못된 사용법을 썼으므로 a_srs를 사용해 출력 프로젝션을 "할당"하십시오
SaultDon

-a_srs에 .prj를 제공 할 수 있는지 몰랐습니다. 감사!
15:17에 aendrew

7

.shp 파일의 투영은 shapefilename.prj에 있습니다. 기본적으로 텍스트 파일이며 찾은 정보가 있습니다. 셰이프 파일 중 일부를 살펴보고 정보 작성 방법을 알아 봅니다. 또는 동일한 투영에 다른 .shp 파일이있는 경우 파일을 복사하고 이름을 정확하게 변경하십시오.


온라인에서 찾은 정보로 파일을 수동으로 만들었습니다. 그러나 여전히 올바르게 표시되지 않습니다. 이 데이터로 투영 파일을 만드는 데 사용할 수있는 유틸리티가 있습니까 ??
ChrisJ

3
spacereference.org 를 사용 하여 .PRJ 파일을 찾아 다운로드 한 다음 .SHP 파일과 동일한 접두어로 이름을 바꿀 수 있습니다
Mike T


2

게시 한 링크에서 .prj 파일 을 다운로드 한 다음 모양 파일과 일치하도록 이름을 바꿉니다.


1
중간 데이터를 만들 필요가없는 경우 가장 쉬운 방법 일 것입니다.
SaultDon

0

공간 참조 .org 의 투영 참조를 .prj 파일로 작성 하는 작은 스크립트 를 첨부 하십시오. 디렉토리의 지정된 모든 파일에 프로젝션 파일을 추가합니다. 예를 들어, E : \ 디렉토리에있는 모든 shapefile은 포함 할 투영의 EPSG 코드, 투영 파일을 추가 할 파일의 확장자 및 이들이있는 디렉토리에 대해 걱정할 필요가 있습니다. 모든 하위 디렉토리를 재귀 적으로 살펴볼 것이므로주의해서 사용하십시오.

    import os

    def getWKT_PRJ (epsg_code):
     import urllib.request, urllib.parse, urllib.error

    # Access projection information
     wkt = urllib.request.urlopen("http://spatialreference.org/ref/epsg/{0}/prettywkt/".format(epsg_code))
     decoded = (wkt.read().decode('utf-8')) 

    # Remove spaces between charachters
     remove_spaces = decoded.replace(" ","")        
    # Place all the text on one line
     output = remove_spaces.replace("\n","")
     return output

    def referencer(folder_path, extension):
        for path, subdirs, files in os.walk(folder_path):
            for name in files:
                file_extension = os.path.splitext(name)[-1]
                if(extension in file_extension):
                    file_path = os.path.join(path,name)
                    file_name = os.path.splitext(file_path)[0]
                    prj = file_name + ".prj"
                    projection = open(prj,"w")
                    projection.write(epsg)
                    projection.close()

    epsg = getWKT_PRJ("25831")              
    referencer('E:\Testfolder', '.shp')

-1

Geokettle http://www.spatialytics.org/를 사용해보십시오. shapefile을 읽고 변환에 SRS를 추가 할 수있는 옵션이 있습니다. 그렇지 않으면 ogr2ogr gui (Windows 전용)를 사용하여 srid를보십시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.