|
ljy032 :
在mapxtreme中 在一个文本框输入一个地名 怎样在mapcontrol控件中显示了 谢各位帮忙 (C#语言)
James.Liu :
根据输入条件进行查询,并将查询到的结果高亮显示,属性信息显示出来 private void btnSearch_Click(object sender, System.EventArgs e) { if (txtName.Text.Trim() == "") { MapInfo.Data.Table table = MapInfo.Engine.Session.Current.Catalog.GetTable("world"); //输出查询信息 ListBox1.Items.Clear(); ListBox1.Items.Add("图层: " + table.Alias.ToString() + "—Country"); foreach (Feature feature in (table as MapInfo.Data.ITableFeatureCollection)) { //显示每个选择图元的属性数据 Column column = feature.Columns["Country"]; ListBox1.Items.Add(" " + feature[column.ToString()].ToString()); } } else { //根据名称搜索 SearchInfo si = MapInfo.Data.SearchInfoFactory.SearchWhere("Country like '%" + txtName.Text + "%'"); IResultSetFeatureCollection ifs = MapInfo.Engine.Session.Current.Catalog.Search("world",si); if (ifs.Count <=0) { return; } //缩放到选择图元范围 MapMain.Map.SetView(ifs.Envelope); MapMain.Map.Scale = MapMain.Map.Scale * 2; //高亮显示 MapInfo.Engine.Session.Current.Selections.DefaultSelection.Clear(); MapInfo.Engine.Session.Current.Selections.DefaultSelection.Add(ifs); //输出查询信息 ListBox1.Items.Clear(); ListBox1.Items.Add("图层: " + ifs.BaseTable.Alias.ToString()); foreach (Feature feature in ifs) { //显示每个选择图元的属性数据 foreach (Column column in feature.Columns) { ListBox1.Items.Add(" " + column.ToString() + " = " + feature[column.ToString()].ToString()); } ListBox1.Items.Add("____________________________"); } } } |