» «Наука. Мысль: электронный периодический журнал».® Научный журнал ® No 12. - 2016 о «5с1епсе. ТбоивНе: е1ескгоп!с репо@с ]оигпа!» е всепибс е-оигпа! ® которые соответствуют видимой области (МКес! Боипа$ = Капа->Се оотбоипда$()), далее вычисляем индексы ячеек матрицы, соответствующие углам карты (та их- >Се!Ро5 (МРот{(боипае.Тей, Боипаз.бойот), И, — )); та!их->Се!Ро5 (МРотК(Боипаз.паМ!, Боипдз.!ор), 12, }2);). Рассчитываем шаг матрицы доибе $1ер. В 109х и 1юду - содержится количество пикселей, которым состветствует шаг матрицы (доиЫ 109х = ‘иа () / Капа->Се оотбоипав().\Меа() * 51ер; йоибе юду = пей{() / Капа->Се оотбоипа$().Нею() * !ер;). Матрицу превышений и матрицу корректиро- вок отрисовываем таким образом: если масштаб крупный (шаг матрицы больше 5 пикселей), то рисуем прямоугольник, в противном случае ставим точку. - \о!0 Мар\/ему:тоизеРгез5Еуеп! (ОМоивеЕмеп! *е) » корректировка в точке матрицы осуществляется только, если была нажата правая клавиша мыши (е->бийоп() == ОЕ КюМВиВ оп) и открыты карта и матрица корректи- ровки (используем логические переменные тарОреп && соггеснопМаихОреп). С по- мощью функций класса МКапа!тепасе ГодтсТоСео и СеоТоСаиз$ производим преоб- разование логических координат мыши в географические координаты (МРот{ рот = КаПа->|_оо1сТоСео(ро$); рот! = Капа->СеоТоСаиз$(ром!);). Далее проверяем, если точка щелчка мыши находится в области матрицы корректировок, то вызывается диалог, в поле ввода которого вводим значение корректировки высоты. Значение вы- соты записываем в матрицу корректировок (соггеснопМаих->бе{Нешт! (роит!, петди?)) и вызываем перерисовку (отображение) матрицы корректировки (ирда!еНе!!$()). - мо Мар\/ем:2оот (1тЕТей, 1% юр, 7Х оИ, 1Е Бойот) » точки противоположных углов прямоугольника переводим из логических координат мыши в координаты карты (@Рот! пга = ОРот! (12й, 10р); ОРот зесопа = ОРот? (паМ!, Бойот); МРот' р1 = Капа->|обсТоСео(Пг5!); МРот' р2 = Капа->_обсТоСео(зесопа);) Формируем прямоугольник с помощью класса библиотеки картографии МКес! (МКес! гес! = МКес! (р1, р2)) и вызываем функцию ХоотТо (в качестве параметра передаем в нее сформированный прямоугольник гес!). Для перерисовки карты вызываем — функцию агам/Мар(). Алгоритмы ключевых процедур и функций класса Мах - моа Матх: СтеайеРе (МКес! гес!, МУтпо Тепате, доиб $4 п у, 10% х) » создание матрицы на жестком диске осуществляется, если была удалена предыду- щая матрица (Рез!гоу()), далее увеличиваем границы матрицы так, чтобы они были кратны — шагу — (МNoогтайгеКес{(гес!)), записываем — заголовок в @файл — ВМН (//теВтиНеайег(тет)) и записываем О в конец файла, создавая таким образом файл нужного размера, заполненный нулями. {вееК (тет, 48 + сх * су * я2ео!(5Пог!) - 1, ЗЕЕК_ЗЕТ); спаг с = 0; Ммите (&с, 1, 1, тет); $Пот! Майх: Се!Нею!! (МТоробуес! *{ро) »> высота топографического объекта добавляется в матрицу из ОТР-файла (МУ!тпод $1г = 1ро->СеФааРо!е(1)), если в данных объекта отсутствует значение высоты, оно бе- рется из списка стандартных высот (пед/!5 [[ро->т_ККоа]) 80