物探论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 476|回复: 0

(2006-06-13 12:43:55)转载▼ 标签: mapxtreme 开发gis代码 c 搜索t...

[复制链接]
发表于 2013-3-13 20:53:22 | 显示全部楼层 |阅读模式
MapXtreme2004代码 读取TAB表中的元素



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



!table

!version 300

!charset WindowsSimpChinese



Definition Table

Type NATIVE Charset "WindowsSimpChinese"

Fields 2

   地理码 Char (10) Index 1 ;

名称 Char (10) ;



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




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();

}


B:

应用MapXtreme2004开发GIS代码(C#) 搜索TAB表中的元素
注:本贴跟上面帖子“MapXtreme2004代码 读取TAB表中的元素”
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();
    }
}

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|物探论坛 ( 鄂ICP备12002012号 微信号:iwutan )

GMT+8, 2024-5-12 23:59 , Processed in 0.065212 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表