Обчислення зони UTM від лат / довгої точки?


9

Я намагаюся перетворити довгасту точку в UTM.

Щоб визначити проекцію UTM, мені потрібно обчислити зону для точки.

Я намагаюся з'ясувати найкращий спосіб зробити це.

Один із способів зробити це - використовувати значення довготи, щоб знайти належну зону.

Для цього потрібно багато кодування.

Мені цікаво, чи є кращий спосіб зробити це?


1
Ви завжди можете виконати функцію Select By Location (Вибрати за місцем розташування) і вибрати полігон UTM Zone, у якому знаходиться точка.
MLowry

1
Чи потрібно враховувати всі можливі зони UTM (наприклад, полярні зони тощо) чи ви просто хочете зони середньої широти? Останні - це простий розрахунок, оскільки вони рівномірно розташовані кожні шість градусів від -180 до +180.
whuber

Відповіді:


18

Це не так складно, навіть якщо ви обробляєте зони навколо Шпицберген та Норвегії. Ось приклад:

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 (приписується Чак Ганцу).

Я не пробував цього конкретного коду, але алгоритм виглядає правильно.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.