ฉันมีกริดหกเหลี่ยมจำนวน 1 กม. ที่ครอบคลุมมณฑลต่างๆในสหรัฐอเมริกาในฐานข้อมูล postgreSQL / postGIS แต่ละตารางมี CRS EPSG: 3857 และชั้นเขตมี EPSG: 3857 เมื่อดูกริดกับมณฑลใน QGIS ทุกอย่างดูดี
แต่ ... เพื่อแบ่งปันกริดเหล่านี้กับเพื่อนร่วมงานฉันต้องส่งออกไปยังรูปร่างไฟล์โดยใช้ ogr2ogr การดูข้อมูลเหล่านี้ใน QGIS แต่ละตารางจะมีการเลื่อนขึ้นประมาณ 20 กม. และ QGIS จะตั้งค่า CRS เป็น EPSG โดยอัตโนมัติ: 3395 (ซึ่งไม่ใช่ CRS ของโครงการ)
เมื่อฉันส่งออกตาราง PostGIS เป็น shapefiles จาก QGIS , ดูไฟล์ .prj ว่าเช่นเดียวกับการส่งออก shapefiles ogr2ogrแต่ PostGIS ส่งออกตารางจะแสดงได้อย่างถูกต้อง ฉันสังเกตเห็นว่า QGIS สร้างไฟล์. qpj เมื่อส่งออกไฟล์รูปร่างจาก QGISดังนั้นฉันจึงสรุปได้ว่า QGIS ไม่สนใจ. prj และค้นหา. qpj แทน ทำไมมันไม่สามารถอ่าน. prj หากไม่มี. qpj ไฟล์รูปร่างอื่น ๆ (เช่นจากการสำรวจสำมะโนประชากรของสหรัฐ) ไม่มี. qpj แต่ QGIS แสดงสิ่งเหล่านี้อย่างถูกต้อง
ฉันคิดวิธีแก้ปัญหาด้วยการบันทึกค่าเริ่มต้น qpj และสร้าง. qpj ใหม่จากไฟล์นี้สำหรับไฟล์ทุกไฟล์ที่ส่งออกโดยใช้ ogr2ogr แต่ดูเหมือนว่าจะยุ่งและไม่สามารถทำซ้ำได้
Sidenote: ฉันใช้ 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" ลูกกลม [ "WGS_1984" 6378137,298.257223563]] PRIMEM [ "กรีนวิช" 0], UNIT [ "ปริญญา" .017453292519943295]] ฉาย [ "Mercator"] พารามิเตอร์ [ "central_meridian" 0] พารามิเตอร์ [ "false_easting" 0] พารามิเตอร์ [ "false_northing" 0], UNIT [ "มิเตอร์" 1] พารามิเตอร์ [ "standard_parallel_1", 0.0] ]
เนื้อหาของ. qpj:
PROJCS ["WGS 84 / Pseudo-Mercator", GEOGCS ["WGS 84", DATUM ["WGS_1984", SPHEROID ["WGS 84", 6378137,298.257223563, AUTHORITY ["EPSG", "7030"]], AUTHORITY EPSG", "6326"]] PRIMEM [ "กรีนวิช", 0, AUTHORITY [ "EPSG", "8901"]] UNIT [ "ปริญญา" 0.0174532925199433 อำนาจ [ "EPSG", "9122"]] AUTHORITY [ "EPSG", "4326"]] PROJECTION [ "Mercator_1SP"] พารามิเตอร์ [ "central_meridian" 0] พารามิเตอร์ [ "scale_factor" 1] พารามิเตอร์ [ "false_easting" 0] พารามิเตอร์ [ "false_northing" , 0], UNIT [ "เมตร", 1, AUTHORITY [ "EPSG", "9001"]] AXIS [ "X", EAST] AXIS [ "Y" NORTH] EXTENSION [ "PROJ4", "+ proj = merc + a = 6378137 + b = 6378137 + lat_ts = 0.0 + lon_0 = 00 + x_0 = 0.0 + y_0 = 0 + k = 1.0 + หน่วย = m + nadgrids = @ null + wktext + no_defs "], ผู้มีอำนาจ [" EPSG "," 3857 "]
แก้ไข :
ปัญหาได้รับการแก้ไขโดยการแปลง EPSG: 3857 ไปเป็น EPSG: 2163 ในสคริปต์ทั้งหมดของฉัน ฉันยังไม่แน่ใจว่าปัญหานี้เกิดขึ้นเนื่องจากกริดแสดงอย่างถูกต้องใน QGIS เมื่อเริ่มโหลดจากตาราง postgreSQL (ด้วย EPSG: 3857)
วิธีแก้ปัญหาของฉันพิสูจน์น้ำมันดิบอย่างที่ฉันคิดเพราะเพื่อนร่วมงานของฉันไม่สามารถใช้ไฟล์ใน ArcGIS ซึ่งไม่ได้อ่าน. prj หรือ. qpj อย่างถูกต้อง