Разработка специализированной системы визуализации и анализа городской среды
Реферат, 06 Января 2013, автор: пользователь скрыл имя
Краткое описание
Цель работы – анализ методов информационной визуализации и визуального анализа и применение их для разработки прототипа системы поддержки конечного пользователя.
В процессе работы проводился анализ возможностей географических информационных систем как средств визуализации и анализа данных, исследовались различные методы представления географических и семантических данных.
Вложенные файлы: 1 файл
Tekst.docx
— 2.90 Мб (Скачать файл)
8.3. Окно печати. Форма «MyLayoutForm»
Основой формы является объект класса LayoutForm библиотеки MapWindow. В этой главе опишем основные процедуры и функции, обеспечивающие полноценную работу данного объекта. Большинство из них реализованы в библиотеке, но некоторые были доработаны и изменены, для обеспечения нужной функциональности.
public void NewLayout – создание новой печатной формы.
public void LoadLayout – загрузка существующей печатной формы, сохраненной ранее.
public void SaveLayout – сохранение текущей печатной формы.
public void Print – Печать текущей формы
public void ZoomIn – Увеличение масштаба печатной формы
public void ZoomOut –Уменьшение масштаба печатной формы
public void ZoomFitToScreen- Изначальный масштаб печатной формы
public void ZoomInMap- Увеличение масштаба выбранного фрагмента карты
public void ZoomOutMap- Уменьшение масштаба выбранного фрагмента карты
public void ZoomFullExtentMap- Максимальный масштаб выбранного фрагмента карты, полное отображение слоя.
public void ZoomFullViewExtentMap- Начальный масштаб выбранного фрагмента карты
public void PanMap- Передвижение карты внутри добавленного на форму элемента
ЗАКЛЮЧЕНИЕ
В заключении мы хотим описать поставленную нами задачу визуализации информационной системы городской среды и информационной поддержки пользователей. Основной идеей была послойная организация географических и семантических данных на электронной карте. Вывод данных производится в зависимости от масштаба, установленных фильтров и настроек. Разработан прототип программы, реализующий нашу идею. Программа представляет из себя геоинформационную систему с электронной картой части Екатеринбурга и инструментарием по работе с ней. Реализованы следующие возможности:
- Поиск объекта по адресу, а так же поиск групп объектов по заданным параметрам (через систему запросов).
- Измерение расстояния между объектами, их площади.
- Печать фрагментов карты.
- Фильтрация отображающихся объектов на карте.
- Просмотр и анализ транспортной инфраструктуры города (уровень пробок, движение общественного транспорта).
На следующем этапе
необходимы консультации со специалистами,
занимающимися торговлей
- Использование реальных географических карт, связь с координатами.
- Возможность пользователю самостоятельно создавать и редактировать объекты.
ЛИТЕРАТУРА
- А.А. Питенко – Нейросетевой анализ в геоинформационных системах, диссертация, Красноярск, 2010г.
- http://geofizic.ru
- www.dataplus.ru
- http://www.gis-tech.ru/
- Андрианов В.- Гис для бизнеса, статься журнала ArcReview №1 (12) 2000г.
- Андрианов В. – ГИС на транспорте, статься журнала ArcReview №1 (24) 2003г.
- http://www.yaprobki.ru/
- Авербух В.Л. – конспект лекций по спецкурсу «Визуализация программного обеспечения», Уральский Государственный Университет им. А.М.Горького, г.Екатеринбург, 2010г.
- http://ru.wikipedia.org/wiki/
C_Sharp - Белков А.В. , Грызлова Т.П. , Шаров В.Г. – Проблемы и методы построения эффективных визуальных информационных систем, статья журнала «Програмные продукты и системы», выпуск №3 за 2002г.
- Смирнов Н.В. – конспект лекций «Проектирование информационных систем», Балтийский Государственный Технический Университет, С.Петербург, 2008г.
- Гохман В. – Общегородские ГИС, статья журнала ArcReview № 3 (46) 2008г.
- Скатерщиков С. – ГИС в градостроительном проектировании и управлении территориями, статья журнала ArcReview №3 (18) 2001г.
- Андрианов В. – ГИС в торговле и сфере услуг, статья журнала ArcReview № 4 (35) 2005г.
- Luo Yingwei, Wang Xiaolin, Xu Zhuoqun - Gis Components And Map Visualization Objects, Dept. of Computer Science and Technology, Peking University, Beijing, P.R.China, 100871
- Hui Lin, Zhu Qing - Data Visualization: Virtual Geographic Environments combining AEC and GIS, статья журнала « Directions Magazine», 2004г.
ПРИЛОЖЕНИЕ А
Класс MainForm
public MainForm()
{
InitializeComponent();
map.MapFunctions.Add("
map.MapFunctions.Add("
map.MapFunctions.Add("
map.MapFunctions.Add("
map.FunctionMode = FunctionModes.None;
}
private void MainForm_Load(object sender, EventArgs e)
{
loadform lf = new loadform();
fi = new Icons();
lf.Show();
loadCity();
lf.loadbar.Value = 10;
loadRaion();
lf.loadbar.Value = 20;
loadMainStreet();
lf.loadbar.Value = 40;
loadBigStreet();
lf.loadbar.Value = 60;
loadStreets();
lf.loadbar.Value = 80;
loadBuildings();
loadSvetofor();
loadPeshehod();
loadPlaces();
lf.loadbar.Value = 100;
loadIcons();
lf.Close();
InvisibleLayers();
editTrue();
City.IsVisible = true;
selectedFalse();
City.SelectionEnabled = true;
road_scheme_create();
MainStreetTraff.IsVisible = false;
MainStreetIco.IsVisible = false;
Svetofor.IsVisible = false;
Peshehod.IsVisible = false;
Places.IsVisible = false;
map.Invalidate();
Rectangle r = map.MapFrame.View;
int w = r.Width;
int h = r.Height;
r.Inflate((int)(r.Width / 4), (int)(r.Height / 4));
map.MapFrame.View = r;
map.MapFrame.ResetExtents();
}
public void road_scheme_create()
{
road_vih1 = new LineScheme();
road_vih2 = new LineScheme();
road_vih3 = new LineScheme();
road_bud1 = new LineScheme();
road_bud2 = new LineScheme();
road_bud3 = new LineScheme();
Color color1 = Color.FromArgb(86, 255, 66);
Color color2 = Color.FromArgb(251, 251, 36);
Color color3 = Color.FromArgb(242, 177, 57);
Color color4 = Color.FromArgb(242, 55, 57);
LineCategory traff11 = new LineCategory(color1, 4);
traff11.FilterExpression = "[vih1] < 3";
LineCategory traff12 = new LineCategory(color2, 4);
traff12.FilterExpression = "[vih1] >= 3";
LineCategory traff13 = new LineCategory(color3, 4);
traff13.FilterExpression = "[vih1] >= 6";
LineCategory traff14 = new LineCategory(color4, 4);
traff14.FilterExpression = "[vih1] >= 8";
road_vih1.ClearCategories();
road_vih1.AddCategory(traff11)
road_vih1.AddCategory(traff12)
road_vih1.AddCategory(traff13)
road_vih1.AddCategory(traff14)
LineCategory traff21 = new LineCategory(color1, 4);
traff21.FilterExpression = "[vih2] < 3";
LineCategory traff22 = new LineCategory(color2, 4);
traff22.FilterExpression = "[vih2] >= 3";
LineCategory traff23 = new LineCategory(color3, 4);
traff23.FilterExpression = "[vih2] >= 4";
LineCategory traff24 = new LineCategory(color4, 4);
traff24.FilterExpression = "[vih2] >= 5";
road_vih2.ClearCategories();
road_vih2.AddCategory(traff21)
road_vih2.AddCategory(traff22)
road_vih2.AddCategory(traff23)
road_vih2.AddCategory(traff24)
LineCategory traff31 = new LineCategory(color1, 5);
traff31.FilterExpression = "[vih3] < 3";
LineCategory traff32 = new LineCategory(color2, 5);
traff32.FilterExpression = "[vih3] >= 3";
LineCategory traff33 = new LineCategory(color3, 5);
traff33.FilterExpression = "[vih3] >= 6";
LineCategory traff34 = new LineCategory(color4, 5);
traff34.FilterExpression = "[vih3] >= 8";
road_vih3.ClearCategories();
road_vih3.AddCategory(traff31)
road_vih3.AddCategory(traff32)
road_vih3.AddCategory(traff33)
road_vih3.AddCategory(traff34)
LineCategory traff41 = new LineCategory(color1, 4);
traff41.FilterExpression = "[bud1] < 3";
LineCategory traff42 = new LineCategory(color2, 4);
traff42.FilterExpression = "[bud1] >= 3";
LineCategory traff43 = new LineCategory(color3, 4);
traff43.FilterExpression = "[bud1] >= 6";
LineCategory traff44 = new LineCategory(color4, 4);
traff44.FilterExpression = "[bud1] >= 8";
road_bud1.ClearCategories();
road_bud1.AddCategory(traff41)
road_bud1.AddCategory(traff42)
road_bud1.AddCategory(traff43)
road_bud1.AddCategory(traff44)
LineCategory traff51 = new LineCategory(color1, 4);
traff51.FilterExpression = "[bud2] < 3";
LineCategory traff52 = new LineCategory(color2, 4);
traff52.FilterExpression = "[bud2] >= 3";
LineCategory traff53 = new LineCategory(color3, 4);
traff53.FilterExpression = "[bud2] >= 6";
LineCategory traff54 = new LineCategory(color4, 4);
traff54.FilterExpression = "[bud2] >= 8";
road_bud2.ClearCategories();
road_bud2.AddCategory(traff41)
road_bud2.AddCategory(traff42)
road_bud2.AddCategory(traff43)
road_bud2.AddCategory(traff44)
LineCategory traff61 = new LineCategory(color1, 4);
traff61.FilterExpression = "[bud1] < 3";
LineCategory traff62 = new LineCategory(color2, 4);
traff62.FilterExpression = "[bud1] >= 3";
LineCategory traff63 = new LineCategory(color3, 4);
traff63.FilterExpression = "[bud1] >= 6";
LineCategory traff64 = new LineCategory(color4, 4);
traff64.FilterExpression = "[bud1] >= 8";
road_bud3.ClearCategories();
road_bud3.AddCategory(traff41)
road_bud3.AddCategory(traff42)
road_bud3.AddCategory(traff43)
road_bud3.AddCategory(traff44)
}
private void selectedFalse()
{
for (int i = 0; i < mapLayers.Count; i++)
{
mapLayers[i].SelectionEnabled = false;
}
}
private void editFalse()
{
for (int i = 0; i < mapLayers.Count; i++)
{
mapLayers[i].EditMode = false;
}
}
private void editTrue()
{
for (int i = 0; i < mapLayers.Count; i++)
{
mapLayers[i].EditMode = true;
}
}
private void InvisibleLayers()
{
for (int i = 0; i < mapLayers.Count; i++)
{
mapLayers[i].IsVisible = false;
}
}
private void loadCity()
{
Color color1 = Color.FromArgb(250, 240, 145);
PolygonSymbolizer style = new PolygonSymbolizer(color1);
style.OutlineSymbolizer = new LineSymbolizer(Color.Black, 2);
City = map.Layers.Add (DataManager.
(@"GisData\City.shp", false, prog));
preview = map1.Layers.Add(DataManager.
(@"GisData\City.shp", false, prog));
preview.Symbolizer = style;
mapLayers.Add(City);
IMapLabelLayer labelLayer = new MapLabelLayer();
lb = new LabelSymbolizer();
lb.FontSize = 15;
lb.FontStyle = FontStyle.Bold;
lb.FontFamily = "Arial";
ILabelCategory category = labelLayer.Symbology.
category.Expression = "[name]";
labelLayer.Symbolizer = lb;
category.Symbolizer.
City.LabelLayer = labelLayer;
City.ShowLabels = true;
City.Symbolizer = style;
}
private void CityAsImage()
{
City.IsVisible = true;
City.SelectionEnabled = false;
City.EditMode = false;
City.ShowLabels = false;
}
public void loadRaion()
{
scheme = new PolygonScheme();
Color color1 = Color.FromArgb(250, 240, 145);
PolygonCategory pop1 = new PolygonCategory(color1, Color.Black, 2);
pop1.FilterExpression = "[population] < 150000";
Color color2 = Color.FromArgb(250, 230, 90);
PolygonCategory pop2 = new PolygonCategory(color2, Color.Black, 2);
pop2.FilterExpression = " [population] > 150000 ";
Color color3 = Color.FromArgb(240, 215, 10);
PolygonCategory pop3 = new PolygonCategory(color3, Color.Black, 2);
pop3.FilterExpression = " [population] > 200000 ";
Color color4 = Color.FromArgb(215, 190, 5);
PolygonCategory pop4 = new PolygonCategory(color4, Color.Black, 2);
pop4.FilterExpression = " [population] > 250000 ";
scheme.ClearCategories();
scheme.AddCategory(pop1);
scheme.AddCategory(pop2);
scheme.AddCategory(pop3);
scheme.AddCategory(pop4);
scheme2 = new PolygonScheme();
PolygonCategory pop12 = new PolygonCategory(color1, Color.Black, 2);
pop12.FilterExpression = "[area] < 3";
PolygonCategory pop22 = new PolygonCategory(color2, Color.Black, 2);
pop22.FilterExpression = " [area] > 2 ";
PolygonCategory pop32 = new PolygonCategory(color3, Color.Black, 2);
pop32.FilterExpression = " [area] > 3 ";
PolygonCategory pop42 = new PolygonCategory(color4, Color.Black, 2);
pop42.FilterExpression = " [area] > 5 ";
scheme2.ClearCategories();
scheme2.AddCategory(pop12);
scheme2.AddCategory(pop22);
scheme2.AddCategory(pop32);
scheme2.AddCategory(pop42);
Raions = map.Layers.Add(DataManager.
(@"GisData\Raion.shp", false, prog));
mapLayers.Add(Raions);