|
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
Здесь строится план участка, вычисляются геодезические данные, вводятся с экрана и выводятся в отчет характеристики смежеств. Документ оформляется по стандарту.
Понятие об интегрированной среде MapBasic. Интегрированная среда во многом напоминает среду других языков. В меню File осуществляются стандартные операции создания файла, открытия, закрытия, печати и т.д. В меню Edit осуществляется редактирование mb -файла, т.е. отмену последнего действия, вырезку выбранного текста в буфер обмена, копирование выбранного текста в буфер обмена, вставку из буфера, удаление выделенного текста, выделение всего текста. В меню Search осуществляется: поиск заданной текстовой строки, замена, установление следующей ошибки и предыдущий переход к строке. В меню Project осуществляется выбор файла диалога, компилирование файла, сборку проекта, программы, вывод информации о программе, вывод сообщений об отменах. Меню Window осуществляет разложение окон так, чтобы они все были видны, наложение окон друг на друга, перестановку окошек, соответствующих минимизированным окнам, устанавливается стиль текста. Меню Help выполняет те же функции, что и в других языках: справка по всем вопросам программирования. В MapBasic cтандартные расширения относятся соответственно: mb – к исходному тексту на языке MapBasic, mbx – к выполняемому (откомпилированному) файлу, mbo – к файлу, создаваемому при сборке программы из нескольких модулей (обьектному файлу), err – список сообщений об ошибках, полученный при компиляции программы, записанной на диск
Особенности языка MapBasic в среде Windows.
А) Объявление и использование динамических библиотек. Динамические библиотеки – Dynamic Link Library, DLL- объявляются, по аналогии с процедурами, так: Declare Sub subproc Lib "filename" [ Alias "subalias"] [([Byval] parameter As vartype [,…]). Пример. Declare Sub mydll Lib "c:\dlls\mydll.dll"(ByVal x As integer, Byval y As integer). Вызов этой процедуры делается обычным образом: Call mydll(78,234).
Б) Обмен между программами Windows. Обмен данными между программами Windows поддерживается протоколом Dynamic Data Exchange или DDE. Если МapBasic- программа обращается к другой программе, то она называется клиентом, а другая программа – сервером. Пример. Пусть сервером будет стандартный пакет EXCEL. Тогда обращение к нему от MapBasic можно иллюстрировать так: Dim i As Integer i= DDEInitiate ("EXCEL","Sheet1") DDEPoke i, "R1C5","Привет от Mapinfo" В этом примере протокол DDE-обмена открывается обязательной функцией DDEInitiate, где в качестве параметров выступают: название пакета - EXCEL и название рабочей таблицы – Sheet1. Функцией DDEPoke в ячейку R1C5 таблицы запишется – Привет от Mapinfo. Если MapBasic-программа является сервером, то обращение к ней осуществляется стандартными средствами других программ- клиентов. Более подробную информацию о работе Mapbasic в Windows можно найти в справочном меню – Help.
В) Конвертирование данных. Конвертирование данных в формат MapInfo осуществляется оператором Register Table… Если,например, файл "datfile1" является источником, а файл "datfile2" – файлом назначения, то конвертирование данных ASCII-файла "datfile1" в формат MapInfo т.е. в таблицу "datfile2" осуществится так: Register Table datfile1 Type "ASCII" Delimiter 32 Into datfile2 Здесь 32 – код разделителя. Более подробную информацию можно найти в справочнике MapBasic.
Практическое применение ГИС MapInfo в кадастровых целях
Постановка задачи. В качестве реального примера выполним анализ сделок с земельными участками по административным районам Новгородской области с 2001 по 2005 годы с построением соответствующей тематической карты. В данном случае приняты условные обозначения, приведенные в табл.13.3-13.4. Таблица13.3. Условные обозначения сделок.
Таблица 13.4. Условные обозначения районов
Соответствующие данные о сделках в среде Excel приведены на рис.13.62
Рис.13.62 Порядок решения поставленной задачи может быть следующим.
Районы. Для работы они должны быть открытыми.
4.1. В MapInfo открывается статистическая таблица(DBF-файл), которая становится уже статистической таблицей MapInfo. 4.2. Осуществляется объединение таблиц по общему атрибуту(полю).
Здесь рассматривается усложненный вариант задачи. В более простых случаях .статистическая таблица может создаваться непосредственно в MapInfo. При этом может и не возникать задача соединения таблиц. Решение задачи по порядку. 1.Открывается Excel-таблица статистических данных. 2. Приведенный на рис.13.62 файл необходимо в среде Excel преобразовать в формат DBF4 (dBASEIV) по команде Файл →Сохранить как→Тип файла DBF4 (dBASEIV) →Сохранить. 3. Рассмотренными ранее средствами выполненная в среде Mapinfo карта районов приведена на рис.13.63. В Mapinfо она хранится в виде рабочего набора Районы.Wor Рис.13.63
4. Осуществляется объединение таблиц Для этого необходимо передать данные из таблицы Excel (рис.13.62) в таблицу «Районы Список» (рис.13.63) и средствами Mapinfo построить тематическую карту состояния земельного рынка. Все эти действия выполняются в среде Mapinfo. Для этого по команде Файл →Открыть таблицу, тип файла - dbf(dBASEIV) → Представление Списком (рис.13.64) →Открыть открыть файл «за 2001-2005 года» Рис.13.64 Рис.13.65 Подтвердить необходимость построения таблицы (рис.13.64), набор символов (рис.13.65) Рис.13.66
В результате будет выведена таблица формата Mapinfo. «за 2001 -2005года Список»(рис.13.67), которая будет использована в
Рис.1.67.
тематическом картографировании. Важная задача сейчас – объединить две таблицы: «Районы Список» и «за 2001 -2005года Список». Для этого по команде Таблица→Обновить колонку в окне Обновить колонку(рис.13.68) заполняем поля: Обновить таблицу –выбрать «Районы», Значения извлечь из – выбрать «за 2001 -2005 года», для – выбрать Igs, Вычислить – выбрать Значение. Обновить колонку – выбрать Добавить новую временную колонку. Нажать Объединить. При появлении сообщения MapInfo о невозможности автоматического объединения нажать ОК. Появится окно Объединение(рис.13.69), в котором заполняются имена идентичных колонок: «НазваниеРайона» и «Ray». Нажать ОК. Осуществится возврат в окно «Обновить колонку», в нем необходимо отметить «Результат в список» и нажать ОК В итоге появится обновленная таблица Районы Список:2, в которой уже будет новая колонка – Igs(рис.13.70). Старую таблицу Районы Список:1 –закрыть.
Рис.13.68
Рис.13.69 Рис.13.70 Поскольку для статистического анализа необходимы данные всех столбцов таблицы «за 2001 -2005 года», то по описанному алгоритму (рис.13.68-13.70) необходимо выполнить последовательное объединение по остальным столбцам этой таблицы, закрывая предыдущие таблицы Так, выполнив описанные действия для Lp вместо Igs получим пополненную таблицу (рис.13.71). Выполнив аналогичные действия для Dr,Yur p, Yur s, Yur dr получим окончательную таблицу(рис.13.72) Рис.13.71. Рис.13.72 5. Теперь по данным объединенной таблицы построим тематическую карту. По команде Карта → Создать тематическую карту войти в окно Создание тематической карты (рис.13.73). Выбирается тип карты – например Столбчатая картодиаграмма, стандартная. Нажимается Далее. В окне Создание тематической карты Шаг 2 из 3 устанавливается таблица Районы, выделяются последовательно поля из этой таблицы и нажатием добавить переносятся в окно Поля для диаграммы (рис.13.74). После нажатия Далее вокне Создание тематической карты Шаг 3 из 3 устанавливается порядок в легенде – возрастание (рис.13.75). При необходимости можно править стиль и легенду. После нажатия ОК появляется тематическая карта сделок с земельными участками (рис.13.76) Рис.13.73
Рис.13.74 Рис.13.75 Рис.13.76
ЧТО ПРОИСХОДИТ, КОГДА МЫ ССОРИМСЯ Не понимая различий, существующих между мужчинами и женщинами, очень легко довести дело до ссоры... Что вызывает тренды на фондовых и товарных рынках Объяснение теории грузового поезда Первые 17 лет моих рыночных исследований сводились к попыткам вычислить, когда этот... ЧТО ТАКОЕ УВЕРЕННОЕ ПОВЕДЕНИЕ В МЕЖЛИЧНОСТНЫХ ОТНОШЕНИЯХ? Исторически существует три основных модели различий, существующих между... Система охраняемых территорий в США Изучение особо охраняемых природных территорий(ООПТ) США представляет особый интерес по многим причинам... Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:
|