应用MapXtreme2004开发GIS代码(C#) 搜索TAB表中的元素
April 24th, 2006 by song

A:

MapXtreme2004代码 读取TAB表中的元素



例如,用记事本打开要访问的TAB文件“农安.tab”,可以看到下面内容:



!table

!version 300

!charset WindowsSimpChinese



Definition Table

 Type NATIVE Charset “WindowsSimpChinese”

 Fields 2

   地理码 Char (10) Index 1 ;

名称 Char (10) ;



下面我们就来读取该表的所有“名称”元素。并将其加入到DropDownList控件中。




[code]private static string _findLayerName = "农安";

private static string _findColumnName = "名称";

MapInfo.Data.Table table=MapInfo.Engine.Session.Current.Catalog.GetTable(_findLayerName);



if(table!=null)

{

    MIDataReader tr;

    MIConnection con=new MIConnection();

    MICommand tc=con.CreateCommand();

    tc.CommandText="select "+_findColumnName+" from "+_findLayerName;

    con.Open();

    tr=tc.ExecuteReader();

    while (tr.Read())

    {

        DropDownList1.Items.Add(tr.GetString(0));

    }

    tc.Cancel();

    tc.Dispose();

    tr.Close();

    con.Close();

}[/code]

B:

应用MapXtreme2004开发GIS代码(C#) 搜索TAB表中的元素
注:本贴跟上面帖子“MapXtreme2004代码 读取TAB表中的元素”
[code]private void FindYuansu()
{
    Find find = null;
    try
    {
        MapInfo.Mapping.Map map = null;
        //获取地图
        if (MapInfo.Engine.Session.Current.MapFactory.Count == 0 ||
             (map = MapInfo.Engine.Session.Current.MapFactory[0]) == null)
        {
             return;
        }
        //开始搜索
        MapInfo.Mapping.FeatureLayer findLayer = (MapInfo.Mapping.FeatureLayer) map.Layers[_findLayerName];
        find = new Find(findLayer.Table, findLayer.Table.TableInfo.Columns[_findColumnName]);
        FindResult result = find.Search(DropDownList1.SelectedItem.Text);
        if (result.ExactMatch)
        {
             //重新设置地图
             map.Center = new DPoint(result.FoundPoint.X, result.FoundPoint.Y);
             MapInfo.Geometry.Distance d = new MapInfo.Geometry.Distance(30, map.Zoom.Unit);
             map.Zoom = d;
        }
        else
        {
             Response.Write("没有搜索到!");
        }
        find.Dispose();
    }
    catch (Exception)
    {
        if (find != null) find.Dispose();
    }
}[/code]


Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

SIDEBAR
»
S
I
D
E
B
A
R
«
»  Substance:WordPress   »