private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { DataTable table = MapDBClass.GetPropertyDefine((comboBox1.SelectedIndex + 1).ToString()); DataGridView view = dataGridView1; view.Rows.Clear(); for (int i = 0; i < table.Rows.Count; i++) { int row = view.Rows.Add(); view.Rows[row].Cells[0].Value = table.Rows[i]["PropertyName"]; view.Rows[row].Cells["oldname"].Value = table.Rows[i]["PropertyName"]; view.Rows[row].Cells[1].Value = table.Rows[i]["DataType"]; view.Rows[row].Cells[2].Value = ""; view.Rows[row].Cells[3].Value = ""; if (table.Rows[i]["DataType"].ToString() == "列表") { view.Rows[row].Cells[2].Value = table.Rows[i]["AllowUnSelect"].ToString() == "1" ? "允许" : "不允许"; view.Rows[row].Cells[3].Value = table.Rows[i]["AllowInput"].ToString() == "1" ? "允许" : "不允许"; } view.Rows[row].Cells[6].Value = table.Rows[i]["AllowVisible"].ToString() == "1" ? "允许" : "不允许"; view.Rows[row].Cells[4].Value = table.Rows[i]["List"]; view.Rows[row].Cells["isnewrow"].Value = "0"; } btnOk.Enabled = true; button4.Enabled = true; }
public SetTypeForm(decimal mapid) { InitializeComponent(); //DataTable roottable = MapDBClass.GetLayerInformation(mapid); //查询影像图结构 //PhotoList = MapDBClass.GetPhotoList(); ParentChildTable = MapDBClass.GetLayerInformation(mapid); treeView1.Nodes.Clear(); //if (roottable != null && roottable.Rows.Count == 1) //{ TreeNode rootnode = new TreeNode("基础图层") { Tag = "0" }; treeView1.Nodes.Add(rootnode); AddNode(rootnode); treeView1.SelectedNode = rootnode; TreeNode rootnode1 = new TreeNode("数据图层") { Tag = "4" }; treeView1.Nodes.Add(rootnode1); AddNode(rootnode1); init();//gridview绑定值 }
/// <summary> /// 删除元素 /// </summary> /// <param name="map"></param> /// <param name="tree"></param> /// <param name="cmd"></param> private void DeleteObject(MapImage map, MyTree tree, string[] cmd) { if (cmd.Length != 4) { return; } decimal layerid = GetId(cmd[2]); decimal objectid = GetId(cmd[3]); TreeNode layernode = FindLayer(tree.Nodes[0], layerid); TreeNode objectnode = FindObject(layernode, layerid, objectid); if (objectnode == null) { return; } //取得当前图层 VectorLayer layer = layernode.Tag as VectorLayer; //如果有当前选择区域,则从图层中删除 if (map.NeedSave && layer.NeedSave) { MapDBClass.DeleteObject(map.Map.MapId, layerid, objectid, layer.Type); } ((GeometryProvider)layer.DataSource).Geometries.Remove(objectnode.Tag as Geometry); tree.Nodes.Remove(objectnode); }
/// <summary> /// 保存按钮 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button2_Click(object sender, EventArgs e) { if (DateList.Text == "") { MessageBox.Show("请设置日期。"); DateList.Focus(); return; } for (int index = 0; index < tabControl1.TabPages.Count; index++) { if (tabControl1.TabPages[index].Tag != null) { MemoryStream stream = new MemoryStream(); PictureBox pic = tabControl1.TabPages[index].Controls[1] as PictureBox; TextBox box = tabControl1.TabPages[index].Controls[0] as TextBox; pic.Image.Save(stream, ImageFormat.Jpeg); stream.Flush(); MapDBClass.SavePicture(_MapId, _LayerId, _ObjectId, DateList.Text, index + 1, stream.GetBuffer(), box.Text); stream.Close(); stream.Dispose(); stream = null; tabControl1.TabPages[index].Tag = null; } else { TextBox box = tabControl1.TabPages[index].Controls[0] as TextBox; MapDBClass.UpdatePictureComment(_MapId, _LayerId, _ObjectId, DateList.Text, index + 1, box.Text); } } }
private void Save() { List <Hashtable> list = new List <Hashtable>(); for (int i = 0; i < dataGridView1.RowCount; i++) { if (GetValue(dataGridView1, i, 0).Trim() == "") { MessageBox.Show("有属性名称没有设定,请重新设定属性名称。"); return; } Hashtable data = new Hashtable(); data.Add("fieldname", GetValue(dataGridView1, i, 0)); data.Add("oldfieldname", GetValue(dataGridView1, i, "oldname")); data.Add("fieldtype", (comboBox1.SelectedIndex + 1).ToString()); data.Add("datatype", GetValue(dataGridView1, i, 1)); data.Add("allowunselect", GetValue(dataGridView1, i, 2) == "允许" ? "1" : "0"); data.Add("allowinput", GetValue(dataGridView1, i, 3) == "允许" ? "1" : "0"); data.Add("allowvisible", GetValue(dataGridView1, i, 6) == "允许" ? "1" : "0"); data.Add("inputlist", GetValue(dataGridView1, i, 4)); list.Add(data); } MapDBClass.InsertPropertyDefine(list, (comboBox1.SelectedIndex + 1).ToString(), comboBox1.SelectedItem.ToString()); for (int i = 0; i < dataGridView1.RowCount; i++) { dataGridView1.Rows[i].Cells["isnewrow"].Value = "0"; dataGridView1.Rows[i].Cells["oldname"].Value = dataGridView1.Rows[i].Cells["fieldname"].Value; } }
private void GetObjectInformation() { DataTable table = MapDBClass.GetObjectById(MapId, LayerId, ObjectId); if (table != null && table.Rows.Count > 0) { byte[] data = (byte[])table.Rows[0]["ObjectData"]; Geometry geometry = (Geometry)Common.DeserializeObject(data); Caption = ObjectName;// geometry.Text; if (Caption == null) { Caption = ""; } Message = geometry.Message; if (Message == null) { Message = ""; } tabControl1.TabPages.Clear(); List <Image> images = MapDBClass.GetPicures(MapId, LayerId, ObjectId); _Images = images; for (int i = 0; i < images.Count; i++) { int index = i + 1; tabControl1.TabPages.Add(index.ToString(), index.ToString()); PictureBox pic = new PictureBox(); pic.Image = images[i]; pic.SizeMode = PictureBoxSizeMode.Zoom; pic.Click += new EventHandler(pic_Click); pic.Cursor = Cursors.Hand; tabControl1.TabPages[i].Controls.Add(pic); pic.Dock = DockStyle.Fill; } if (images == null || images.Count <= 0) { tabControl1.Visible = false; } else { tabControl1.Visible = true; //tabControl1.Location = new System.Drawing.Point(10, this.Height-100); } } try { List <SqlParameter> param = new List <SqlParameter>(); param.Add(new SqlParameter("MapId", MapId)); param.Add(new SqlParameter("LayerId", LayerId)); param.Add(new SqlParameter("ObjectId", ObjectId)); table = SqlHelper.Select(SqlHelper.GetSql("SelectProjectByObject"), param); btnProjectArea.Visible = table != null && table.Rows.Count > 0; btnProjectAreaPrice.Visible = btnProjectArea.Visible; } catch (Exception ex) { Common.ShowError(ex); } }
/// <summary> /// 取得元素上传图片日期列表 /// </summary> /// <returns></returns> private List <string> GetDateList() { List <string> list = new List <string>(); DataTable table = MapDBClass.GetPictureDate(_MapId, _LayerId, _ObjectId); for (int i = 0; i < table.Rows.Count; i++) { list.Add(table.Rows[i][0].ToString()); } return(list); }
/// <summary> /// 日期变更时,重新查询 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { _datatable = MapDBClass.GetProperty(_MapId, _LayerId, _Object.ID, comboBox1.Text.Trim()); if (_datatable == null) { return; } if (_datatable.Rows.Count > 0) { _UpdateDate = _datatable.Rows[0]["UpdateDate"].ToString(); } else { _UpdateDate = ""; } if (_datatable.Rows.Count == 0 && checkBox1.Checked) { if (_Selected) { return; } if (!_Selected && comboBox1.Items.Count > 0) { _datatable = MapDBClass.GetProperty(_MapId, _LayerId, _Object.ID, comboBox1.Items[comboBox1.Items.Count - 1].ToString()); } } dataGridView1.Rows.Clear(); dataGridView1.Columns[0].ReadOnly = true; for (int i = 4; i < _datatable.Columns.Count; i++) { string colname = _datatable.Columns[i].ColumnName; if (colname.ToLower() == "createdate" || colname.ToLower() == "updatedate") { continue; } int row = dataGridView1.Rows.Add(); dataGridView1.Rows[row].Cells[0].Value = colname; if (_datatable.Rows.Count > 0) { _Selected = true; dataGridView1.Rows[row].Cells[1].Value = _datatable.Rows[0][i]; } int findrow = FindDefineRow(colname); if (findrow >= 0) { dataGridView1.Rows[row].Cells[2].Value = _table.Rows[findrow]["DataType"]; dataGridView1.Rows[row].Cells[3].Value = _table.Rows[findrow]["AllowUnSelect"]; dataGridView1.Rows[row].Cells[4].Value = _table.Rows[findrow]["AllowInput"]; dataGridView1.Rows[row].Cells[5].Value = _table.Rows[findrow]["List"]; dataGridView1.Rows[row].Visible = _table.Rows[findrow]["AllowVisible"] != null && _table.Rows[findrow]["AllowVisible"].ToString() == "1"; } } }
/// <summary> /// 图片删除 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnDelete_Click(object sender, EventArgs e) { int index = tabControl1.SelectedIndex + 1; MapDBClass.DeletePicture(_MapId, _LayerId, _ObjectId, DateList.Text, index); tabControl1.TabPages.RemoveAt(tabControl1.SelectedIndex); index = 1; foreach (TabPage page in tabControl1.TabPages) { page.Text = index.ToString(); index++; } }
/// <summary> /// 保存处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnOk_Click(object sender, EventArgs e) { List <Hashtable> data = new List <Hashtable>(); int index = 0; bool change = _datatable.Rows.Count != dataGridView1.RowCount - 1; if (!change) { for (int i = 0; i < dataGridView1.RowCount - 1; i++) { for (int j = 0; j < 3; j++) { if (GetValue(dataGridView1, i, j) != _datatable.Rows[i][j].ToString()) { change = true; break; } } } } if (!change) { return; } for (int i = 0; i < dataGridView1.RowCount; i++) { if (dataGridView1.Rows[i].Cells["SaleDate"].Value != null) { string sdate = dataGridView1.Rows[i].Cells["SaleDate"].Value.ToString(); string saleprice = dataGridView1.Rows[i].Cells["SalePrice"].Value.ToString(); string price = dataGridView1.Rows[i].Cells["Price"].Value.ToString(); string updatedate = dataGridView1.Rows[i].Cells["updatedate"].Value.ToString(); Hashtable table = new Hashtable(); table.Add("SaleDate", sdate); table.Add("SalePrice", saleprice); table.Add("Price", price); table.Add("No", index); table.Add("Updatedate", updatedate); data.Add(table); index++; } } //保存价格数据 MapDBClass.UpdateSalePrice(_MapId, _LayerId, _ObjectId, data); Initial(_MapId, _LayerId, _ObjectId); }
private void btnDelete_Click(object sender, EventArgs e) { if (dataGridView1.RowCount <= 0 || dataGridView1.SelectedRows.Count <= 0) { return; } if (!OpenTempMap) { if (MessageBox.Show("确定要删除选定的地图吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes) { decimal mapid = (decimal)dataGridView1.SelectedRows[0].Cells["mapid"].Value; MapDBClass.DeleteMap(mapid); dataGridView1.Rows.Remove(dataGridView1.SelectedRows[0]); } } button1.Enabled = dataGridView1.RowCount > 0; }
/// <summary> /// 初始化日期下拉列表 /// </summary> private void SetDateList() { comboBox1.Items.Clear(); DataTable table = MapDBClass.GetPropertyDateList(_MapId, _LayerId, _Object.ID); for (int i = 0; i < table.Rows.Count; i++) { comboBox1.Items.Add(table.Rows[i][0].ToString()); } if (comboBox1.Items.Count > 0) { comboBox1.SelectedIndex = comboBox1.Items.Count - 1; } else { comboBox1_SelectedIndexChanged(null, null); } }
public MapListForm(bool opentempmap) { InitializeComponent(); DialogResult = DialogResult.Cancel; OpenTempMap = opentempmap; DataTable table; if (opentempmap) { this.Text = "选择要恢复的地图"; table = MapDBClass.GetTempMapList(); } else { table = MapDBClass.GetMapList(); } dataGridView1.DataSource = table; btnDelete.Enabled = table.Rows.Count > 0; button1.Enabled = table.Rows.Count > 0; }
public SetParentChildForm(decimal mapid) { InitializeComponent(); DataTable roottable = MapDBClass.GetTifInformation(mapid); //查询影像图结构 PhotoList = MapDBClass.GetPhotoList(); ParentChildTable = MapDBClass.GetChildList(); treeView1.Nodes.Clear(); if (roottable != null && roottable.Rows.Count == 1) { TreeNode rootnode = new TreeNode(roottable.Rows[0]["Name"].ToString()) { Tag = roottable.Rows[0]["PhotoId"] }; treeView1.Nodes.Add(rootnode); AddNode(rootnode); treeView1.SelectedNode = rootnode; } }
/// <summary> /// 添加元素 /// </summary> /// <param name="map"></param> /// <param name="tree"></param> /// <param name="cmd"></param> private void AddObject(MapImage map, MyTree tree, string[] cmd) { if (cmd.Length != 4) { return; } decimal mapid = GetId(cmd[1]); decimal layerid = GetId(cmd[2]); decimal objectid = GetId(cmd[3]); TreeNode layerNode = FindLayer(tree.Nodes[0], layerid); if (layerNode == null) { return; } if (!(layerNode.Tag is VectorLayer)) { return; } VectorLayer layer = layerNode.Tag as VectorLayer; if (!(layer.DataSource is GeometryProvider)) { return; } GeometryProvider provider = layer.DataSource as GeometryProvider; Collection <Geometry> geometries = provider.Geometries as Collection <Geometry>; //取得元素信息 DataTable objecttable = MapDBClass.GetObjectById(mapid, layerid, objectid); for (int j = 0; j < objecttable.Rows.Count; j++) { byte[] data = (byte[])objecttable.Rows[j]["ObjectData"]; Geometry geometry = (Geometry)Common.DeserializeObject(data); geometry.ID = objectid; geometry.Select = false; geometries.Add(geometry); AddGeometryToTree(layerNode, geometry, geometry.Text); } }
/// <summary> /// 根据选择的日期索引,从数据库中取得图片 /// </summary> /// <param name="index"></param> /// <returns></returns> private void GetImage(string date) { List <string> comment = new List <string>(); List <Image> imgs = MapDBClass.GetPicure(_MapId, _LayerId, _ObjectId, date, comment); tabControl1.TabPages.Clear(); int index = 0; foreach (Image img in imgs) { index++; TextBox box = new TextBox(); box.Text = comment[index - 1]; box.Multiline = true; box.WordWrap = false; box.ScrollBars = ScrollBars.Both; box.Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right; PictureBox pic = new PictureBox(); pic.Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom; pic.Image = img; pic.SizeMode = PictureBoxSizeMode.Zoom; TabPage page = new TabPage(index.ToString()); tabControl1.TabPages.Add(page); page.Controls.Add(box); page.Controls.Add(pic); box.Left = 0; box.Top = 0; box.Width = page.Width; box.Height = 50; pic.Left = 0; pic.Top = 55; pic.Width = page.Width; pic.Height = page.Height - pic.Top; pic.Refresh(); } btnDelete.Enabled = tabControl1.TabPages.Count > 0 && EditLayer == GetCurrentLayer(); button4.Enabled = GetCurrentLayer() == _EditLayer; button2.Enabled = button4.Enabled; }
/// <summary> /// 保存元素到数据库 /// </summary> /// <param name="geometry"></param> public static void AddObjectIntoDB(decimal mapid, decimal layerid, Geometry geometry) { decimal id = MapDBClass.GetObjectId(mapid, layerid); if (geometry is Polygon) { ((Polygon)geometry).ID = id; } else if (geometry is EasyMap.Geometries.Point) { ((EasyMap.Geometries.Point)geometry).ID = id; } else if (geometry is MultiPolygon) { ((MultiPolygon)geometry).ID = id; } else if (geometry is MultiPoint) { ((MultiPoint)geometry).ID = id; } else if (geometry is MultiLineString) { ((MultiLineString)geometry).ID = id; } else if (geometry is LineString) { ((LineString)geometry).ID = id; } else if (geometry is LinearRing) { ((LinearRing)geometry).ID = id; } else { return; } MapDBClass.InsertObject(mapid, layerid, geometry); }
/// <summary> /// 删除图层 /// </summary> /// <param name="map"></param> /// <param name="tree"></param> /// <param name="cmd"></param> private void DeleteLayer(MapImage map, MyTree tree, string[] cmd) { if (cmd.Length != 3) { return; } decimal layerid = GetId(cmd[2]); TreeNode layernode = FindLayer(tree.Nodes[0], layerid); if (layernode == null) { return; } //取得当前图层 VectorLayer layer = layernode.Tag as VectorLayer; if (map.NeedSave && layer.NeedSave) { MapDBClass.DeleteLayer(map.Map.MapId, layer.ID); } //删除选择的图层 map.Map.Layers.Remove(layer); TreeNode parentnode = layernode.Parent; //删除选择的节点 tree.Nodes.Remove(layernode); if (parentnode.Nodes.Count <= 0) { parentnode.Remove(); } foreach (TreeNode node in tree.Nodes[0].Nodes) { if (node.Nodes.Count <= 0) { node.Remove(); } } }
private void button1_Click(object sender, EventArgs e) { if (textBox1.Text.Trim() == "") { MessageBox.Show("请输入地图名称。", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } DataTable table = MapDBClass.GetMapList(); for (int i = 0; i < table.Rows.Count; i++) { if (table.Rows[i]["MapName"].ToString() == textBox1.Text.Trim()) { MessageBox.Show("地图名称重复,请重新输入。", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); textBox1.SelectAll(); textBox1.Focus(); return; } } MapName = textBox1.Text; MapComment = textBox2.Text; Result = DialogResult.OK; Close(); }
public void set(string txt) { try { List <SqlParameter> param = new List <SqlParameter>(); string tableName = "t_" + _Map.MapId + "_" + _Map.Layers["土地宗地图层"].ID; string sql = "select t1.ObjectData from t_object t1 left join " + tableName + " t2 on t1.ObjectId = t2.ObjectId and t1.LayerId = t2.LayerId and t1.MapId = t2.MapId where t2.flag =@flag"; //param.Add(new SqlParameter("table1", tableName)); param.Add(new SqlParameter("flag", txt)); DataTable table = SqlHelper.Select(sql, param); LayerStyleForm form = new LayerStyleForm(); if (form.ShowDialog() == DialogResult.OK) { foreach (DataRow row in table.Rows) { byte[] data = (byte[])row["ObjectData"]; Geometry geom = (Geometry)Common.DeserializeObject(data); geom.Fill = form.FillBrush.Color.ToArgb(); geom.Outline = form.OutLinePen.Color.ToArgb(); geom.OutlineWidth = (int)form.OutLinePen.Width; geom.TextColor = form.TextColor; geom.TextFont = form.TextFont; geom.EnableOutline = form.EnableOutline; geom.HatchStyle = form.HatchStyle; geom.Line = form.LinePen.Color.ToArgb(); geom.DashStyle = (int)form.LinePen.DashStyle; geom.StyleType = 1; geom.Penstyle = form.Penstyle; MapDBClass.UpdateObject(_Map.MapId, geom); } } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
/// <summary> /// 初始化 /// </summary> /// <param name="mapid"></param> /// <param name="layerid"></param> /// <param name="objectid"></param> public void Initial(decimal mapid, decimal layerid, decimal objectid) { _MapId = mapid; _LayerId = layerid; _ObjectId = objectid; _datatable = MapDBClass.GetSalePrice(mapid, layerid, objectid); for (int i = _datatable.Columns.Count - 1; i >= 0; i--) { bool find = false; for (int j = 0; j < dataGridView1.ColumnCount; j++) { if (dataGridView1.Columns[j].DataPropertyName == _datatable.Columns[i].ColumnName) { find = true; break; } } if (!find) { _datatable.Columns.RemoveAt(i); } } SetData(_datatable); }
/// <summary> /// 保存处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnOk_Click(object sender, EventArgs e) { if (_Object.Text != textBox1.Text.Trim() || _Object.Message != txtMessage.Text.Trim()) { _Object.Text = textBox1.Text.Trim(); _Object.Message = txtMessage.Text.Trim(); if (AfterSave != null) { AfterSave(_Object); } } if (comboBox1.Text == "") { MessageBox.Show("请设置日期。"); comboBox1.Focus(); return; } //保存属性列表 List <PropertyData> properties = new List <PropertyData>(); DataGridView view = dataGridView1; bool change = false; if (_datatable.Rows.Count > 0) { for (int i = 0; i < dataGridView1.RowCount; i++) { string colname = dataGridView1.Rows[i].Cells[0].Value.ToString(); if (_datatable.Rows[0][colname].ToString() != GetValue(view, i, 1)) { change = true; break; } } } else { change = true; } if (!change) { return; } if (change) { string type = "0"; //如果是保存交易信息 //循环设置保存属性列表 for (int i = 0; i < view.Rows.Count; i++) { if (view.Rows[i].Cells[0].Value != null) { PropertyData data = new PropertyData(); if (view.Rows[i].Cells[1].Value != null) { data.Data = view.Rows[i].Cells[1].Value.ToString(); } data.PropertyName = view.Rows[i].Cells[0].Value.ToString(); properties.Add(data); } } //保存属性 MapDBClass.SaveProperty(_MapId, _LayerId, _Object.ID, comboBox1.Text.Trim(), properties, _UpdateDate); } bool find = false; for (int i = 0; i < comboBox1.Items.Count; i++) { if (comboBox1.Items[i].ToString() == comboBox1.Text.Trim()) { find = true; break; } } if (!find) { comboBox1.Items.Add(comboBox1.Text.Trim()); } comboBox1_SelectedIndexChanged(null, null); }
/// <summary> /// 添加图层 /// </summary> /// <param name="map"></param> /// <param name="tree"></param> /// <param name="cmd"></param> private void AddLayer(MapImage map, MyTree tree, string[] cmd) { if (cmd.Length != 3) { return; } decimal mapid = GetId(cmd[1]); decimal layerid = GetId(cmd[2]); //取得图层信息 DataTable layertable = MapDBClass.GetLayerinfo(mapid, layerid); if (layertable == null || layertable.Rows.Count <= 0) { return; } string layername = layertable.Rows[0]["LayerName"].ToString(); int type = 0; Int32.TryParse(layertable.Rows[0]["LayerType"].ToString(), out type); VectorLayer layer = new VectorLayer(layername, (VectorLayer.LayerType)type); layer.ID = layerid; layer.Style.EnableOutline = layertable.Rows[0]["EnableOutline"].ToString() == "1" ? true : false; layer.Style.Fill = new SolidBrush(Color.FromArgb((int)layertable.Rows[0]["Fill"])); layer.Style.Line = new Pen(Color.FromArgb((int)layertable.Rows[0]["Line"]), (int)layertable.Rows[0]["LineWidth"]); layer.Style.Outline = new Pen(Color.FromArgb((int)layertable.Rows[0]["Outline"]), (int)layertable.Rows[0]["OutlineWidth"]); Collection <Geometry> geometries = new Collection <Geometry>(); GeometryProvider provider = new GeometryProvider(geometries); layer.DataSource = provider; TreeNode node = new TreeNode(layername); node.Tag = layer; node.Checked = true; if (SetLayerStyle != null) { SetLayerStyle(layer, layer.Style.Fill, layer.Style.Line, layer.Style.Outline, layer.Style.EnableOutline, node); } string layertext = ""; switch (layer.Type) { case VectorLayer.LayerType.BaseLayer: layertext = Resources.BaseLayer; break; case VectorLayer.LayerType.PhotoLayer: layertext = Resources.PhotoLayer; break; case VectorLayer.LayerType.ReportLayer: layertext = Resources.ReportLayer; break; case VectorLayer.LayerType.MotionLayer: layertext = Resources.MotionPointLayer; break; case VectorLayer.LayerType.SaleLayer: layertext = Resources.SaleLayer; break; case VectorLayer.LayerType.AreaInformation: layertext = Resources.AreaInfoLayer; break; case VectorLayer.LayerType.Pricelayer: layertext = Resources.PriceLayer; break; case VectorLayer.LayerType.HireLayer: layertext = Resources.RentLayer; break; case VectorLayer.LayerType.OtherLayer: layertext = Resources.OtherLayer; break; } TreeNode mainnode = new TreeNode(layertext); mainnode.Checked = true; TreeNode findnode = FindNode(tree, layertext); if (findnode != null) { mainnode = findnode; } else if (layertext == Resources.BaseLayer) { if (tree.Nodes[0].Nodes.Count > 0) { if (tree.Nodes[0].Nodes[0].Text == Resources.PhotoLayer) { tree.Nodes[0].Nodes.Insert(1, mainnode); } else { tree.Nodes[0].Nodes.Insert(0, mainnode); } } else { tree.Nodes[0].Nodes.Add(mainnode); } } else { findnode = FindNode(tree, Resources.DataLayer); if (findnode == null) { findnode = new TreeNode(Resources.DataLayer); tree.Nodes[0].Nodes.Add(findnode); } findnode.Nodes.Add(mainnode); } mainnode.Nodes.Add(node); map.Map.AddLayer(layer); //取得元素信息 DataTable objecttable = MapDBClass.GetObject(mapid, layerid); for (int j = 0; j < objecttable.Rows.Count; j++) { decimal objectid = (decimal)objecttable.Rows[j]["ObjectId"]; byte[] data = (byte[])objecttable.Rows[j]["ObjectData"]; Geometry geometry = (Geometry)Common.DeserializeObject(data); geometry.ID = objectid; geometry.Select = false; geometries.Add(geometry); AddGeometryToTree(node, geometry, geometry.Text); } }
private void btnSelect_Click(object sender, EventArgs e) { dataGridView2.Rows.Clear(); btnSelect.Checked = true; btnAll.Checked = false; 全部显示ToolStripMenuItem.Checked = false; 仅显示选中元素数据ToolStripMenuItem.Checked = true; ILayer layer = GetCurrentLayer(); if (layer is VectorLayer) { VectorLayer vlayer = layer as VectorLayer; GeometryProvider datasource = vlayer.DataSource as GeometryProvider; string id = ""; foreach (Geometry geom in _SelectObjects) { if (datasource.Geometries.Contains(geom)) { id += geom.ID + ","; } } //dataGridView1.Rows.Clear(); dataGridView1.Columns.Clear(); _PropertyType.Clear(); _PropertyName.Clear(); DataGridViewComboBoxColumn col = dataGridView2.Columns[0] as DataGridViewComboBoxColumn; col.Items.Clear(); decimal layerid = GetCurrentLayerId(); if (layerid < 0) { dataGridView1_CurrentCellChanged(null, null); return; } //取得真实属性表字段 string sql = "select * from " + MapDBClass.GetPropertyTableName(MapId, layerid) + " where 1<>1"; DataTable table = SqlHelper.Select(sql, null); for (int i = 4; i < table.Columns.Count; i++) { string colname = table.Columns[i].ColumnName.ToLower(); string stype = table.Columns[i].DataType.Name; colname = table.Columns[i].ColumnName; col.Items.Add(colname); _PropertyType.Add(colname, stype); _PropertyName.Add(colname); } col.Items.Add("日期"); _PropertyType.Add("日期", "日期"); dataGridView2.Rows.Clear(); //取得条件 string where = CreateWhere(); //取得检索字段 string select = CreateSelect(0); //取得表名 string tablename = GetTableName(); sql = select + "\r\n from \r\n" + tablename + where; if (id != "") { sql += " and ObjectId in (" + id.Substring(0, id.Length - 1) + ")"; } //查询 table = SqlHelper.Select(sql, null); dataGridView1.DataSource = table; } dataGridView1_CurrentCellChanged(sender, e); }
private DataTable Search() { //dataGridView1.Rows.Clear(); dataGridView1.Columns.Clear(); _PropertyType.Clear(); _PropertyName.Clear(); //dataGridView1.DataSource = null; DataGridViewComboBoxColumn col = dataGridView2.Columns[0] as DataGridViewComboBoxColumn; decimal layerid = GetCurrentLayerId(); if (layerid < 0) { dataGridView1_CurrentCellChanged(null, null); return(null); } List <List <string> > list = new List <List <string> >(); for (int i = 0; i < dataGridView2.RowCount; i++) { bool flag = true; for (int j = 0; j < 3; j++) { if (dataGridView2.GetGridValue(i, j).ToString().Trim() == "") { flag = false; break; } } if (flag) { List <string> templist = new List <string>(); for (int j = 0; j < 4; j++) { templist.Add(dataGridView2.GetGridValue(i, j).ToString().Trim()); } list.Add(templist); } } dataGridView2.Rows.Clear(); col.Items.Clear(); //取得真实属性表字段 string sql = "select * from " + MapDBClass.GetPropertyTableName(MapId, layerid) + " where 1<>1"; DataTable table = SqlHelper.Select(sql, null); for (int i = 4; i < table.Columns.Count; i++) { string colname = table.Columns[i].ColumnName.ToLower(); string stype = table.Columns[i].DataType.Name; colname = table.Columns[i].ColumnName; col.Items.Add(colname); _PropertyType.Add(colname, stype); _PropertyName.Add(colname); } col.Items.Add("日期"); _PropertyType.Add("日期", "日期"); foreach (List <string> templist in list) { int row = dataGridView2.Rows.Add(); for (int j = 0; j < 4; j++) { dataGridView2.Rows[row].Cells[j].Value = templist[j]; } } //取得条件 string where = CreateWhere(); //取得检索字段 string select = CreateSelect(0); //取得表名 string tablename = GetTableName(); sql = select + "\r\n from \r\n" + tablename + where; //查询 table = SqlHelper.Select(sql, null); return(table); }
/// <summary> /// 根据图层类型,取得该查询哪一个表的表名 /// </summary> /// <returns></returns> private string GetTableName() { return(MapDBClass.GetPropertyTableName(MapId, GetCurrentLayerId())); }
/// <summary> /// 影像图树初始化 /// </summary> public static void Initial() { //查询影像图结构 DataTable table = MapDBClass.GetPhotoParentChildList(); //循环向树中添加节点 for (int i = 0; table != null && i < table.Rows.Count; i++) { //取得父区域名称 string parentName = (string)table.Rows[i]["ParentName"]; //取得子区域名称 string childName = (string)table.Rows[i]["ChildName"]; //查询父节点 TreeNode node = FindNode(_PhotoRoot, parentName); //如果父区域不存在,则增加父节点 if (node == null) { node = new TreeNode(parentName); for (int j = 0; j < table.Rows.Count; j++) { //取得父区域名称 string parentName1 = (string)table.Rows[j]["ParentName"]; if (parentName == parentName1) { //取得子区域名称 string childName1 = (string)table.Rows[j]["ChildName"]; TreeNode subnode1 = FindNode(_PhotoRoot, childName1); if (subnode1 != null) { subnode1.Parent.Nodes.Remove(subnode1); node.Nodes.Add(subnode1); } } } _PhotoRoot.Nodes.Add(node); continue; } //增加子节点 TreeNode subnode = new TreeNode(childName); node.Nodes.Add(subnode); } //取得区域范围数据 table = MapDBClass.GetPhotoList(); //循环更新区域范围数据到影像图树中 for (int i = 0; table != null && i < table.Rows.Count; i++) { PhotoData data = new PhotoData(); data.PhotoId = (int)table.Rows[i]["PhotoId"]; data.Name = (string)table.Rows[i]["Name"]; data.FileName = (string)table.Rows[i]["FileName"]; data.MinX = (double)table.Rows[i]["MinX"]; data.MinY = (double)table.Rows[i]["MinY"]; data.MaxX = (double)table.Rows[i]["MaxX"]; data.MaxY = (double)table.Rows[i]["MaxY"]; data.Transform1 = (double)table.Rows[i]["Transform1"]; data.Transform2 = (double)table.Rows[i]["Transform2"]; data.Transform3 = (double)table.Rows[i]["Transform3"]; data.Transform4 = (double)table.Rows[i]["Transform4"]; data.Transform5 = (double)table.Rows[i]["Transform5"]; data.Transform6 = (double)table.Rows[i]["Transform6"]; data.Width = (int)table.Rows[i]["Width"]; data.Height = (int)table.Rows[i]["Height"]; TreeNode node = FindNode(_PhotoRoot, data.Name); if (node == null) { continue; } node.Tag = data; SetParentData(node); } SetTreeNodeBoundingBox(_PhotoRoot); }
public static BoundingBox GetCenterPhotoData(int currentlevel, int level) { EasyMap.Geometries.Point center = Map.Center; int rootlevel = level / 4 + 1; TreeNode node = _PhotoRoot; DataTable table = MapDBClass.GetCenterTifInformation(center.X, center.Y); bool find = false; PhotoData data = new PhotoData(); for (int i = 0; i < table.Rows.Count; i++) { string name = table.Rows[i]["Name"] as string; node = FindNode(_PhotoRoot, name); PhotoData tempdata = null; if (node != null) { if (node.Parent != null) { tempdata = node.Parent.Tag as PhotoData; } } if (node != null && (node.Level == rootlevel || (tempdata != null && (tempdata.FileName == "" || tempdata.FileName == null) && node.Level - 1 == rootlevel))) { data.PhotoId = (int)table.Rows[i]["PhotoId"]; data.Name = (string)table.Rows[i]["Name"]; data.FileName = (string)table.Rows[i]["FileName"]; data.MinX = (double)table.Rows[i]["MinX"]; data.MinY = (double)table.Rows[i]["MinY"]; data.MaxX = (double)table.Rows[i]["MaxX"]; data.MaxY = (double)table.Rows[i]["MaxY"]; data.Transform1 = (double)table.Rows[i]["Transform1"]; data.Transform2 = (double)table.Rows[i]["Transform2"]; data.Transform3 = (double)table.Rows[i]["Transform3"]; data.Transform4 = (double)table.Rows[i]["Transform4"]; data.Transform5 = (double)table.Rows[i]["Transform5"]; data.Transform6 = (double)table.Rows[i]["Transform6"]; data.Width = (int)table.Rows[i]["Width"]; data.Height = (int)table.Rows[i]["Height"]; find = true; break; } } if (!find) { return(Map.Envelope); } int step = -100; if (currentlevel < level) { step = -100; } int overviewlevel = 0; int overviewzoom = 0; find = false; BoundingBox box = Map.Envelope; box = new BoundingBox(box.Min.X, box.Min.Y, box.Max.X, box.Max.Y); if (currentlevel < level) { while (overviewlevel != (4 - level % 4) && box.Min.X < box.Max.X && box.Min.Y < box.Max.Y) { box.Min.X -= step; box.Min.Y -= step; box.Max.X += step; box.Max.Y += step; find = SetOverView(data, out overviewlevel, out overviewzoom); } } else { BoundingBox maxbox = Map.GetExtents(); while (overviewlevel != (4 - level % 4) && box.Min.X > maxbox.Min.X && box.Min.Y > maxbox.Min.Y && box.Max.X < maxbox.Max.X && box.Max.Y < maxbox.Max.Y) { box.Min.X -= step; box.Min.Y -= step; box.Max.X += step; box.Max.Y += step; find = SetOverView(data, out overviewlevel, out overviewzoom); } } return(box); }
protected override void OnMouseDown(MouseEventArgs e) { base.OnMouseDown(e); if (e.Button == MouseButtons.Right) { if (!_DrawEnd) { if (MainMapImage.ActiveTool == MapImage.Tools.MeasureArea || MainMapImage.ActiveTool == MapImage.Tools.DefineArea || MainMapImage.ActiveTool == MapImage.Tools.SelectPoint || MainMapImage.ActiveTool == MapImage.Tools.ZoomArea) { if (MainMapImage.ActiveTool == MapImage.Tools.ZoomArea) { this.Visible = false; if (AfterDefineArea != null) { AfterDefineArea(SelectionType, null, _R); } return; } if (marea.ExteriorRing.Vertices.Count > 0) { marea.ExteriorRing.Vertices.RemoveAt(marea.ExteriorRing.Vertices.Count - 1); } else { this.Visible = false; if (AfterDefineArea != null) { AfterDefineArea(SelectionType, null, _R); } return; } if (MainMapImage.ActiveTool == MapImage.Tools.MeasureArea) { if (SetArea != null) { SetArea(marea.Area); } } else if (MainMapImage.ActiveTool == MapImage.Tools.DefineArea || MainMapImage.ActiveTool == MapImage.Tools.SelectPoint) { Refresh(); Polygon newArea = null; string text = null; if (MainMapImage.ActiveTool == MapImage.Tools.DefineArea) { InputStringForm form = new InputStringForm("请输入区域名称:", ""); if (form.ShowDialog() == DialogResult.OK) { //text = form.InputContext; marea.Text = form.InputContext; } else { this.Visible = false; if (AfterDefineArea != null) { AfterDefineArea(SelectionType, null, _R); } return; } //取得当前图层 VectorLayer layer = (VectorLayer)MainMapImage.Map.CurrentLayer; //取得图层数据源 GeometryProvider provider = (GeometryProvider)layer.DataSource; //添加当前定义的多边形 newArea = marea.Clone(); newArea.Text = marea.Text; newArea.ID = marea.ID; provider.Geometries.Add(newArea); //强制地图刷新 MainMapImage.Refresh(); } if (AfterDefineArea != null) { AfterDefineArea(SelectionType, marea, _R); } if (newArea != null) { newArea.ID = marea.ID; } //重新初始化多边形 marea = new Polygon(); this.Visible = false; } } else if (MainMapImage.ActiveTool == MapImage.Tools.MeasureLength) { mline.Vertices.RemoveAt(mline.Vertices.Count - 1); //设置测量窗口的信息 if (SetLength != null) { SetLength(mline.Length, mline.Length - oldlength); } } Refresh(); _DrawEnd = true; } } if (e.Button == MouseButtons.Left) { if (_DrawEnd) { Initial(SelectionType); } _DrawEnd = false; //将图像坐标转化为地图坐标 EasyMap.Geometries.Point WorldPos = MainMapImage.Map.ImageToWorld(new System.Drawing.Point(e.X, e.Y)); //保存上一次的长度,以便计算出最后一段直线的长度 oldlength = mline.Length; if (SelectionType == SELECTION_TYPE.CIRCLETEMP) { //添加救援点 //double radius = 10; //double deltaDegrees = 2; //double deltaRadians = (Math.PI / 180) * deltaDegrees; EasyMap.Geometries.Point marea = new Geometries.Point(); marea = new EasyMap.Geometries.Point(WorldPos.X, WorldPos.Y); EasyMap.Geometries.Point newArea = new Geometries.Point(); //string text = null; if (MainMapImage.ActiveTool == MapImage.Tools.DefineArea) { InputStringForm form = new InputStringForm("请输入救援力量名称:", ""); if (form.ShowDialog() == DialogResult.OK) { //text = form.InputContext; marea.Text = form.InputContext; } else { this.Visible = false; if (AfterDefineArea1 != null) { AfterDefineArea1(SelectionType, null, _R); } return; } //取得当前图层 VectorLayer layer = (VectorLayer)MainMapImage.Map.CurrentLayer; //取得图层数据源 GeometryProvider provider = (GeometryProvider)layer.DataSource; //添加当前定义的多边形 marea.ID = MapDBClass.GetObjectId(MainMapImage.Map.MapId, layer.ID); newArea = marea.Clone(); newArea.Text = marea.Text; newArea.ID = marea.ID; provider.Geometries.Add(newArea); //强制地图刷新 MainMapImage.Refresh(); } if (AfterDefineArea1 != null) { AfterDefineArea1(SelectionType, marea, _R); } //强制地图刷新 MainMapImage.Refresh(); newArea.ID = marea.ID; //重新初始化多边形 //marea = new Polygon(); marea = new Geometries.Point(); this.Visible = false; ////强制地图刷新 MainMapImage.Refresh(); } else if (SelectionType == SELECTION_TYPE.PROBLEMPOINT) { EasyMap.Geometries.Point marea = new Geometries.Point(); marea = new EasyMap.Geometries.Point(WorldPos.X, WorldPos.Y); EasyMap.Geometries.Point newArea = new Geometries.Point(); if (MainMapImage.ActiveTool == MapImage.Tools.DefineArea) { InputStringForm form = new InputStringForm("请输入遇难点名称:", ""); if (form.ShowDialog() == DialogResult.OK) { //text = form.InputContext; marea.Text = form.InputContext; } else { this.Visible = false; if (AfterDefineArea1 != null) { AfterDefineArea1(SelectionType, null, _R); } return; } //取得当前图层 VectorLayer layer = (VectorLayer)MainMapImage.Map.CurrentLayer; //取得图层数据源 GeometryProvider provider = (GeometryProvider)layer.DataSource; marea.ID = MapDBClass.GetObjectId(MainMapImage.Map.MapId, layer.ID); //添加当前定义的多边形 newArea = marea.Clone(); newArea.Text = marea.Text; newArea.ID = marea.ID; provider.Geometries.Add(newArea); //强制地图刷新 MainMapImage.Refresh(); } if (AfterDefineArea1 != null) { AfterDefineArea1(SelectionType, marea, _R); } //强制地图刷新 MainMapImage.Refresh(); newArea.ID = marea.ID; marea = new Geometries.Point(); this.Visible = false; ////强制地图刷新 MainMapImage.Refresh(); } else if (SelectionType == SELECTION_TYPE.RECTANGLE || SelectionType == SELECTION_TYPE.CIRCLE) { marea.ExteriorRing.Vertices.Add(WorldPos); marea.ExteriorRing.Vertices.Add(new EasyMap.Geometries.Point(WorldPos.X, WorldPos.Y)); if (marea.ExteriorRing.Vertices.Count > 2) { _DrawEnd = true; this.Visible = false; if (SelectionType == SELECTION_TYPE.RECTANGLE) { double x1 = marea.ExteriorRing.Vertices[0].X; double y1 = marea.ExteriorRing.Vertices[0].Y; double x3 = marea.ExteriorRing.Vertices[1].X; double y3 = marea.ExteriorRing.Vertices[1].Y; double x2 = x1; double y2 = y3; double x4 = x3; double y4 = y1; marea.ExteriorRing.Vertices.Clear(); marea.ExteriorRing.Vertices.Add(new EasyMap.Geometries.Point(x1, y1)); marea.ExteriorRing.Vertices.Add(new EasyMap.Geometries.Point(x2, y2)); marea.ExteriorRing.Vertices.Add(new EasyMap.Geometries.Point(x3, y3)); marea.ExteriorRing.Vertices.Add(new EasyMap.Geometries.Point(x4, y4)); } if (AfterDefineArea != null) { AfterDefineArea(SelectionType, marea, _R); } //Polygon newArea = null; //if (SelectionType == SELECTION_TYPE.CIRCLE) //{ // InputStringForm form = new InputStringForm("请输入区域名称:", ""); // if (form.ShowDialog() == DialogResult.OK) // { // //text = form.InputContext; // marea.Text = form.InputContext; // } // else // { // this.Visible = false; // if (AfterDefineArea != null) // { // AfterDefineArea(SelectionType, null, _R); // } // return; // } // //取得当前图层 // VectorLayer layer = (VectorLayer)MainMapImage.Map.CurrentLayer; // //取得图层数据源 // GeometryProvider provider = (GeometryProvider)layer.DataSource; // //添加当前定义的多边形 // newArea = marea.Clone(); // newArea.Text = ""; // newArea.ID = marea.ID; // provider.Geometries.Add(newArea); // //强制地图刷新 // MainMapImage.Refresh(); //} return; } } else if (SelectionType == SELECTION_TYPE.CIRCLE_RADIO) { marea.ExteriorRing.Vertices.Add(WorldPos); XYInputForm form = new XYInputForm(); form.txtX.Enabled = false; form.txtY.Enabled = false; form.XX = marea.ExteriorRing.Vertices[0].X; form.YY = marea.ExteriorRing.Vertices[0].Y; if (form.ShowDialog() == DialogResult.OK) { marea.ExteriorRing.Vertices.Add(WorldPos); marea.ExteriorRing.Vertices.Add(WorldPos); _R = (float)form.R; if (AfterDefineArea != null) { AfterDefineArea(SelectionType, marea, _R); } } _DrawEnd = true; this.Visible = false; return; } //如果是测量长度 else if (MainMapImage.ActiveTool == MapImage.Tools.MeasureLength) { //添加地图坐标 mline.Vertices.Add(WorldPos); //如果是第一次添加,那么需要追加一个点,以便在鼠标移动的时候更改这个点 if (mline.Vertices.Count < 2) { mline.Vertices.Add(new EasyMap.Geometries.Point(WorldPos.X, WorldPos.Y)); } } //如果是测量面积 else if (MainMapImage.ActiveTool == MapImage.Tools.MeasureArea || MainMapImage.ActiveTool == MapImage.Tools.DefineArea || MainMapImage.ActiveTool == MapImage.Tools.SelectPoint || MainMapImage.ActiveTool == MapImage.Tools.ZoomArea || SelectionType == SELECTION_TYPE.POLYGON) { if (MainMapImage.ActiveTool == MapImage.Tools.ZoomArea && marea.ExteriorRing.Vertices.Count == 2) { this.Visible = false; if (AfterDefineArea != null) { AfterDefineArea(SelectionType, marea, _R); } return; } //添加地图坐标 marea.ExteriorRing.Vertices.Add(WorldPos); //如果是第一次添加,那么需要追加一个点,以便在鼠标移动的时候更改这个点 if (marea.ExteriorRing.Vertices.Count < 2) { marea.ExteriorRing.Vertices.Add(new EasyMap.Geometries.Point(WorldPos.X, WorldPos.Y)); } } } }
private void Search() { bool allowedit = GetCurrentLayer() != null && GetCurrentLayer() == _EditLayer; dataGridView1.ReadOnly = !allowedit; btnOk.Enabled = allowedit; txtMessage.ReadOnly = !allowedit; textBox1.ReadOnly = !allowedit; paste.Enabled = allowedit; dataGridView1.Rows.Clear(); comboBox1.Items.Clear(); textBox1.Text = ""; textBox2.Text = ""; textBox3.Text = ""; txtMessage.Text = ""; _LayerId = GetCurrentLayer().ID; _Object = GetSelectObject(); _type = GetCurrentLayerType(); _Selected = false; comboBox1.Items.Clear(); comboBox1.Text = ""; textBox1.Text = _Object.Text; txtMessage.Text = _Object.Message; _table = MapDBClass.GetPropertyDefine(_type.ToString()); string sql = "select * from " + MapDBClass.GetPropertyTableName(_MapId, _LayerId) + " where 1<>1"; DataTable temptable = SqlHelper.Select(sql, null); for (int i = 4; i < temptable.Columns.Count; i++) { bool find = false; for (int j = 0; j < _table.Rows.Count; j++) { if (temptable.Columns[i].ColumnName.ToLower() == _table.Rows[j]["PropertyName"].ToString().ToLower()) { find = true; break; } } if (find) { continue; } _table.Rows.Add(new object[] { i, _type.ToString(), temptable.Columns[i].ColumnName, temptable.Columns[i].DataType.Name, "0", "0", "", "1" }); } SetDateList(); textBox2.Text = ""; textBox3.Text = ""; Geometry selobject = _Object; if (selobject is Polygon) { Polygon polygon = selobject as Polygon; textBox2.Text = String.Format("{0:N5}", polygon.Area); textBox3.Text = String.Format("{0:N5}", polygon.ExteriorRing.Length); } else if (selobject is MultiPolygon) { MultiPolygon multiPolygon = selobject as MultiPolygon; textBox2.Text = String.Format("{0:N5}", multiPolygon.Area); textBox3.Text = String.Format("{0:N5}", multiPolygon.Length); } else if (selobject is LinearRing) { LinearRing line = selobject as LinearRing; textBox3.Text = String.Format("{0:N5}", line.Length); } else if (selobject is LineString) { LineString line = selobject as LineString; textBox3.Text = String.Format("{0:N5}", line.Length); } else if (selobject is MultiLineString) { MultiLineString line = selobject as MultiLineString; textBox3.Text = String.Format("{0:N5}", line.Length); } }