在MapXtreme2005怎样查找指定的位置

来源:互联网 发布:阿里云邮箱客户端 编辑:程序博客网 时间:2024/04/27 15:58
根据输入条件进行查询,并将查询到的结果高亮显示,属性信息显示出来

  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("____________________________");
    }

   }
  
  }