กำลังคำนวณ UTM Zone จากจุด lat / long?


9

ฉันกำลังพยายามแปลงจุด Latlong เป็น UTM

ในการกำหนดการฉาย UTM ฉันจำเป็นต้องคำนวณโซนสำหรับจุดนั้น

ฉันกำลังพยายามหาวิธีที่ดีที่สุดในการทำสิ่งนี้

วิธีหนึ่งในการทำเช่นนี้คือใช้ค่าลองจิจูดเพื่อค้นหาโซนที่เหมาะสม

นี้จะต้องมีการเข้ารหัสจำนวนมาก

ฉันอยากรู้ว่ามีวิธีที่ดีกว่าในการทำเช่นนี้?


1
คุณสามารถใช้ฟังก์ชั่นเลือกตามตำแหน่งและเลือกโซนรูปหลายเหลี่ยม UTM ที่มีจุดอยู่ภายใน
MLowry

1
คุณจำเป็นต้องพิจารณาโซน UTM ที่เป็นไปได้ทั้งหมด (เช่นโซนขั้วโลก ฯลฯ ) หรือคุณต้องการโซนละติจูดกลาง หลังมีการคำนวณอย่างง่ายเพราะพวกเขาเว้นระยะเท่ากันทุก ๆ หกองศาจาก -180 ถึง +180
whuber

คำตอบ:


18

ไม่ใช่เรื่องยากแม้ว่าคุณจะจัดการกับโซนรอบ ๆ Svalbard และ Norway ก็ตาม นี่คือตัวอย่าง:

ZoneNumber = floor((LongTemp + 180)/6) + 1;

if( Lat >= 56.0 && Lat < 64.0 && LongTemp >= 3.0 && LongTemp < 12.0 )
    ZoneNumber = 32;
endif
// Special zones for Svalbard
if( Lat >= 72.0 && Lat < 84.0 ) 
  if  ( LongTemp >= 0.0  && LongTemp <  9.0 ) 
    ZoneNumber = 31;
  elseif( LongTemp >= 9.0  && LongTemp < 21.0 )
    ZoneNumber = 33;
  elseif(LongTemp >= 21.0 && LongTemp < 33.0 )
    ZoneNumber = 35;
  elseif(LongTemp >= 33.0 && LongTemp < 42.0 ) 
    ZoneNumber = 37;
  endif
 endif

แปลงละติจูด / ลองจิจูดเป็น UTM (จาก Chuck Gantz)

ฉันไม่ได้ลองรหัสเฉพาะนี้ แต่อัลกอริทึมนั้นดูถูกต้อง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.