- •Географические информационные системы
- •Порядок выполнения работы:
- •Географические информационные системы
- •Порядок выполнения работы:
- •Географические информационные системы
- •Порядок выполнения работы:
- •Географические информационные системы
- •Порядок выполнения работы:
- •Порядок выполнения работы:
- •Географические информационные системы
- •Географические информационные системы
- •Порядок выполнения работы:
- •Географические информационные системы
- •Геокодирование по адресу
- •Геокодирование по областям (границам городов, территорий, районов)
- •Грубое геокодирование
- •Порядок выполнения работы:
- •Географические информационные системы
- •Географические информационные системы
- •Географические информационные системы
- •Порядок выполнения работы:
- •Географические информационные системы
- •Порядок выполнения работы:
- •Географические информационные системы
- •Порядок выполнения работы:
- •Географические информационные системы
- •Порядок выполнения работы:
- •Географические информационные системы
- •Порядок выполнения работы:
- •Географические информационные системы
- •Порядок выполнения работы:
- •Географические информационные системы
- •Порядок выполнения работы:
- •Географические информационные системы
- •Порядок выполнения работы:
- •Географические информационные системы
- •Порядок выполнения работы:
Порядок выполнения работы:
1. Открыть таблицу RUS_OBL*.
2. Выбрать объекты – регионы РФ
3. Перебрать различные методы обобщения при комбинировании и разбивки
5. Проанализировать изменение значений
6. Выполненную работу показать преподавателю и сдать отчет на подпись.
*Папка «MapInfo_src»
МИНОБРНАУКИ РОССИИ
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«Тульский государственный университет»
Кафедра геоинженерии и кадастра
|
Утверждаю Декан горно-строительного факультета __________________ Р.А. Ковалев “____”_________________ 20___ г.
|
Методические указания к
лабораторной работе № 14
Структура программ на языке MapBasic
по дисциплине
Географические информационные системы
Направление подготовки: 120700 Землеустройство и кадастры
Профиль: «Земельный кадастр»
Форма обучения: очная, заочная
Тула 2013 г.
Цель работы:
Изучить структуру программ на языке MapBasic ГИС MapInfo.
Задачи работы
1. Написать простую программу на языке MapBasic.
2. Написать многомодульную программу на языке MapBasic.
Используемое оборудование и программное обеспечение: работы выполняются на персональных компьютерах, установленных в компьютерном классе 6/110, операционная система Windows XP SP2, программное обеспечение – офисный пакет MS Office 2003, MapInfo Professional v 4.
Теоретическая часть
Структура простой программы
Простейшая программа на MapBasic состоит из одного модуля (файл с расширением MB). В модуль записываются процедуры Sub и функции Function реализующие решение задачи. Обязательное условие, одна из процедур должна иметь имя Main, именно с выполнения этой процедуры стартует программа (рис. 1). К модулю могут подключаться файлы заголовков. Примером таких файлов может служить файл MapBasic.def. После успешной компиляции программного модуля будет сформирован исполняемый файл программы с расширением MBX.
Рис. 1. Общая схема одномодульной программы
Такая схема построения программы наиболее часто используется для реализации отдельных инструментов и небольших программ решающих некоторую локальную задачу.
Код простой задачи
Declare Sub Main
Declare Sub tst1
Sub Main
call tst1
end sub
Sub tst1
print chr$(12)
print "Тест: Простая программа"
end sub
Приведенная программа имеет блок описаний, включающий декларирование процедур, и две процедуры. Далее остается только выполнить компиляцию программы и можно запускать ее на исполнение. Результатом работы программы будет текст, выведенный в окно Сообщения.
Структура многомодульной программы
Сложные и объемные программы на MapBasic имеют многомодульную структуру. Это связано с ограничением среды MapBasic на размер модуля (64 Кбайт). Кроме того многомодульные программы легче поддерживать, а также это упрощает совместную разработку приложения.
Такая программа состоит из главного модуля, простых модулей и файла проекта. Физически модуль это текстовый файл с расширением MB а файл проекта имеет расширение MBP. Главный модуль программы отличается от простых модулей только наличием процедуры Main. Структура главного модуля практически совпадает со схемой, представленной на рис. 1. Компиляция модулей выполняется независимо друг от друга. В результате компиляции будут получены объектные модули (файлы с расширением MBO) которые впоследствии, в соответствии с файлом проекта, объединяются в исполняемый файл MBX (рис. 2).
Рассмотрим программу состоящую из четырех модулей.
Код многомодульной программы
Главный модуль Test2.mb
Include "mapbasic.def"
Declare Sub Main
Declare Sub A1
Declare Sub A2
Declare Sub B1
Declare Sub B2
Declare Sub C1
Declare Sub C2
Sub Main
print chr$(12)
call A1
call A2
call B1
call B2
call C1
call C2
end sub
Модуль A:
Include "mapbasic.def"
Declare Sub A1
Declare Sub A2
Sub A1
print "модуль А: процедура А1"
end sub
Sub A2
print "модуль А: процедура А2"
end sub
Модуль B:
Include "mapbasic.def"
Declare Sub B1
Declare Sub B2
Sub B1
print "модуль B: процедура B1"
end sub
Sub B2
print "модуль B: процедура B2"
end sub
Модуль C:
Include "mapbasic.def"
Declare Sub C1
Declare Sub C2
Sub C1
print "модуль C: процедура C1"
end sub
Sub C2
print "модуль C: процедура C2"
end sub
Рис. 2. Общая схема многомодульной программы
После компиляции этих модулей необходимо создать файл проекта Test2.mbp
.
Файл проекта
[Link]
Application=Test2.mbx
Module=Test2.mbo
Module=A.mbo
Module=B.mbo
Module=C.mbo
При этом подразумевается, что все файлы, на которые есть ссылки в проекте находятся в одной с ним папке.
Следующий шаг это сборка проекта и после сборки получаем исполняемый файл
Test2.mbx. Результат работы этой программы приведен на рис. 3.
Рис. 3. Результат выполнения программы
Возможна замена объявлений процедур в главном модуле на подключение соответствующих файлов DEF, которые и будут содержать все необходимые описания.
Include "mapbasic.def"
Include "A.def"
Include "B.def"
Include "C.def"
Declare Sub Main
Sub Main
print chr$(12)
call A1
call A2
call B1
call B2
call C1
call C2
end sub
В приведенном примере, все процедуры используются в главном модуле. Но можно использовать и другую структуру, например, использовать процедуры из модуля B в модуле A и т.д. для этого необходимо включить в модуль соответствующие объявления.
