Ответить | Перейти к списку сообщений | Предыдущее сообщение | Следующее сообщение | Предыдущее в ветке | Следующее в ветке

Cavers Mailing List     № 2635

нумерация листов карты

Автор: Grigori Sigalov
Дата: 21 Jun 2001

Привет всем!

06/21/01 в 07:16:10 Mushenkov писал(а):

M> Очень срочно! Есть возможность заказать в Генштабе карты-километровки любого
M> региона нашей страны!

Дело хорошее.

M> Лист на CD в формате JPG стоит 250 руб,

а какое разрешение?

M> качества) - дольше и дороже. Хорошо бы вскладчину заказать сразу МНОГО карт. Все
M> участвуют!

Раз пошла такая пьянка, стоит покрыть картами все основные районы, где
пещеры расположены плотного.

M> Чем больше соберется народу, тем дешевле обойдется. тем более я могу
M> размножить диски по себестоимости болванок. Однако нужно четко определить
M> номера необходимых листов (типа O40, VII).

Это не то. Насколько я помню, римскими цифрами от I до XVI
обозначаются листы 2-километровки.

M> Но поскольку порядок деления
M> листа 10 километровки на листы километровок не совсем понятен,

Он совсем понятен! Если не ошибаюсь, в наших широтах лист карты
1 : 1 000 000 (10-км) имеет размер 4 градуса по широте на 6 градусов
по долготе. Он делится на 144 листа километровки, соответственно
размером 20 на 30 минут. Нумеруются они в пределах базового листа так:

  1 2 3 ...... 11 12
 13 14 15 ...... 23 24
 
.................................

133 134 135 ...... 143 144

Пишу по памяти, если ошибся, пусть меня поправят. Загляните в любой
учебник геодезии или спросите Вову Петрова, он знает.

10- и 5-километровки давно есть в продаже, а когда еще даже не было,
лежали в Ленинке, так что координаты нужного места узнать не проблема.
А дальше делаем так (если на C/C++, но можно и в уме):

/****************************************************************/

int alt_deg, alt_min, /* широта в градусах и минутах */
    lon_deg, lon_min, /* долгота в градусах и минутах */
    m, /* номер ряда, в который попала наша точка */
    n, /* номер столбца, в который попала наша точка */
    sheet; /* номер листа километровки */

/* тут задаем их начальные значения */

alt_deg = alt_deg % 4; /* остаток от деления на 4 определяет положение
                           в пределах листа 10-километровки */

lon_deg = lon_deg % 6; /*остаток от деления на 6 - аналогично */

alt_min = alt_min + alt_deg * 60; /* полное число минут широты */
lon_min = lon_min + lon_deg * 60; /* полное число минут широты */

/* тут я считаю, что секунд не бывает ровно 0, а если вдруг так случилось, */
/* но надо будет брать еще один лист левее или ниже расчетного */

m = 12 - alt_min / 20; /* рядов 12, и нумерация возрастает в
                           направлении на юг, а широта в нашем
                           полушарии - наоборот */
n = 1 + lon_min / 30; /* прибавляем 1, чтобы нумерация столбцов
                           начиналась с 1 */

sheet = (m - 1) * 12 + n; /* ну, всё! */

/****************************************************************/

Всего доброго,

Григорий Сигалов.
--
ICQ: 7979504 (home), 105241103 (work)
Email:

с/к "Барьер"
http://www.barrier.org.ru


Ответить | Перейти к списку сообщений | Предыдущее сообщение | Следующее сообщение | Предыдущее в ветке | Следующее в ветке

CML archive browser created by Pavel Gulchouck