UTM Bölgesi'ni enlem / boylamdan mı hesaplıyorsunuz?


9

Uzun bir noktayı UTM'ye dönüştürmeye çalışıyorum.

UTM projeksiyonunu tanımlamak için, noktanın bölgesini hesaplamam gerekir.

Bunu yapmanın en iyi yolunu bulmaya çalışıyorum.

Bunu yapmanın bir yolu, uygun bölgeyi bulmak için boylam değerlerini kullanmak olacaktır.

Bu çok fazla kodlama gerektirir.

Bunu yapmanın daha iyi bir yolu olup olmadığını merak ediyorum?


1
Her zaman Konuma Göre Seç işlevini yapabilir ve noktanın içinde bulunduğu çokgen UTM Bölgesini seçebilirsiniz.
MLowry

1
Tüm olası UTM bölgelerini (kutup bölgeleri vb.) Dikkate almanız mı gerekiyor yoksa sadece orta enlem bölgelerini mi istiyorsunuz? İkincisi basit bir hesaplamadır, çünkü -180 ila +180 arasında her altı derecede eşit aralıklıdırlar.
whuber

Yanıtlar:


18

Svalbard ve Norveç'in etrafındaki bölgeleri ele alsanız bile o kadar da zor değil. İşte bir örnek:

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

Enlem / Boylam'ı UTM'ye dönüştürün (Chuck Gantz'a atfedilir).

Bu belirli kodu denemedim, ancak algoritma doğru görünüyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.