Computando a zona UTM a partir do ponto lat / long?

9

Estou tentando converter um ponto longo para UTM.

Para definir a projeção UTM, preciso calcular a zona para o ponto.

Estou tentando descobrir a melhor maneira de fazer isso.

Uma maneira de fazer isso seria usar valores de longitude para encontrar a zona apropriada.

Isso exigiria muita codificação.

Estou curioso se existe uma maneira melhor de fazer isso?

jayGIS
fonte
11
Você sempre pode executar a função Selecionar por local e selecionar a Zona UTM de polígono em que o ponto está localizado.
MLowry
11
Você precisa considerar todas as zonas UTM possíveis (como zonas polares, etc.) ou deseja apenas as zonas de latitude média? Estes últimos são um cálculo simples, pois são espaçados igualmente a cada seis graus, de -180 a +180.
whuber

Respostas:

18

Não é tão difícil, mesmo se você lidar com as zonas em torno de Svalbard e Noruega. Aqui está um exemplo:

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

Converter Latitude / Longitude em UTM (atribuído a Chuck Gantz).

Eu não tentei esse código específico, mas o algoritmo parece correto.

mkennedy
fonte