Дипломная работа





НазваниеДипломная работа
страница20/20
Дата публикации24.11.2014
Размер0.9 Mb.
ТипДиплом
100-bal.ru > Информатика > Диплом
1   ...   12   13   14   15   16   17   18   19   20

public MyFeatureIdentifier()

{

InitializeComponent();

}

public void Add(IFeatureLayer layer, IFeature f)

{

if (f == null) return;

DataTable dt = new DataTable();

dt.Columns.Add("Field Name");

dt.Columns.Add("Value");
if (f.DataRow == null)

{

f.ParentFeatureSet.FillAttributes();

}

DataColumn[] columns = f.ParentFeatureSet.GetColumns();
for (int i = 0; i < columns.Length - 2; i++)

{

DataColumn fld = columns[i];

DataRow dr = dt.NewRow();

dr["Field Name"] = fld.ColumnName;

if (f.DataRow != null) dr["Value"] =

f.DataRow[fld.ColumnName].ToString();

dt.Rows.Add(dr);

}

dgvAttributes.DataSource = dt;

String photo = f.DataRow[columns[columns.Length-2].ColumnName].ToString();

photo = @"Images\" + photo;

pictureBox1.ImageLocation = photo;


String text_file =

f.DataRow[columns[columns.Length - 1].ColumnName].ToString();

text_file = @"Texts\" + text_file;

try

{

StreamReader fs =

new StreamReader(text_file, System.Text.Encoding.Default);

String text = fs.ReadToEnd();

label1.Text = text;

}

catch (ArgumentException)

{

label1.Text = "Описание отсутствует";

}

catch (FileNotFoundException)

{

label1.Text = "Описание отсутствует";

}

catch (DirectoryNotFoundException)

{

label1.Text = "Описание отсутствует";

}

}

protected override void OnClosing(CancelEventArgs e)

{

e.Cancel = true;

Hide();

}


Класс MyLayoutForm
private void toolStripMap_Click(object sender, EventArgs e)

{

_layoutControl1.AddElementWithMouse(_layoutControl1.CreateMapElement());
}
private void toolStripRect_Click(object sender, EventArgs e)

{

_layoutControl1.AddElementWithMouse(new Layout.Elements.LayoutRectangle());

}
private void toolStripNorth_Click(object sender, EventArgs e)

{

_layoutControl1.AddElementWithMouse(new Layout.Elements.LayoutNorthArrow());

}
private void toolStripImg_Click(object sender, EventArgs e)

{

OpenFileDialog ofd = new OpenFileDialog();

ofd.Filter = "Images (*.png, *.jpg, *.bmp, *.gif, *.tif)|*.png;*.jpg;*.bmp;*.gif;*.tif";

ofd.FilterIndex = 1;

ofd.CheckFileExists = true;

if (ofd.ShowDialog() == DialogResult.OK)

{

Layout.Elements.LayoutBitmap newBitmap = new Layout.Elements.LayoutBitmap();

newBitmap.Size = new System.Drawing.SizeF(100, 100);

newBitmap.Filename = ofd.FileName;

_layoutControl1.AddElementWithMouse(newBitmap);

}

}


Класс MySelectByAttributes
public MySelectByAttributes()

{

InitializeComponent();

Configure();

}
public MySelectByAttributes(IFrame mapFrame)

{

_mapFrame = mapFrame;

InitializeComponent();

Configure();

}
private void Configure()

{

DataTable dt = new DataTable();

dt.Columns.Add("Name", typeof(string));

dt.Columns.Add("Value", typeof(IFeatureLayer));
foreach(ILayer layer in _mapFrame)

{

IFeatureLayer fl = layer as IFeatureLayer;

if (fl != null)

{

DataRow dr = dt.NewRow();

dr["Name"] = fl.LegendText;

dr["Value"] = fl;

dt.Rows.Add(dr);

}

}

cmbLayers.DataSource = dt;

cmbLayers.DisplayMember = "Name";

cmbLayers.ValueMember = "Value";

cmbMethod.SelectedIndex = 0;

if(cmbLayers.Items.Count > 0) cmbLayers.SelectedIndex = 0;

}
public IFrame MapFrame

{

get { return _mapFrame; }

set

{

_mapFrame = value;

Configure();

}

}
protected override void Dispose(bool disposing)

{

if (disposing && (components != null))

{

components.Dispose();

}

base.Dispose(disposing);

}
private void cmbLayers_SelectedIndexChanged(object sender, EventArgs e)

{

DataRowView drv = cmbLayers.SelectedValue as DataRowView;

if (drv != null)

{

_activeLayer = drv.Row["Value"] as IFeatureLayer;

}

else

{

_activeLayer = cmbLayers.SelectedValue as IFeatureLayer;

}

if (_activeLayer == null) return;

if(!_activeLayer.DataSet.AttributesPopulated && _activeLayer.DataSet.NumRows() < 50000)

{

_activeLayer.DataSet.FillAttributes();

}

if(_activeLayer.EditMode || _activeLayer.DataSet.AttributesPopulated)

{

sqlQueryControl1.Table = _activeLayer.DataSet.DataTable;

}

else

{

sqlQueryControl1.AttributeSource = _activeLayer.DataSet;

}

}
private void btnApply_Click(object sender, EventArgs e)

{

ApplyFilter();

}
private void ApplyFilter()

{

string filter = sqlQueryControl1.ExpressionText;

if (_activeLayer != null)

{

try

{

_activeLayer.SelectByAttribute(filter, GetSelectMode());

}

catch(Exception ex)

{

Debug.WriteLine(ex.ToString());

MessageBox.Show("There was an error attempting to apply this expression.");

}

}

}

ModifySelectionModes GetSelectMode()

{

switch (cmbMethod.SelectedIndex)

{

case 0: return ModifySelectionModes.Replace;

case 1: return ModifySelectionModes.Append;

case 2: return ModifySelectionModes.Subtract;

case 3: return ModifySelectionModes.SelectFrom;

}

return ModifySelectionModes.Replace;

}
private void btnOk_Click(object sender, EventArgs e)

{

ApplyFilter();

Close();

}
private void btnClose_Click(object sender, EventArgs e)

{

Close();

}
Класс MyZoomInFunction
protected override void OnMouseUp(GeoMouseArgs e)

{

_currentPoint = e.Location;
Map.Invalidate();
Rectangle r = e.Map.MapFrame.View;

int w = r.Width;

int h = r.Height;
if (e.Button == MouseButtons.Left)

{

r.Inflate(-r.Width / 10, -r.Height / 10);

e.Map.MapFrame.View = r;

e.Map.MapFrame.ResetExtents();

}

else

{

r.Inflate((int)(r.Width / 10), (int)(r.Height / 10));

e.Map.MapFrame.View = r;

e.Map.MapFrame.ResetExtents();

}
base.OnMouseUp(e);
}

Класс MyZoomInFunction
protected override void OnMouseUp(GeoMouseArgs e)

{

_currentPoint = e.Location;

Map.Invalidate();

Rectangle r = e.Map.MapFrame.View;

int w = r.Width;

int h = r.Height;
if (e.Button == MouseButtons.Left)

{

r.Inflate((int)(r.Width / 10),(int)( r.Height / 10));

e.Map.MapFrame.View = r;

e.Map.MapFrame.ResetExtents();

}

else

{

r.Inflate(-r.Width / 10, -r.Height / 10);

e.Map.MapFrame.View = r;

e.Map.MapFrame.ResetExtents();

}

base.OnMouseUp(e);
}

Класс SelectInfoFunction
protected override void OnMouseDoubleClick(GeoMouseArgs e)

{
Coordinate c1 = e.Map.PixelToProj(new System.Drawing.Point(e.X - 2, e.Y - 2));

Coordinate c2 = e.Map.PixelToProj(new System.Drawing.Point(e.X + 2, e.Y + 2));

Coordinate s1 = e.Map.PixelToProj(new System.Drawing.Point(e.X - 1, e.Y - 1));

Coordinate s2 = e.Map.PixelToProj(new System.Drawing.Point(e.X + 1, e.Y + 1));

Coordinate center = e.Map.PixelToProj(new System.Drawing.Point(e.X, e.Y));

IEnvelope tolerant = new Envelope(c1, c2);

IEnvelope strict = new Envelope(s1, s2);

HandleSelection(tolerant, strict);
if (frmFeatureIdentifier == null)

{

frmFeatureIdentifier = new MyFeatureIdentifier();

}

if (Identify(e.Map.MapFrame.GetLayers(), strict, tolerant))

{

frmFeatureIdentifier.SuspendLayout();

System.Console.Out.WriteLine(e.Map.MapFrame.GetLayers().Count);

frmFeatureIdentifier.ResumeLayout();

frmFeatureIdentifier.Show();

base.OnMouseDoubleClick(e);

}
else System.Console.Out.WriteLine("1213");

}
private bool Identify(IEnumerable layers, IEnvelope strict, IEnvelope tolerant)

{

foreach (IMapLayer layer in layers)

{

IMapFeatureLayer gfl = layer as IMapFeatureLayer;
if (gfl != null)

{

if (gfl.SelectionEnabled)

{

IFeature ff = new Feature();

List result = gfl.Selection.ToFeatureList();

if (result.Count > 0)

{

ff = result[0];

frmFeatureIdentifier.Add(gfl, ff);

return true;

}

}

}

}

return false;

}
private void HandleSelection(IEnvelope tolerant, IEnvelope strict)

{
Map.Select(tolerant, strict);

Map.MapFrame.ResetExtents();

}

}
1   ...   12   13   14   15   16   17   18   19   20

Похожие:

Дипломная работа iconДипломная работа
Мамзеров Д. В., навигация и интерфейс в средах виртуальной реальности, дипломная работа
Дипломная работа iconДипломная работа по теме: “ Интерактивная база данных по дендроклиматологии” Работу
Моя дипломная работа очень актуальна, потому что дендроклиматология – малоизученная и малоизвестная область биологии. Дендроклиматология...
Дипломная работа iconДипломная работа содержит 104 листа, 6 таблиц, 35 рисунков. Тема:...
Данная дипломная работа посвящена проблемам разработки и внедрения устройств связи высокочастотного и сверхвысокочастотного диапазона....
Дипломная работа iconНазвание организации
Заголовок «Дипломная работа» или «Курсовая работа»: Times New Roman, 14 (вопреки П. 113), по центру. Затем – 2 пустые строки
Дипломная работа iconРеферат. Содержание
Дипломная работа (далее просто работа) выполняется на листах формата А4 с размерами полей: сверху – 20 мм, снизу – 20мм, справа –...
Дипломная работа icon2 требования к содержанию работы
Дипломная работа (далее просто работа) выполняется на листах формата А4 с соблюдением следующих размеров полей: правое – 10 мм, верхнее...
Дипломная работа iconДипломная работа

Дипломная работа iconРеферат. Содержание
Дипломная работа (далее просто работа) выполняется на листах формата А4 с размерами полей: сверху – 20 мм, снизу –20мм, справа- 15мм,...
Дипломная работа iconДипломная работа пгу 030501

Дипломная работа iconКнига 1
Объем работы – реферат от 12 до 25 печатных листов, курсовая работа – от 20 до 30 страниц, дипломная работа 60-70 страниц компьютерного...
Дипломная работа iconТребования к дипломной работе учащихся 10 11-х классов
Дипломная работа заключительная работа учебно-исследовательского характера, выполняемая оканчивающими университеты, экономические,...
Дипломная работа iconЛатинские заимствования в современном русском литературном языке (дипломная работа)

Дипломная работа iconДипломная работа Создание программы помогающей изучать английский язык

Дипломная работа iconДипломная работа на тему: «Совершенствование организации поддержки...
Дипломная работа «Совершенствование организации поддержки и развития малого предпринимательства в муниципальном районе на примере...
Дипломная работа iconДипломная работа
Соответствие современной интернет-рекламы психологическим особенностям подростков
Дипломная работа iconДипломная работа не менее 65 страниц без приложения
Курсовая работа выполняется на одной стороне листа белой бумаги формата А4 (210 Х 297 мм). Иллюстрированный материал (таблицы, схемы,...


Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск