postgreSQL / postGIS 데이터베이스에 미국의 여러 카운티를 포괄하는 1km 육각형 그리드가 있습니다. 각 그리드에는 CRS EPSG : 3857이 있고, 카운티 레이어에는 EPSG : 3857이 있습니다. QGIS에서 카운티가있는 그리드를 볼 때 모든 것이 웅장 해 보입니다.
그러나 ...이 그리드를 동료와 공유하려면 ogr2ogr을 사용하여 셰이프 파일로 내 보내야했습니다. 이것을 QGIS에서 볼 때 각 그리드는 약 20km 정도 좁아 보이고 QGIS는 자동으로 CRS를 EPSG : 3395 (프로젝트 CRS가 아님)로 설정합니다.
postGIS 테이블 을 QGIS 에서 shapefile로 내보낼 때 .prj 파일은 ogr2ogr로 내 보낸 shapefile과 정확히 동일하게 보이지만 postGIS로 내 보낸 테이블은 올바르게 표시됩니다. QGIS 에서 shapefile 을 내보낼 때 QGIS가 .qpj 파일을 생성한다는 것을 알았 으므로 QGIS가 .prj를 무시하고 대신 .qpj를 찾고 있다는 결론에 도달했습니다. .qpj없이 .prj를 읽을 수없는 이유는 무엇입니까? 다른 모양 파일 (예 : 미국 인구 조사의 모양 파일)에는 .qpj가 없지만 QGIS는이를 올바르게 표시합니다.
ogr2ogr을 사용하여 내보내는 모든 파일에 대해 default.qpj를 저장하고 이것으로부터 새로운 .qpj를 작성하여 해결 방법을 찾았지만 EPSG : 3857에서만 작동하므로 혼란스럽고 분명히 재현 할 수 없습니다.
주석 : QGIS 2.0.1을 사용하고 있습니다.
편집하다:
내가 사용한 ogr2ogr 명령은 다음과 같습니다.
ogr2ogr -f "ESRI Shapefile" /home/matt/data/hex_grid_1 PG:'dbname=mydb user=matt' hex_grid_1
.prj의 내용 :
PROJCS [ "WGS_84_Pseudo_Mercator", GEOGCS [ "GCS_WGS_1984", DATUM [ "D_WGS_1984", SPHEROID [ "WGS_1984", 6378137,298.257223563]], PRIMEM [ "그리니치", 0], UNIT [ "도", 0.01745329251994 [ "Mercator"], PARAMETER [ "central_meridian", 0], PARAMETER [ "false_easting", 0], PARAMETER [ "false_northing", 0], UNIT [ "Meter", 1], PARAMETER [ "standard_parallel_1", 0.0] ]
.qpj의 내용 :
PROJCS [ "WGS 84 / 유사 메가 케이 터", GEOGCS [ "WGS 84", DATUM [ "WGS_1984", SPHEROID [ "WGS 84", 6378137,298.257223563, AUTHORITY [ "EPSG", "7030"]], AUTHORITY [ " EPSG ","6326 "]], PRIMEM ["Greenwich ", 0, AUTHORITY ["EPSG ","8901 "]], UNIT ["degree ", 0.0174532925199433, AUTHORITY ["EPSG ","9122 "]], AUTHORITY [ "EPSG", "4326"]], PROJECTION [ "Mercator_1SP"], PARAMETER [ "central_meridian", 0], PARAMETER [ "scale_factor", 1], PARAMETER [ "false_easting", 0], PARAMETER [ "false_northing" , 0], UNIT [ "metre", 1, AUTHORITY [ "EPSG", "9001"]], AXIS [ "X", EAST], AXIS [ "Y", NORTH], EXTENSION [ "PROJ4", "+ proj = merc + a = 6378137 + b = 6378137 + lat_ts = 0.0 + lon_0 = 0.0 + x_0 = 0.0 + y_0 = 0 + k = 1.0 + units = m + nadgrids = @ null + wktext + no_defs "], AUTHORITY ["EPSG ","3857 "]]
편집 :
이 문제는 모든 스크립트에서 EPSG : 3857을 EPSG : 2163으로 변환하여 해결되었습니다. postgreSQL 테이블에서 원래로드 될 때 그리드가 QGIS에 올바르게 표시되었으므로 (EPSG : 3857) 문제가 무엇인지 여전히 확실하지 않습니다.
동료가 .prj 또는 .qpj를 제대로 읽지 못하는 ArcGIS에서 파일을 사용할 수 없기 때문에 해결 방법이 생각보다 어려웠습니다.