- •Введение
- •Этапы разработки интегрированной информационной системы
- •Модели данных гис
- •Разработка справочной информационной гис
- •Постановка задачи
- •Разработка и описание геоинформационной базы
- •3.3 Разработка запросов к геобазе
- •3.4 Описание интерфейса
- •Инструкция пользователя
- •Перечень ссылок
- •Приложение а Листинг программы
Перечень ссылок
-
Электронный научный журнал «Вестник Омского государственного педагогического университета» Выпуск 2006 [Електронний ресурс] – Режим доступу: http://www.omsk.edu/article/vestnik-omgpu-121.pdf
-
Геоинформационная система - Википедия [Електронний ресурс] – Режим доступу: http://ru.wikipedia.org/wiki
-
Информационные системы – тема 1 [Електронний ресурс] – Режим доступу:http://www.tspu.tula.ru/ivt/old_site/umr/infosystem_net/lek/lek01. htm
-
Объекты в модели данных ГИС [Електронний ресурс] – Режим доступу: 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 км. от гостницы «Улисс»