Автор работы: Пользователь скрыл имя, 06 Января 2013 в 23:20, реферат
Цель работы – анализ методов информационной визуализации и визуального анализа и применение их для разработки прототипа системы поддержки конечного пользователя.
В процессе работы проводился анализ возможностей географических информационных систем как средств визуализации и анализа данных, исследовались различные методы представления географических и семантических данных.
Основой формы является объект класса 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- Передвижение карты внутри добавленного на форму элемента
ЗАКЛЮЧЕНИЕ
В заключении мы хотим описать поставленную нами задачу визуализации информационной системы городской среды и информационной поддержки пользователей. Основной идеей была послойная организация географических и семантических данных на электронной карте. Вывод данных производится в зависимости от масштаба, установленных фильтров и настроек. Разработан прототип программы, реализующий нашу идею. Программа представляет из себя геоинформационную систему с электронной картой части Екатеринбурга и инструментарием по работе с ней. Реализованы следующие возможности:
На следующем этапе
необходимы консультации со специалистами,
занимающимися торговлей
ПРИЛОЖЕНИЕ А
Класс 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);
Информация о работе Разработка специализированной системы визуализации и анализа городской среды