ทำความเข้าใจกับคุณสมบัติการสร้างแผนผังย่อย


10

ฉันพยายามที่จะสร้างแผนที่ฐานไทล์ ฉันมีภาพที่ฉันต้องการสร้างไทล์และฉันใช้ GDAL

ฉันจัดการเพื่อสร้างไทล์ แต่เมื่อฉันดูผลลัพธ์ดูเหมือนว่าแผนที่แบบเรียงต่อกันคือ:

  1. มันพลิก
  2. สัดส่วนไม่ถูกต้อง

นี่คือภาพซ้อนทับแผนที่: ภาพแผนที่

นี่คือผลของการเรียงต่อกัน:

ผลกระเบื้อง

ฉันตรวจสอบหลาย ๆ ครั้งว่าพิกัดนั้นดีโดยการเปรียบเทียบมุมภาพกับภาพออร์โธกราฟ

อีกอย่างคือใน google earth ที่มีพิกัดเดียวกันภาพแผนที่จะพอดีกับแผนที่ google

การซ้อนทับของ google earth

แก้ไข

gdalinfo map_overlay.png

ด้วยผลลัพธ์นี้:

ไดร์เวอร์: PNG / ไฟล์กราฟิกเครือข่ายพกพา: map_overlay.png ขนาดคือ 3527, 2494 ระบบพิกัดคือ `'โครงสร้างรูปภาพข้อมูลเมตา:
INTERLEAVE = พิกเซลพิกัดมุม: ด้านซ้าย (0.0, 0.0) มุมซ้ายล่าง (0.0, 2494.0) มุมขวาบน (3527.0 , 0.0) มุมขวาล่าง (3527.0, 2494.0) ศูนย์ (1763.5, 1247.0) วงดนตรี 1 บล็อก = 3527x1 ประเภท = ไบต์, ColorInterp = ธงหน้ากากสีแดง: PER_DATASET ALPHA วงดนตรี 2 บล็อก = 3527x1 ประเภทธงเขียว = PER_DATASET ALPHA Band 3 Block = 3527x1 Type = Byte, ColorInterp =
ธงหน้ากากสีน้ำเงิน: PER_DATASET ALPHA Band 4 Block = 3527x1 Type = Byte, ColorInterp = Alpha

จากนั้นแปล:

gdal_translate -of VRT -a_srs กำไรต่อหุ้น: 4326 -gcp 0 0 31.7431761644 35.1680410195 -gcp 3527 0 31.7493769674 35.1784535489 -gcp 3527 2492 31.7431011291 35.1784951643

ด้วยผลลัพธ์นี้:

ขนาดไฟล์อินพุตคือ 3527, 2494

และสุดท้าย:

gdal2tiles.py -z 14-21 map_overlay.vrt

ภาพซ้อนทับเป็นภาพ. png ที่เรียบง่ายโดยไม่มีข้อมูลพิเศษใด ๆ

ฉันจะขอบคุณความช่วยเหลือใด ๆ

Shani


2
ดูเหมือนจะมีความไม่สอดคล้องกันในgdal_translateพารามิเตอร์ที่คุณโพสต์ไว้ที่นี่: คุณกำลังเชื่อมโยง (lat, lon) = (31.7431761644, 35.1680410195) โดยมีสองจุดที่แตกต่างกันที่ (0,0) และ (0,2494) นี่เป็นคำสั่งที่คุณออกจริง ๆ หรือเป็นข้อผิดพลาดในการคัดลอกและวางหรือไม่
whuber

คำตอบ:


5

ลองใช้ภาพที่มีการประสานการวัดกันก่อนที่จะเรียงเป็น

   gdalwarp -of GTiff -t_srs EPSG:3857 input.tif output.tif 

UPDATE

หมายเหตุ: แม้ว่าเราจะระบุ gcp แล้วgdal_translateก็จะไม่ระบุพิกัดมุมของ tiff

นอกจากนี้คุณไม่จำเป็นต้องสร้างชุดข้อมูลเสมือน (.vrt) เนื่องจากมีไฟล์เพียงไฟล์เดียว ...

ใช้รหัสต่อไปนี้:

  gdal_translate -of  GTiff  -gcp 0 0 31.7431761644 35.1680410195 -gcp 3527 0 
       31.7493769674 35.1784535489 -gcp 3527 2492 31.7431011291 35.1784951643
      -gcp 0 2494 31.7431761644 35.1680410195 map_overlay.png map_overlay.tif

แล้วก็

  gdalwarp -s_srs epsg:4326 -t_srs epsg:4326  map_overlay.tif warped_map_overlay.tif

และตอนนี้ลองใช้ gdalinfo ... หากคุณไม่เห็นปัญหาใด ๆ ให้เรียกใช้คำสั่งนี้:

  gdal2tiles.py -z 14-21 warped_map_overlay.tif

หากไทล์ของคุณไม่พอดีให้รันโค้ดด้านบนก่อนการอัพเดตฉันได้รับ

คุณสามารถรับข้อมูลเพิ่มเติมได้ที่นี่

ฉันหวังว่ามันจะช่วยคุณ ....


ขอบคุณ ฉันควรทำอย่างนั้นเมื่อใด สำหรับตอนนี้ฉันกำลังทำ 1.gdalinfo map.png 2.gdal_translate -of VRT -a_srs EPSG: 4326 -gcp .... 3. gdal2tiles.py -z 10-16 map.vrt ฉันต้องทำอะไรหลังจากแปลหรือไม่ ฉันควรเปลี่ยน EPSG ในวิธีการแปลหรือไม่
shannoga

หากแผนที่ของคุณไม่สอดคล้องกันพยายามที่จะใช้ข้อมูลด้วย gdalinfo นั้นไร้ประโยชน์
Aragon

ดังนั้นฉันต้องใช้ gdalwarp แทนเหรอ?
shannoga

แผนที่ของคุณประสานงานกับการฉายภาพใด ๆ หรือไม่? ถ้าใช่พยายามที่จะใช้ในการ gdalwarp reproject มันมิฉะนั้นมันทำให้การประสานงานกับ gdal_transform ...
อารากอน

เฮ้ขอบคุณสำหรับผู้ป่วยของคุณ ถ้าเข้าใจคุณถูกต้องมันไม่ นี่เป็นภาพสี่เหลี่ยมจัตุรัสอย่างง่ายที่วาดจากแผนที่ซึ่งไม่มีข้อมูลพิเศษอยู่ ฉันได้อัปเดตคำถามด้วยคำสั่งที่ใช้แล้ว ขอขอบคุณอีกครั้งสำหรับความพยายามในการช่วยเหลือของคุณ
shannoga
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.