투영없이 형태 파일이 주어졌습니다. 따라서 Google지도에 투영하려면 투영을 추가해야합니다. http://spatialreference.org/ref/epsg/2066 에서 필요한 투영 정보를 찾았습니다 .
질문 :
오픈 소스 방법을 사용하여 투영을 추가하려면 어떻게해야합니까 (ESRI 소프트웨어에 액세스 할 수 없음)?
고마워
크리스
투영없이 형태 파일이 주어졌습니다. 따라서 Google지도에 투영하려면 투영을 추가해야합니다. http://spatialreference.org/ref/epsg/2066 에서 필요한 투영 정보를 찾았습니다 .
질문 :
오픈 소스 방법을 사용하여 투영을 추가하려면 어떻게해야합니까 (ESRI 소프트웨어에 액세스 할 수 없음)?
고마워
크리스
답변:
ogr2ogr -a_srs EPSG:2066 output.shp input.shp
ogr의 장점은 기존 PRJ 파일을 입력으로 사용할 수 있다는 것입니다.
ogr2ogr -a_srs input.prj output.shp input.shp
.shp 파일의 투영은 shapefilename.prj에 있습니다. 기본적으로 텍스트 파일이며 찾은 정보가 있습니다. 셰이프 파일 중 일부를 살펴보고 정보 작성 방법을 알아 봅니다. 또는 동일한 투영에 다른 .shp 파일이있는 경우 파일을 복사하고 이름을 정확하게 변경하십시오.
shapefile과 동일한 기본 이름 (예 : foo.prj)으로 .prj 파일을 작성하고 텍스트 편집기에서 파일을 열고이 경우 http://spatialreference.org/ref/epsg/2066/ 의 내용을 추가 하십시오. prj /
공간 참조 .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')
Geokettle http://www.spatialytics.org/를 사용해보십시오. shapefile을 읽고 변환에 SRS를 추가 할 수있는 옵션이 있습니다. 그렇지 않으면 ogr2ogr gui (Windows 전용)를 사용하여 srid를보십시오