Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мой крус,гис(5 курс).doc
Скачиваний:
7
Добавлен:
20.12.2018
Размер:
1.98 Mб
Скачать

Перечень ссылок

  1. Электронный научный журнал «Вестник Омского государственного педагогического университета» Выпуск 2006 [Електронний ресурс] – Режим доступу: http://www.omsk.edu/article/vestnik-omgpu-121.pdf

  2. Геоинформационная система - Википедия [Електронний ресурс] – Режим доступу: http://ru.wikipedia.org/wiki

  3. Информационные системы – тема 1 [Електронний ресурс] – Режим доступу:http://www.tspu.tula.ru/ivt/old_site/umr/infosystem_net/lek/lek01. htm

  4. Объекты в модели данных ГИС [Електронний ресурс] – Режим доступу: http://www.kadastromega.ru/node/81

ПРИЛОЖЕНИЯ

Приложение а Листинг программы

Include "MAPBASIC.DEF"

Include "MENU.DEF"

Include "icons.DEF"

Dim id As Integer

Dim id2 As Integer

Dim count As Integer

Dim i As Integer

Dim mas(10) As String

Declare Sub main

Declare Sub WinClosedHandler

Declare Sub WinChangedHandler

Declare Sub open_files

Declare Sub close_files

Declare Sub finder

Declare Sub ok_click

Declare Sub exit

Declare Sub zapr1

Declare Sub zapr2

Declare Sub zapr3

Declare Sub zapr4

Declare Sub zapr5

Declare Sub zapr6

Declare Sub zapr7

Declare Sub zapr8

Declare Sub zapr9

Declare Sub zapr10

Global s1 as float

sub main

Create Menu "Запрос" As

"(Запрос1" Calling zapr1,

"(Запрос2" Calling zapr2,

"(Запрос3" Calling zapr3,

"(Запрос4" Calling zapr4,

"(Запрос5" Calling zapr5,

"(Запрос6" Calling zapr6,

"(Запрос7" Calling zapr7,

"(Запрос8" Calling zapr8,

"(Запрос9" Calling zapr9,

"(Запрос10" Calling zapr10

Create Menu "Menu" As

"Загрузить" +Chr$(9)+"Ctrl+O/W^O" Calling open_files,

"(-",

"(Выгрузить" Calling close_files,

"(-",

"(Поиск" Calling finder,

"(-",

"Запросы" as "Запрос",

"(-",

"Exit" Calling exit

Alter Menu Bar Add "Menu"

Create ButtonPad "Tool" As

PushButton

Icon MI_ICON_OPEN_FILE

Calling open_files

HelpMsg "Загрузить"

Show

Alter ButtonPad "Tool"

Add PushButton

Icon MI_ICON_SAVE_FILE

Calling close_files

HelpMsg "Выгрузить"

Show

Alter ButtonPad "Tool"

Add PushButton

Icon MI_ICON_ARROW_9

Calling finder

HelpMsg "Поиск"

Show

Alter ButtonPad "Tool"

Add PushButton

Icon MI_ICON_UNDO

Calling exit

HelpMsg "Выход"

Show

end sub

'---------------------------------------------------------------------

Sub WinClosedHandler

note "Закрытие окна"

end sub

'---------------------------------------------------------------------

Sub WinChangedHandler

id2=CommandInfo(CMD_INFO_WIN)

Set Handler WinChangedHandler On

if (id=id2)

then

if MapperInfo(id2,MAPPER_INFO_LAYERS)>count

then

note "Добавляется слой"

count=count+1

end if

for i=1 to count

if LayerInfo(id2, i, LAYER_INFO_NAME)<>mas(i)

then

note "Изменился порядок слоёв"

mas(i)=LayerInfo(id2, i, LAYER_INFO_NAME)

end if

Next

end if

End Sub

'---------------------------------------------------------------------

Sub open_files

Open Table "Tablica.TAB" as Tablica

Open Table "Odessa.TAB" as Odessa

Open Table "Od.TAB" as Od

Map from Tablica,Odessa,Od

id =FrontWindow()

count=MapperInfo(id, MAPPER_INFO_LAYERS)

for i=1 to count

mas(i)=LayerInfo(id, i, LAYER_INFO_NAME)

Next

Alter Menu Item open_files Disable

Alter Menu Item close_files Enable

Alter Menu Item finder Enable

Alter Menu Item zapr1 Enable

Alter Menu Item zapr2 Enable

Alter Menu Item zapr3 Enable

Alter Menu Item zapr4 Enable

Alter Menu Item zapr5 Enable

Alter Menu Item zapr6 Enable

Alter Menu Item zapr7 Enable

Alter Menu Item zapr8 Enable

Alter Menu Item zapr9 Enable

Alter Menu Item zapr10 Enable

End Sub

'---------------------------------------------------------------------

Sub close_files

Close Table Tablica

Close Table Odessa

Close Table Od

Alter Menu Item open_files Enable

Alter Menu Item close_files Disable

Alter Menu Item finder Disable

Alter Menu Item zapr1 Disable

Alter Menu Item zapr2 Disable

Alter Menu Item zapr3 Disable

Alter Menu Item zapr4 Disable

Alter Menu Item zapr5 Disable

Alter Menu Item zapr6 Disable

Alter Menu Item zapr7 Disable

Alter Menu Item zapr8 Disable

Alter Menu Item zapr9 Disable

Alter Menu Item zapr10 Disable

end sub

'---------------------------------------------------------------------

'процедура поиска

sub finder

Dialog

Title "Поиск отелей по названию"

Control StaticText

Title "Найти:"

control EditText

ID 1

Control OKButton

Calling ok_click

Control CancelButton

End sub

'---------------------------------------------------------------------

sub ok_click

Dim ls_val As String

ls_val = ReadControlValue(1)

Select *

From Tablica

Into Rezult_of_search

where Consulstvo = ls_val

Open Table "Odessa.TAB" as Odessa

Open Table "Od.TAB" as Od

Map From Rezult_of_search,Odessa,Od

End Sub

'-----------------------------------------------------------------

Sub exit

Alter Menu Bar Remove "Menu"

End Program

End sub

'--------запрос 1----------------------

sub zapr1

select *

from hotels

Into One

where type="отель"

browse * from one

End sub

'--------запрос 2----------------------

sub zapr2

Select *from hotels Into Two where telephone<1000000

End sub

'--------запрос 3----------------------

sub zapr3

Select *

from hotels

Into Three

where Etaz>2

End sub

'--------запрос 4----------------------

sub zapr4

Select *from hotels Into Four where adress = "Дмитрия Донского, 7"

End sub

'--------запрос 5----------------------

sub zapr5

select *

from otel

Into five

where Type="гостиница"

End sub

'--------запрос 6----------------------

sub zapr6

select *

from hotels

Into six

Where Raion="Kievskii"

End sub

'--------запрос 7----------------------

sub zapr7

select *

from gotel

into seven

where adress=Like( adress, "Екатериненская%", "" )

Fetch first from seven

End sub

'--------запрос 8----------------------

sub zapr8

Set CoordSys Earth

Projection 9,7,"m",-96.0,23.0,20.0, 60.0, 0.0, 0.0

Dim dist, start_x, start_y, end_x, end_y As Float

select *

from hotels

into eight

where adress ="Долгая, 106"

start_x = CentroidX(hotels.obj)

start_y = CentroidY(hotels.obj)

select *

from hotels

into eight

where adress ="Посмитного, 1"

end_x = CentroidX(hotels.obj)

end_y = CentroidY(hotels.obj)

dist = CartesianDistance(start_x,start_y,end_x,end_y,"km")

Note "Расстояние между гостиницей Улисс Долгая, 106 и гостиницей Аркадия плаза Посмитного, 1:= " +dist+" киллометров"

End sub

'--------запрос 9----------------------

sub zapr9

Dim x1,y1 as float

select *

from hotels

into Temp

where Nazvanie ="Улисс"

X1 = CentroidX(Temp.obj)

Y1 = CentroidY(Temp.obj)

select Nazvanie, Distance(CentroidX(hotels.obj),CentroidY(hotels.obj),X1,Y1,"km")

from hotels

into nine

where Distance(CentroidX(hotels.obj),CentroidY(hotels.obj),X1,Y1,"km")

Group By Nazvanie

End sub

'--------запрос 10---------------------

sub zapr10

Dim x,y as float

select *

from hotels

into Temp

where Nazvanie ="Улисс"

X = CentroidX(Temp.obj)

Y = CentroidY(Temp.obj)

select Nazvanie, Distance(CentroidX(hotels.obj),CentroidY(hotels.obj),X,Y,"km")

from hotels

into Ten

where Distance(CentroidX(hotels.obj),CentroidY(hotels.obj),X,Y,"km")<5

Group By Nazvanie

End sub

'-----------------------------------------------------------------

Приложение Б Геонформационая база отелей города Одесса

Рисунок Б.1 – Геонформационая база отелей города Одесса

Приложение В Встроенный пункт меню

Рисунок В.1 – Встроенный пункт меню

Приложение Г Редактирование слоя

Рисунок Г.1 – Добавление нового слоя

Рисунок Г.2 – Изменение порядка слоев

Рисунок Г.3 – Закрытие окна

Приложение Д Результат выполнения запросов

Рисунок 1. Отели города Одессы

Запрос 2. Вывести все гостиницы, у которых шестизначные номер телефона

Рисунок 2. Гостиницы с шестизначным номером телефона

Запрос 3. Вывести все гостиници с этажностью больше 2

Рисунок 3. Все гостиници свыше двух этажей

Запрос 4. Вывести гостиницу по адресу Дмитрия Донского, 7

Рисунок 4. Гостиница по адресу Дмитрия Донского, 7

Запрос 5. Вывести все Гостиницы

Рисунок 5. Все гостиницы города Одессы

Запрос 6. Вывести все гостиницы в районе Киевский

Рисунок 6. Гостиницы Киевского района города Одессы

Запрос 7. Вывести все гостиницы которые находятся на улице Екатерининская

Рисунок 7. Гостиницы которые находятся на улице Екатерининская

Запрос 8. Вывести Расстояние между гостиницей «Улисс» Долгая, 106 и гостиницей «Аркадия плаза» Посмитного, 1

Рисунок 8. расстояние между двумя гостиницами

Запрос 9. Вывести расстояние всех гостиниц от гостиницы «Улисс»

Рисунок 9.Расстояние всех гостиниц от гостиницы «Улисс»

Запрос 10. Вывести все гостиницы в радиусе 5 км. от гостницы «Улисс»

Рисунок 10. все гостиницы в радиусе 5 км. от гостницы «Улисс»