Ответить | Перейти к списку сообщений | Предыдущее сообщение | Следующее сообщение | Предыдущее в ветке | Следующее в ветке |
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