Tôi có một số lưới hình lục giác dài 1 km bao gồm nhiều quận khác nhau ở Hoa Kỳ trong cơ sở dữ liệu postgreQuery / postGIS. Mỗi lưới có CRS EPSG: 3857 và lớp hạt có EPSG: 3857. Khi xem các lưới với các hạt trong QGIS, mọi thứ đều có vẻ lớn.
Nhưng ... để chia sẻ các lưới này với các đồng nghiệp, tôi đã phải xuất chúng thành các shapefile bằng ogr2ogr. Xem những điều này trong QGIS, mỗi lưới có vẻ như bị đẩy lên khoảng 20 km hoặc hơn, và QGIS sẽ tự động đặt CRS thành EPSG: 3395 (không phải là CRS của dự án).
Khi tôi xuất các bảng postGIS dưới dạng shapefiles từ QGIS , tệp .prj trông giống hệt như các shapefile đã xuất ogr2ogr , nhưng các bảng đã xuất postGIS được hiển thị chính xác. Tôi nhận thấy rằng QGIS tạo tệp .qpj khi xuất shapefiles từ QGIS , vì vậy tôi đã đi đến kết luận rằng QGIS đang bỏ qua .prj và tìm kiếm một .qpj thay thế. Tại sao nó không thể đọc .prj mà không có .qpj? Các shapefile khác (chẳng hạn như các điều tra từ Tổng điều tra Hoa Kỳ) không có .qpj nhưng QGIS hiển thị chính xác những điều này.
Tôi đã đưa ra một cách giải quyết bằng cách lưu default.qpj và tạo một .qpj mới từ tệp này cho mọi tệp xuất bằng ogr2ogr, nhưng điều này có vẻ lộn xộn và rõ ràng là không thể tái tạo vì nó chỉ hoạt động cho EPSG: 3857.
Sidenote: Tôi đang sử dụng QGIS 2.0.1.
BIÊN TẬP:
Đây là lệnh ogr2ogr tôi đã sử dụng:
ogr2ogr -f "ESRI Shapefile" /home/matt/data/hex_grid_1 PG:'dbname=mydb user=matt' hex_grid_1
Nội dung của .prj:
PROJCS ["WGS_84_Pseudo_Mercator", GEOGCS ["GCS_WGS_1984", DATUM ["D_WGS_1984", SPUM, [" ["Mercator"], PARAMETER ["trung tâm ]
Nội dung của .qpj:
PROJCS ["WGS 84 / Pseudo-Mercator", GEOGCS ["WGS 84", DATUM ["WGS_1984", SPHEROID ["WGS 84", 6378137,298.257223563, AUTHORITY ["EPSG", " EPSG "," 6326 "]], PRIMEM [" Greenwich ", 0, AUTHORITY [" EPSG "," 8901 "]], UNIT [" độ ", 0,0174532925199433, AUTHORITY [" EPSG "," 9122 "] ["EPSG", "4326"]], DỰ ÁN ["Mercator_1SP"], PARAMETER ["centre_meridian", 0], PARAMETER ["scale_factor", 1], PARAMETER ["false_easting", 0], PARAMETER ["false_easting", 0] , 0], UNIT ["mét", 1, AUTHORITY ["EPSG", "9001"]], AXIS ["X", EAST], AXIS ["Y", BẮC], 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 + đơn vị = m + nadgrids = @ null + wktext + no_defs "], AUTHORITY [" EPSG "," 3857 "]]
CHỈNH SỬA :
Vấn đề đã được giải quyết bằng cách chuyển đổi EPSG: 3857 thành EPSG: 2163 trong tất cả các tập lệnh của tôi. Tôi vẫn không chắc vấn đề là gì vì các lưới được hiển thị chính xác trong QGIS khi được tải ban đầu từ bảng postgreQuery (với EPSG: 3857).
Cách giải quyết của tôi tỏ ra thô thiển như tôi nghĩ, vì đồng nghiệp của tôi không thể sử dụng tệp trong ArcGIS, không đọc đúng .prj hoặc .qpj.