- •Географические и земельноинформационные системы
- •Содержание
- •Введение
- •1. Общие сведения о геоинформатике
- •1.1. Понятие о геоинформатике
- •1.2. Метод геоинформатики
- •1.3. Связь геоинформатики с другими науками и технологиями
- •1.4. Краткий исторический очерк развития гис
- •2. Структура информационных систем
- •2.1. Общие положения
- •2.2. Техническое обеспечение
- •2.3. Математическое и программное обеспечение
- •2.4. Организационно-правовое обеспечение
- •2.5. Обеспечение персоналом
- •Контрольные вопросы
- •3. Классификация информационных систем
- •3.1. Классификация по структурированности
- •3.2. Классификация по уровням управления
- •3.3. Классификация по характеру использования информации
- •3.4. Классификация по сфере назначения
- •3.5. Классификация по степени автоматизации
- •Контрольные вопросы
- •4. Пользование системой, обработка и защита данных.
- •4.1. Языки общения пользователя с системой
- •4.2. Информационные технологии обработки данных
- •4.3. Целостность и защита данных
- •Контрольные вопросы
- •5. Программные средства реализации информационных систем
- •5.1. Программные продукты и их характеристики
- •5.2. Системное программное обеспечение
- •5.3. Краткая характеристика существующих операционных систем
- •5.4. Сервисное и программное обеспечение
- •5.5. Прикладные программные продукты
- •Контрольные вопросы
- •6.Системы управления базами данных (субд)
- •6.1.Организация хранения данных в эвм.
- •6.2. Концептуальная модель данных
- •6.3. Понятие о модели данных
- •6.4. Сетевая модель данных
- •6.5. Иерархическая модель данных
- •6.6. Реляционная модель данных
- •6.7. Система управления базами данных
- •6.8. Уровни представления о предметной области
- •6.9. Проектирование баз данных
- •6.9.1. Инфологическое проектирование.
- •Обзор предметной области
- •Определение объектов
- •Выделение объектов и атрибутов по сообщениям
- •Объекты и атрибуты
- •Формализация процессов
- •Перечень запросных связей
- •6.9.2. Даталогическое проектирование
- •6.10. Язык описания данных
- •6.11. Системы счисления, принятые в пк. Ascii и ansi-коды.
- •6.12. Хранение данных на физическом уровне системы
- •6.13. Ведение баз данных
- •6.14. Понятие об объективно-ориентированных моделях данных
- •6.15. Понятие о базах знаний и экспертных системах
- •Контрольные вопросы
- •7. Компьютерные сети и мировые информационные ресурсы
- •7.1. Общие положения
- •7.2. Передача информации
- •7.3. Локальная сеть компьютеров
- •7.4. Объединение локальных сетей компьютеров
- •7.5. Модель взаимодействия и протоколы компьютерных сетей
- •7.6. Мировая глобальная компьютерная сеть Internet
- •7.7. Всемирная информационная сеть
- •7.8. Поиск информационных ресурсов в Интернете
- •Контрольные вопросы
- •8. Стандартизация технического, программного и информационного обеспечения информационных систем
- •8.1. Общие положения о стандартизации и сертификации
- •8.2. Процесс стандартизации
- •8.3. Международный уровень стандартизации
- •8.4. Классификация информации
- •Контрольные вопросы
- •9. Общие сведения о географических и земельно-информационных системах
- •9.1. Понятие о географических и земельно-информационных системах
- •9.2. Классификация гис и зис
- •9.3. Структура гис и зис
- •Контрольные вопросы
- •10. Представление информации в гис и зис
- •10.1. Описание пространственных объектов в гис
- •10.2. Измерение информации
- •10.3. Типы данных и их источники
- •10.4. Векторное представление пространственных объектов
- •10.5. Растровое (матричное) представление пространственных объектов
- •10.6. Сжатие растровых данных
- •10.7. Векторно-растровые преобразования
- •10.8. Векторное и растровое описание трехмерных объектов
- •10.9. Моделирование рельефа
- •10.10. Обработка данных в гис
- •10.11.Форматы пространственных данных.
- •Область данных
- •Контрольные вопросы
- •11. Картографическая основа гис
- •11.1. Общие принципы создания картографической основы гис
- •11.2. Административный и планшетный принципы организации гис
- •11.3. Технология создания картографической основы
- •11.4. Построение условных знаков.
- •11.5. Классификация условных знаков.
- •Контрольные вопросы
- •12. Место геоинформационных систем в информационном обеспечении земельного кадастра
- •12.1. Специализированные гис в земельном кадастре
- •Справочники гис по базам геодезических данных
- •12.2. Применение гис для создания земельно-информационной системы (зис)
- •12.3. Качество гис
- •Контрольные вопросы
- •13.Создание гео – и земельноинформационной системы в среде маpinfo
- •13.2. Работа с точечными объектами .
- •13.2.1Создание нового слоя точечных объектов .
- •13.2.2. Графический способ создания точечных объектов .
- •1.3. Создание последующих слоев карты. Линейные объекты.
- •13.4. Создание слоя площадных объектов
- •13.5.Создание рабочего набора слоев
- •13.6.Заполнение баз данных(таблиц) слоев
- •13.7. Расположение надписей на картах .
- •13.8. Работа с растровыми изображениями.
- •13.9. Создание графических объектов на базе растровых изображений.
- •13.10.Реализация запросов в гис.
- •13.11. Создание тематических карт.
- •13.12.Алгоритмический язык MapBasic.
- •13.12.1.Структура программы языка.
- •13.12.2.Типы данных.
- •13.12.3. Простые операторы языка MapBasic.
- •13.12.4. Управляющие операторы и циклы языка MapBasic .
- •Do Case (выражение)
- •13.12. 5. Процедуры и функции.
- •13.13. Предложения по составлению программы на языке MapBasic.
- •'Ввод данных
- •1.14. Понятие об интегрированной среде MapBasic .
- •1.15. Особенности языка MapBasic в среде Windows.
- •13.16.Практическое применение гис MapInfo в кадастровых целях Постановка задачи.
- •Решение задачи по порядку.
- •Карта → Создать тематическую карту
- •14. Cоздание гео-и земельноинформационной системы в среде GeoMediaProfessional.
- •14.1. Общие положения, включение и графический интерфейс GeoMedia.
- •14.2. Организация окна карты.
- •14.3.Организация слоев.
- •В нашем случае рекомендуется задавать Rectangular Grid.
- •Войти в окно Feature Class Definition и выделить в нем нужный слой, нажать Edit(рис.14.11).
- •14.5.Заполнение баз данных слоев точечных, линейных, площадных объектов и подписей.
- •14.5.1.Точечные объекты. Ввести команду
- •Ввести точки по следующим координатам
- •View →Fit All (по аналогии с Microstation)(рис.14.18).
- •Для временного закрытия системы вводится команда
- •14.5.2.Линейные объекты
- •14.5.3.Площадные объекты
- •14.5.4. Подписи
- •14.5.5. Редактирование слоев
- •Масштабирование производится по команде
- •14.6.Осуществление запросов к системе.
- •14.7.Построение карты на растровой основе.
- •14.7.1.Создание рабочего набора и его вызов Выполнив команду
- •14.7.2.Организация окна карты.
- •14.7.3. Организация слоев.
- •Выводим слой на экран по команде
- •14.7.4.Привязка растрового изображения
- •По команде
- •Для обзора привязанного растра ввести команду
- •14.7.5.Пример создания карты на основе растра.
- •14.8.Создание тематических кадастровых карт в среде GeoMediaProfessional
- •Постановка задачи
- •Решение задачи.
- •15. Создание гео-и земельноинформационной системы в среде ArcView
- •15.1. Общие положения, включение и графический интерфейс ArcView
- •15.2.Построение точечных объектов карты.
- •2.2.1. Определение проекции карты.
- •2.2.2. Создание новой темы
- •15.2.3. Создание таблицы атрибутов и координат картографируемых точек
- •Редактирование(Edit)→Добавить запись(Add Record).
- •15.2.4. Вычерчивание объектов на карте
- •15.2.5. Редактирование карты. А) Изменение условного знака.
- •Б)Изменение записи
- •15.3. Построение линейных объектов карты графическим способом.
- •15.3.1.Создание новой линейной темы.
- •2.3.2.Создание таблицы атрибутов линейных объектов и вычерчивание темы.
- •2.4. Построение линейных объектов карты по координатам их точек.
- •15.5.Построение площадных(полигональных) объектов карты графическим способом.
- •15.5. Расположение подписей на карте.
- •2.6.Компоновка карты
- •15.7.Осуществление запросов системе
- •Б). Составление экспликации земель в автоматизированном режиме
- •В). Выделение буферных зон (зонирование территории)
- •Г). Формирование однородных эколого-технологических участков
- •15.8.2. Размещение посевов сеольскохозяйственных культур по рабочим участкам а). Теоретические вопросы размещения посевов сельскохозяйственных культур
- •Б).Размещение посевов сельскохозяйственных культур в программе
- •16. Создание геоинформационной системы в среде ObjectLand
- •16.1. Общие замечания.
- •16.2. Создание географической основы гис по слоям точечных, линейных , площадных и текстовых объектов
- •16.2.1.Создание гбд и ее компонентов
- •Гбд → Создать.
- •Правка→ Добавить
- •Площадные объекты.
- •Объект→Добавить→Площадной
- •Тема→Закрыть.
- •17.Создание геоинформационной системы в среде программы Panorama
- •17.1.Общие замечания
- •17.2. Составление цифровой карты на векторной основе.
- •17.2.1. Установление лимитов чертежа.
- •17.3 Установка пользовательской системы координат
- •17. 2.1.Определение слоев чертежа (плана)
- •17.2.2. Послойное построение чертежа по координатам
- •5. В появившемся окне «Создание объекта» вводим координаты начала и конца первой дороги (рис.17.10). Нажимаем Сохранить.
- •17.2.3.Действия со слоями
- •17.2.4.Подписывание чертежа
- •17.2.5. Удаление объектов
- •17.2.6. Выполнение измерительных действий на плане
- •17.2.7. Взаимодействие с внешними приложениями. Хранение карты.
- •17.3. Построение карты на растровой основе
- •17.3.1. Организация окна карты
- •17.3.2. Построение математической модели и заполнение паспорта данных
- •17.3.3. Привязка растрового изображения
- •17.3.4. Пример создания карты на растровой основе
- •18.Создание гео-и земельноинформационных систем на основе системы автоматизированного проектирования (сапр) AutoCad
- •18.1.Графический интерфейс AutoCad.
- •18.2. Создание цифровой карты ( плана) послойно по координатам точек объектов.
- •18.2.1. Установка единиц измерений.
- •18.2.2.Определение пользовательской системы координат (пск).
- •18.2.3. Установка лимитов чертежа.
- •18.2.4. Определение слоев чертежа.
- •18.2.5. Послойное построение чертежа по координатам.
- •Вид(View) →Масштаб(Zoom)→Увеличить(In)
- •18.2.6. Действия со слоями
- •18. 2.7.Подписывание чертежа
- •Формат(Format)→Cтиль текста(Text Style).
- •18.3.Синхронизация карты (чертежа)с базами данных других систем
- •18.3.1. Создание базы данных в среде Access.
- •Пуск→Программы→ Microsoft Office → Microsoft Office Access 2003
- •18.3.2.Конфигурирование источника данных.
- •Инструменты(Tools)→dbConnect
- •18.3.3.Подключение базы данных к чертежу
- •18.3.4.Создание шаблона связи базы данных с чертежом.
- •18.3.5.Создание и просмотр связей
- •18.3.Выполнение измерительных действий на карте(чертеже)
- •18.3.1.Определение координат точек.
- •3. Наводится квадратный маркер на точку. В момент получения на экране сообщения «Конечная точка»(EndPoint)(рис.18.64) нажать левую клавишу мыши.
- •18.3.2. Определение площади
- •18.3.4.Решение обратной геодезической задачи
- •18.5.Заполнение базы данных в AutoCad
- •18.6.Сохранение чертежа
- •18.7.Реализация запросов в среде AutoCad.
- •18.8. Реализация других возможностей картографирования
- •18.8.1.Создание точечных объектов.
- •18.8.2.Создание замкнутых областей.
- •18.9.Взаимодействие AutoCad с другими приложениями
- •18.9.1.Экспорт в dxf-формат
- •18.9.2. Импорт в MapInfo
- •18.10. Возможности использования растровой основы в системе AutoCad для картографирования. Построение тематической кадастровой карты в среде Autodesk Map.
- •18.10.1. Построение карты на растровой основе в интерактивном режиме.
- •18.10.2. Построение тематической карты в среде Autodesk Map
- •19. Создание цифровых планов в среде microstation
- •19.1.Графический интерфейс microstation(ms).
- •19.2.Создание цифрового плана послойно по координатам точечных, линейных и площадных объектов
- •19.2.1. Установка единиц измерений.
- •19.2.2.Определение системы координат и лимитов чертежа.
- •19.2.3 . Определение слоев плана.
- •Установки(Settings)→Слои(Level) →Показать(Manager)
- •19.2.4. Вычерчивание слоев
- •19.2.5. Подписывание чертежа.
- •19.2.6.Действия со слоями.
- •19.2.6.1.Отключение слоев
- •19.2.6.2. Сортировка слоев
- •Сорт.(Sort)→ По имени(By Name).
- •19.2.6.3. Иные стандартные действия со слоями.
- •19.3.Выполнение измерительных действий на плане.
- •19.3.1. Определение координат точечных объектов.
- •19.3.2.Определение длины объекта.
- •19.3.3.Определение площади объекта.
- •19.3.4. Заполнение слоя Подписи
- •19.3.5. Редактирование чертежа. А) Заливка замкнутых полигонов.
- •Б)Редактирование подписей в слоях.
- •19.4.Создание цифровых карт на основе растра. Особенности работы в MicroStation v8.1
- •20.Картографирование в системе крупномасштабного картографирования AutoKa-pc(apc)
- •20.1. Общие положения.
- •20.2 Графический интерфейс системы AutoKa-pc
- •20.3. Запуск системы AutoKa-pc и создание Рабочей базы данных.
- •20.4. Создание карты на основе векторной информации о точечных, линейных и площадных объектах.
- •20.4.1. Создание файла результата.
- •Архив→Администратор→Открыть∕Создать
- •20.4.2.Редактирование стиля черчения.
- •Б)Линейные объекты
- •Архив→Стиль черчения→Редактироовать.
- •В)Площадные объекты.
- •Архив→Стиль черчения→Редактироовать.
- •Г) Подписи
- •20.4.3. Построение слоя точечных объектов.
- •Создать →Ввод координат
- •Вычертить все.
- •20.4.4. Построение слоя линейных объектов.
- •Создать →Ввод координат
- •20.4.5.Построение слоя замкнутых полигонов (площадных объектов).
- •Создать →Ввод координат
- •20.4.6. Построение слоя подписей.
- •20.5. Редактирование карты. Фильтрация информации.
- •А) Создание фильтра.
- •Архив→Фильтр→Создать
- •Б)Фильтрация.
- •Фильтр→Вычертить все
- •20.6.Объединение баз данных
- •Архив→ Вид→ Вид экрана
- •Архив→ Вид→ Вид экрана
- •20.7. Создание цифровых карт на основе растра.
- •20.7.1.Просмотр растра.
- •Архив →Растр→ Открыть
- •20.7.4.Определение алгоритма( формулы) афинного преобразования
- •Расчет→Преобразования→Способ
- •20.7.6.Вычерчивание объектов на карте и удаление растра.
- •Установки →Мера углов
- •Расчет→Теодолитный ход
- •20.8.3. Решение других расчетных задач в среде AutoKa.
- •Расчет →съемка/Теодолитная…
- •20.9. Основные принципы создания макросов.
- •20.11. Связь системы AutoKa-pc с другими системами.
- •20.12. Вывод результатов в форме отчета.
- •20.13.Передача данных съёмки из регистраторов в систему АutoKa-pc
- •7. Cоздание цифровых планов в среде credo.Ter
- •7.1.Создание слоев объектов.
- •Данные →Слои
- •7.2. Построение точечных объектов.
- •7.3. Построение линейных объектов.
- •Данные →Слои
- •Ситуация→ Точечные объекты
- •Создать точку.
- •Ситуация →Линейные объекты,
- •Туз→Дороги.
- •7.4. Построение площадных объектов.
- •Создать.
- •7.5. Создание текстовых объектов
- •7.8.Создание цифровой модели местности на основе растра
- •7.8.1.Загрузка растра
- •7.9.1.Создание точечных объектов.
- •7.9.2. Создание линейных объектов.
- •Чертеж→Блок текста → Блок тип 4(рис.7.31)
- •Настройка→ Цвет для изображения(рис.7.34)
- •7.9.3. Создание площадных объектов
- •Ситуация → Обмеры →Обмер(рис. 7.44).
- •7.9.3.2. Способ параллелограмма и перпендикуляров.
- •Чертеж → Текст→Создать(рис. 7.58)
- •Ситуация→измерения → Площадь s (рис. 7.60)
- •7.10.Создание Цифровой модели рельефа(цмр) на основе Растра
- •7.10.1. Общие установки
- •Настройка →Параметры ввода/вывода→ Шаг горизонталей
- •Настройка
- •Рельеф →Точка→Создать(рис.7.66)
- •Точки по сплайну(рис. 7.68)
- •Рельеф→Точка → Изменить
- •7.10.3. Создание поверхности методом триангуляции.
- •Рельеф →Поверхность→ Создать(рис.7.75)
- •7.10.4. Создание поверхности методом структурных линий
- •Настройка
- •Рельеф →Контур рельефа→Создать(рис. 7.92)
- •Рельеф→Поверхность → Создать
- •Рельеф→Поверхность→ Создать
- •7.11.Трансформирование растра.
- •Трансформация→Список опорных точек
- •Трансформация→ Трансформировать
- •8.1.Определение проекта и его параметров.
- •Просмотр→ИнфоТочки
- •8.4.Построение линейных объектов.
- •8.5.Построение полигональных(площадных) объектов
- •9.1. 1. Процедура Sub
- •9.1.2. Процедуры Function
- •9.2. Создание переменных. Типы переменных
- •9.3. Понятие об объектах 9.3.1. Использование свойств объекта
- •9.3.2. Использование методов объекта
- •9.3.3. Объявление объектных переменных
- •9.3.4. Использование объектов в выражениях
- •9.4.2. Выбор между ветвями с помощью If …Then …Else
- •9.4.3. Использование If …Then …ElseIf
- •9.4.4. Применение инструкции Select Case
- •9.5. Циклы
- •9.5.1. Конструкция Do … Loop
- •9.5.2. Конструкция For … Next
- •9.5.3. Конструкция For Each…Next
- •9.6. Массивы
- •9.6.1. Объявление массивов фиксированной длины
- •9.6.2. Динамические массивы
- •9.7. Типы данных, определяемые пользователем
- •9.7.1. Объявление нового типа
- •10. Создание макросов в AutoCad
- •10.1. Программа для привязки растра
- •10.2. Вычерчивание точек
- •10.3. Вычерчивание линий
- •10.4. Вычерчивание дуги
- •10.5. Добавление текста
- •10.6. Запись координат точек в таблицу ms Excel
- •10.7. Чтение координат точек из таблицы ms Excel
- •10.8. Запись координат точек в текстовый файл
- •10.9. Чтение координат точек из текстового файла
- •10.10. Копирование координат точек в буфер обмена
- •10.11. Создание собственных диалоговых окон
- •10.12. Создание кнопок панели инструментов с закрепленными за ними процедурами vba
- •10.13. Добавление нового меню
- •Литература
'Ввод данных
Open File "Zemuch.dat" For Input as #1
Input #1,Namisp1,Namisp2
Input #1,Gor,Zona,Kadmas
Input #1,Nkvart,Nuch
Nzap=0
i=1
Do
Input #1,Nomuch,Nmz,sobstv
j=1
Do
Input #1,Nt(j),x(j),y(j)
j=j+1
Loop while (j<=Nmz)
В данном фрагменте введены имена исполнителей (Namisp1,Namisp2), название города (Gor), кадастровые номера зоны (Zona), массива (Kadmas), квартала (Nkvart), число участков (Nuch), номер участка (Nomuch), число межевых знаков (Nmz) или точек поворота границы. Вложенным циклом Do осуществляется ввод номеров точек участка Nt, x, y. Каждый участок создается как полигон операторами Create Region Into Variable Pol 0 с использованием цикла For и оператора Alter Object Pol Node Add... .
Create Region Into Variable Pol 0
For i1=1 to Nmz
Alter Object Pol Node Add (x(i1),y(i1))
Next
Этим оператором добавляется каждая поворотная точка участка для создания географического объекта с именем Pol . Такие объекты имеют тип Object , что описано в начале программы.
После того как полигон создан, он заносится в базу данных Reestr оператором Insert Into Reestr (Obj) Values (Pol) , оператором Update Reestr Set Kadnom = Nomuch заполняется поле kadnom таблицы Reestr в записи с номером nzap.
Insert Into Reestr (Obj) Values (Pol)
nzap=nzap+1
Update Reestr Set kadnom=Nomuch
Where Rowid=nzap
Для целей отладки программы полезным является оператор Note, выдающий интересуемое сообщение, например
Note "Привет,Nuch="+str$(Nuch),
где str S ( )- функция, преобразующая тип переменной в текстовый.
Когда вся информация считана с файла Zemuch.dаt, он тоже закрывается оператором Close File 1.
i=i+1
Loop while (i<=Nuch)
Close File #1
На основе этих данных создается карта Reestr с помощью операторов Map From..., Set CoordSys..., Bounds, Browse... .
Map From Reestr
Set CoordSys Nonearth Units "m"
Bounds (4000,-1750)(5000,-1600)
Browse *From Reestr
Документом кадастра земель является чертеж границ землепользования. Он может быть построен графическими средствами MapBasic в виде объекта.
Построение отчета начинается оператором Layout. За ним следуют операторы: Position (...,...), определяющий положение верхнего левого угла отчета в окне Windows, Width , Height- задающие ширину и высоту отчета в определенных единицах (в данном случае в мм). Определяется номер окна winnum, устанавливается система координат отчета - Set CoordSys Layout Units «mm» .
Layout
Position (0,0) Units "mm"
Width 260 Units "mm"
Height 160 Units "mm"
winnum=FrontWindow()
Set CoordSys Layout Units "mm"
Далее идет заполнение самого отчета. При этом используются функции :
Create Text- создание текста ,
Font MakeFont- назначение шрифтов,
Create Line Into Window...- вычерчивание линий ,
Pen Make Pen...- определение характеристик линий .
Create Text
Into Window winnum
" Исполнительный чертеж"+Chr$(10)+
"границ землепользований в квартале №"+Str$(Nkvart)+Chr$(10)+
"кадастрового массива"+Str$(kadmas)+ "г."+Str$(Gor)
(10,20) (120,30)
Font MakeFont("Helv",1,20,Black,White)
Open File "Zemuch.dat" for Input As #1
Input #1,Namisp1,Namisp2
Input #1,Gor,Zona,Kadmas
Input #1,Nkvart,Nuch
i=1
Do
Input #1,Nomuch,Nmz,sobstv
j=1
Do
Input #1,Nomzn(j),x(j),y(j)
j=j+1
Loop While j<=Nmz
j=1
xmax(i)=x(1)
ymax(i)=y(1)
xmin(i)=x(1)
xmax(i)=x(1)
Do
If(xmax(i)-x(j))<0 then xmax(i)=x(j) End if
If(ymax(i)-y(j))<0 then ymax(i)=y(j) End if
If(xmin(i)-x(j))>0 then xmin(i)=x(j) End if
If(ymin(i)-y(j))>0 then ymin(i)=y(j) End if
j=j+1
Loop While (j<=Nmz)
i=i+1
Loop While (i<=Nuch)
xmax1=xmax(1)
ymax1=ymax(1)
xmin1=xmin(1)
ymin1=ymin(1)
i=1
Do
if(xmax1-xmax(i))<0 then xmax1=xmax(i) end if
if(ymax1-ymax(i))<0 then ymax1=ymax(i) end if
if(xmin1-xmin(i))>0 then xmin1=xmin(i) end if
if(ymin1-ymin(i))>0 then ymin1=ymin(i) end if
i=i+1
Loop While i<=Nuch
Close File #1
Open File "Zemuch.dat" for Input As #1
Input #1,Namisp1,Namisp2
Input #1,Gor,Zona,Kadmas
Input #1,Nkvart,Nuch
i=1
Do
Input #1,Nomuch,Nmz,sobstv
xc=0
yc=0
j=1
Do
Input #1,Nomzn(j),x(j),y(j)
yl(j)=(xmax1-x(j))+20+30
xl(j)=(y(j)-ymin1)+40
If(j>1) Then Create Line into Window winnum
(xl(j-1),yl(j-1))
(xl(j),yl(j))
Pen MakePen(2,12,Black)
end if
Create Text Into Window winnum
Str$(Nomzn(j))
(xl(j)+1.0,yl(j)+1.0)(xl(j)+6.0,yl(j)+6.0)
Font MakeFont("Helv",1,20,RED,White)
xc=xc+xl(j)/Nmz
yc=yc+yl(j)/Nmz
j=j+1
Loop while(j<=Nmz)
Create Line Into Window winnum
(xl(Nmz),yl(Nmz))
(xl(1),yl(1))
Pen MakePen(2,12,Black)
Create Text Into Window winnum
Str$(Nkvart)+"-"+str$(Nomuch)
(xc,yc)
(xc+10.0,yc+16.0)
Font MakeFont("Helv",1,12,BLACK,White)
i=i+1
Loop while(i<=Nuch)
Close File #1
xm=(ymax1-ymin1)
ym=(xmax1-xmin1)+50
Note "xmax1="+str$(xmax1)+"xmin1="+str$(xmin1)
Note "ymax1="+str$(ymax1)+"ymin1="+str$(ymin1)
Create Text Into Window winnum
"1:2000"
(xm/2, ym+20)
(xm/2+30,ym+25)
Font MakeFont("Helv",1,30,BLACK,White)
Create Text Into Window winnum
"В 1 см 20 м"
(xm/2-5,ym+28)
(xm/2+15,ym+33)
Font MakeFont ("Helv",1,25,BLACK,White)
Create Text Into Window winnum
"Условные обозначения"
(xm/2-20,ym+38)
(xm/2+30,ym+43)
Font MakeFont ("Helv",1,35,Black,White)
Create Line Into Window winnum
(xm/2-35,ym+70) (xm/2-20,ym+70)
Pen MakePen(2,2,BLACK)
Create Text Into Window winnum
"граница квартала"
(xm/2-19,ym+66)
(xm/2+21,ym+71)
Font MakeFont("Helv",1,20,BLACK,White)
Create Line Into Window winnum
(xm/2-35,ym+75)(xm/2-20,ym+75)
Pen MakePen (2,12,Black)
Create Text Into Window winnum
"граница землепользования"
(xm/2-19,ym+72)
(xm/2+21,ym+80)
Font MakeFont("Helv",1,20,Black,White)
Create Text
Str$(Nkvart)+"-"+Str$(Nomuch)+"шифр землепользования"
(xm/2-35,ym+85)
(xm/2+21,ym+90)
Font MakeFont("Helv",1,24,BLACK,White)
Create Text
"Установление границ землепользования"+Chr$(10)+
" в натуре произвел"+Str$(Namisp1)+
Chr$(10)+"План вычертил"+Str$(Namisp2)
(xm/2+6,ym+100)
(xm/2+40,ym+125)
Font MakeFont("Helv",1,16,BLACK,White)
End Sub
Характеристики параметров стандартных функций MapBasic описаны в справочной системе языка - Help. Ниже приводится текст процедуры «Межевание земель». Ею осуществляется создание в виде отчета плана земельного участка и вывод его характеристик: местоположения, площади, целевого назначения земель, цели предоставления; геодезических данных :дирекционных углов и длин граничных линий участка .
Процедура Mejevan начинается стандартными операторами Dim.
'Процедура Mejevan
Sub Mejevan
Dim Obl,gor,kadmas, rai,adm,adr,cnazn,cel,ogr,obr,Namisp1,Namisp2,sobstv As String
Dim Zona,Nomuch1,Nkvart,Nuch,Nomuch,Nomzn(30),Nmz,i,j1,j As Smallint
Dim Pl1,x(30),y(30),y1,dirg,diru,dirm ,s ,xc,yc As Float
Dim xl(30),yl(30),maxy ,ys,ys1 as Float
Dim obj_reg as Object
Dim Smeg(30) As String
Dim Win_num as integer
Далее строится окно диалога, которое является средством ввода данных, приведенных выше : местоположения , площади и другие . Открытие окна и его имя задается двумя операторами Dialog и Title. Имя каждого из окошек определяется набором следующих операторов: Control StaticText, Title..., Position..., Control EditText.
Оператором Position определяется положение текста. Единица измерений по горизонтали равна одной четвертой ширины буквы системного шрифта, по вертикали - одной восьмой. Оператор Width задает размер строки в четвертях ширины буквы. Например, номер участка будет начинаться с 14 позиции по горизонтали и с 1,25 позиции по вертикали (Position 56,10). Ширина строки 3 позиции (Width 12). Необязательный здесь оператор Into... присваивает введенный текст определенной переменной. Оператором Id ведется счет строк.
Пример таких реализованных в программе окон приведен на рис.1.59. Именно такими они вначале и проектируются. В заполненном виде по ходу программы они приведены на рис.1,60
Рис.13.60
Рис.13.61
Dialog
Title "Земельный участок"
Control StaticText
Title "Номер участка"
Position 5,10
Control EditText
Into Nomuch1
ID 1
Position 56,10 Width 12
Control StaticText
Title "Область"
Position 5,18
Control EditText
Into Obl
ID 2
Position 56,18 Width 70
Control StaticText
Title "Район"
Position 5,26
Control EditText
Into rai
ID 3
Position 56,26 Width 70
Control StaticText
Title "администрация"
Position 5,34
Control EditText
Into adm
ID 4
Position 65,34 Width 140
Control StaticText
Title "адрес"
Position 5,42
Control EditText
into adr
ID 4
Position 56,42 Width 140
Control StaticText
Title "Площадь участка кв.м"
Position 5,50
Control EditText
Into Pl1
ID 5
Position 100,50 Width 30
Control StaticText
Title "Основное целевое назначение земель"
Position 5,58
Control EditText
Into Cnazn
ID 6
Position 145,58 Width 100
Control StaticText
Title "Цель предоставления участка"
Position 5,66
Control EditText
Into Cel
ID 7
Position 125,66 Width 160
Control StaticText
Title "Ограничения в пользовании"
Position 5,74
Control EditText
Into Ogr
Id 8
Position 105,74 Width 100
Control StaticText
Title "Обременение правами других лиц"
Position 5,82
Control EditText
Into Obr
ID 9
Position 140,82 Width 100
В таком окне желательно разметить стандартные кнопки ОК и Отмена с помощью операторов OKButton, CancelButton.
Control OKButton
Title "OK"
Position 5,100
Control CancelButton
Title "Отмена"
Position 44,100
После этого оператором Layout программируется составление документа аналогично предыдущему в процедуре Invent.
'Отчет по участку- текстовая часть
Layout
Position (0,0)
Units "mm"
Width 160 Units "mm"
Height 260 Units "mm"
Win_num=FrontWindow()
Set CoordSys Layout Units "mm"
Create Text
Into Window Win_num
"1."+Str$(Obl)+"область"+Chr$(10)+
"2."+Str$(rai)+"район"+ Chr$(10)+
"3."+Str$(adm)+"администрация"+Chr$(10)+
"4."+Str$(adr)+Chr$(10)+
"5."+"Площадь участка кв.м."+Str$(Pl1)+Chr$(10)+
"6."+"Основное целевое назначение земель"+Str$(Cnazn)+Chr$(10)+
"7."+"Цель предоставления участка"+Str$(Cel)+Chr$(10)+
"8."+"Ограничения в пользовании"+Str$(ogr)+Chr$(10)+
"9."+"Обременение правами других лиц"+Str$(Obr)+Chr$(10)+
"10."+"Геодезические данные:"
(10,20)(90,90)
Font MakeFont("Helv",1,18,BLACK,White)
Open File "Zemuch.dat" for Input As #1
Input #1, Namisp1,Namisp2
Input #1, Gor,Zona,Kadmas
Input #1, Nkvart,Nuch
i=1
Do while (i<=Nuch)
Input #1,Nomuch,Nmz,sobstv
j=1
Do
Input #1,Nomzn(j),x(j),y(j)
Note "x(j)="+str$(x(j))
Note "y(j)="+str$(y(j))
j=j+1
Loop while(j<=Nmz)
If(Nomuch=Nomuch1) Then
Exit Do
End If
i=i+1
Loop
Create Line Into Window win_num (10,95)(50,95)
Create Text Into Window win_num
"Номера"+Chr$(10)+
"точек"
(10,97)(20,107)
Create Text Into Window win_num
"Дирекционные углы"+Chr$(10)+
"град.,мин"
(22,97)(47,112)
Create Text Into Window win_num
"Длины линий"+Chr$(10)+"в метрах"
(48,95)(68,112)
Create Line Into Window win_num
(10,113)(50,113)
j=1
y1=113
Do
j1=j+1
if j=Nmz then j1=1 end If
Note "x(j1)="+str$(x(j1))
Note "x(j)="+str$(x(j))
diru=atn((y(j1)-y(j))/(x(j1)-x(j)))
dirg=diru\1
dirm=(diru-dirg)/60
s=sqr((y(j1)-Y(j))^2+(x(j1)-x(j))^2)
y1=y1+5
Create Text Into Window win_num
Str$(Nomzn(j))
(10,y1)(50,y1)
y1=y1+5
Create Text Into Window win_num
Str$(dirg)+" "+Str$(dirm)
(22,y1)(47,y1)
Create Text Into Window win_num
Str$(s)
(48,y1)(68,y1)
j=j+1
Loop while(j<=nmz)
'Отчет по участку-План
Layout
Position (0,0) Units "mm"
Width 160 Units "mm"
Height 260 Units "mm"
win_num=FrontWindow()
Set CoordSys Layout Units "mm"
Create Text Into Window win_num
"План участка"+Chr$(10)+Str$(Obl)+":"+Str$(rai)+":"+
Str$(Gor)+":"+Str$(Zona)+":"+Str$(Kadmas)+":"+Str$(Nkvart)+":"+Str$(Nomuch)
(70,10)(130,20)
Font MakeFont("Helv",1,28,BLACK,White)
Create Text Into Window win_num
"Собственник"+Str$(sobstv)
(60,25)(140,30)
j=1
xc=0
yc=0
Do
xc=xc+x(j)
yc=yc+y(j)
j=j+1
Loop while (j<=Nmz)
xc=xc/Nmz
yc=yc/Nmz
'Create Region Into Variable obj_reg 0
j=1
Do
xl(j)=(y(j)-yc)+100
yl(j)=(x(j)-xc)+100
'Alter Object obj_reg Node Add(xl(j),yl(j))
Create Text Into Window win_num
Str$(Nomzn(j))
(xl(j)+1.0,yl(j)+1.0)(xl(j)+6.0,yl(j)+6.0)
Font MakeFont ("Helv",1,20,BLACK,White)
j=j+1
Loop While (j<=Nmz)
j=1
maxy=yl(1)
Do
If (maxy-yl(j))<0 then maxy=yl(j)
End if
j=j+1
Loop While j<=Nmz
Create Text Into Window win_num
"11.Описание смежеств"
(109,maxy+5)
(149,maxy+5)
'Ввод смежеств в диалоговом окне
j=1
Do
Dialog
Title "Смежества"
Control StaticText
Title "от"
Position 5,10
Control StaticText
Title "до"
Position 35,10
Control StaticText
Title "Смежество"
Position 5,20
Control EditText
Into Nomzn(j)
Position 12,10 Width 20
Control EditText
Into Nomzn(j+1)
Position 41,10 Width 20
Control EditText
Into Smeg(j)
Position 40,20 Width 340
Control OKButton
Title "OK"
Position 40,40
j=j+1
Loop while(j<=Nmz)
j=1
Do
ys=maxy+5*j
ys1=maxy+5*(j+1)
Create Text into Window win_num
"от"+Str$(Nomzn(j)) + "до"+Str$(Nomzn(j+1)+Smeg(j))
(109,ys)(149,ys1)
j=j+1
Loop while j<=Nmz
End Sub
Здесь строится план участка, вычисляются геодезические данные, вводятся с экрана и выводятся в отчет характеристики смежеств. Документ оформляется по стандарту.