Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







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 Subsubproc 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 AsInteger

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. Условные обозначения сделок.

Целевое назначение Число сделок Общая площадь в га
Индивидуальное жилищное строительство IGS P IGS
Личное подсобное хозяйство Lp P Lp
Другие цели Dr P Dr
Юридическим лицам – промышленные цели Yurp P Yurp
Юридическим лицам – специальные и с.х.цели Yurs P Yurs
Юридическим лицам – другие цели YurDr P YurDr

 

Таблица 13.4. Условные обозначения районов

Район Обозначение Район Обозначение
Батецкий BAT Окуловский OKUL
Боровичский BOR Парфинский PARF
Валдайский VAL Пестовский PEST
Волотовский VOL Поддорский PODD
Демянский DEM Солецкий SOL
Крестецкий KREST Старорусский STAR
Любаньский LUB Хвойнинский HVOIN
Маловишерский MAL Холмский HOLM
Маревский MAR Чудовский CHUD
Мошенской MOS Шимский SHIM
Новгородский NOVG    

 

Соответствующие данные о сделках в среде Excel приведены на рис.13.62

 

Рис.13.62

Порядок решения поставленной задачи может быть следующим.

  1. Открывается Excel-таблица статистических данных.
  2. Эта таблица преобразуется в файл формата DBF. Назовем ее статистической
  3. В среде MapInfo создается карта административных районов с таблицей

Районы. Для работы они должны быть открытыми.

  1. Объединяются статистическая таблица(DBF-файл) с таблицей Районы в следующем порядке.

4.1. В MapInfo открывается статистическая таблица(DBF-файл), которая становится уже статистической таблицей MapInfo .

4.2. Осуществляется объединение таблиц по общему атрибуту(полю).

  1. По объединенной таблице строится тематическая карта.

Здесь рассматривается усложненный вариант задачи. В более простых случаях

.статистическая таблица может создаваться непосредственно в 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

 









Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2019 zdamsam.ru Размещенные материалы защищены законодательством РФ.