MapXtreme 2005学习(5):总结查找图元的三种方法

摘要:
查找表名称<string strKey){MapInfo.Mapping.Map-Map=MapInfo.Engine.Session.Current.MapFactory[MapControl1.MapAlias];

在MapXtreme 2005中,查找图元提供了非常多的方法,也非常容易实现,这里总结了三种方法。

(1)Search方法是非常强大的,可以实现几乎所有的查找,这也是最常用的查找方式。示例代码如下:

MapXtreme 2005学习(5):总结查找图元的三种方法第1张MapXtreme 2005学习(5):总结查找图元的三种方法第2张    /**//// <summary>
MapXtreme 2005学习(5):总结查找图元的三种方法第3张    
/// 通过Search方法查找图元
MapXtreme 2005学习(5):总结查找图元的三种方法第3张    
/// Design by Glacier
MapXtreme 2005学习(5):总结查找图元的三种方法第3张    
/// 2008年8月6日
MapXtreme 2005学习(5):总结查找图元的三种方法第3张    
/// <param name="tableName">查找的表名</param>
MapXtreme 2005学习(5):总结查找图元的三种方法第3张    
/// <param name="columnName">查找的列名</param>
MapXtreme 2005学习(5):总结查找图元的三种方法第3张    
/// <param name="strKey">查找的关键字</param>
MapXtreme 2005学习(5):总结查找图元的三种方法第9张    
/// </summary>

MapXtreme 2005学习(5):总结查找图元的三种方法第10张    public static void SearchWithSearch(string tableName, string columnName, string strKey)
MapXtreme 2005学习(5):总结查找图元的三种方法第1张MapXtreme 2005学习(5):总结查找图元的三种方法第2张    
MapXtreme 2005学习(5):总结查找图元的三种方法第13张{
MapXtreme 2005学习(5):总结查找图元的三种方法第3张        MapInfo.Mapping.Map map 
= MapInfo.Engine.Session.Current.MapFactory[MapControl1.MapAlias];
MapXtreme 2005学习(5):总结查找图元的三种方法第3张
MapXtreme 2005学习(5):总结查找图元的三种方法第3张        SearchInfo si 
= MapInfo.Data.SearchInfoFactory.SearchWhere(columnName + " like '%" + strKey + "%'");
MapXtreme 2005学习(5):总结查找图元的三种方法第3张        IResultSetFeatureCollection ifs 
= MapInfo.Engine.Session.Current.Catalog.Search(tableName, si);
MapXtreme 2005学习(5):总结查找图元的三种方法第3张        MapInfo.Engine.Session.Current.Selections.DefaultSelection.Clear();
MapXtreme 2005学习(5):总结查找图元的三种方法第3张        
if (ifs.Count <= 0)
MapXtreme 2005学习(5):总结查找图元的三种方法第20张MapXtreme 2005学习(5):总结查找图元的三种方法第21张        
MapXtreme 2005学习(5):总结查找图元的三种方法第13张{
MapXtreme 2005学习(5):总结查找图元的三种方法第3张            lbSearch.Text 
= "Cannot find the point";
MapXtreme 2005学习(5):总结查找图元的三种方法第24张        }

MapXtreme 2005学习(5):总结查找图元的三种方法第3张        
else
MapXtreme 2005学习(5):总结查找图元的三种方法第20张MapXtreme 2005学习(5):总结查找图元的三种方法第21张        
MapXtreme 2005学习(5):总结查找图元的三种方法第13张{
MapXtreme 2005学习(5):总结查找图元的三种方法第3张            
//高亮显示
MapXtreme 2005学习(5):总结查找图元的三种方法第3张
            MapInfo.Engine.Session.Current.Selections.DefaultSelection.Add(ifs);
MapXtreme 2005学习(5):总结查找图元的三种方法第3张            lbSearch.Text 
= "";
MapXtreme 2005学习(5):总结查找图元的三种方法第3张            
if (ifs.Count == 1)
MapXtreme 2005学习(5):总结查找图元的三种方法第20张MapXtreme 2005学习(5):总结查找图元的三种方法第21张            
MapXtreme 2005学习(5):总结查找图元的三种方法第13张{
MapXtreme 2005学习(5):总结查找图元的三种方法第3张                map.Center 
= new DPoint(ifs[0].Geometry.Centroid.x, ifs[0].Geometry.Centroid.y);
MapXtreme 2005学习(5):总结查找图元的三种方法第3张                MapInfo.Geometry.Distance d 
= new MapInfo.Geometry.Distance(0.5, map.Zoom.Unit);
MapXtreme 2005学习(5):总结查找图元的三种方法第24张            }

MapXtreme 2005学习(5):总结查找图元的三种方法第3张            
else
MapXtreme 2005学习(5):总结查找图元的三种方法第20张MapXtreme 2005学习(5):总结查找图元的三种方法第21张            
MapXtreme 2005学习(5):总结查找图元的三种方法第13张{
MapXtreme 2005学习(5):总结查找图元的三种方法第3张                map.SetView(ifs.Envelope);
MapXtreme 2005学习(5):总结查找图元的三种方法第24张            }

MapXtreme 2005学习(5):总结查找图元的三种方法第3张            
//设置高亮显示的样式
MapXtreme 2005学习(5):总结查找图元的三种方法第3张            
//((SimpleInterior)MapInfo.Engine.Session.Current.Selections.DefaultSelection.Style.AreaStyle.Interior).BackColor = System.Drawing.Color.Red;
MapXtreme 2005学习(5):总结查找图元的三种方法第3张            
//((SimpleInterior)MapInfo.Engine.Session.Current.Selections.DefaultSelection.Style.AreaStyle.Interior).ForeColor = System.Drawing.Color.Green;
MapXtreme 2005学习(5):总结查找图元的三种方法第3张            
MapXtreme 2005学习(5):总结查找图元的三种方法第3张            
//输出查询信息
MapXtreme 2005学习(5):总结查找图元的三种方法第3张
            ListBox1.Items.Clear();
MapXtreme 2005学习(5):总结查找图元的三种方法第3张            
foreach (Feature feature in ifs)
MapXtreme 2005学习(5):总结查找图元的三种方法第20张MapXtreme 2005学习(5):总结查找图元的三种方法第21张            
MapXtreme 2005学习(5):总结查找图元的三种方法第13张{
MapXtreme 2005学习(5):总结查找图元的三种方法第3张                ListBox1.Items.Add(feature[
"name"].ToString());
MapXtreme 2005学习(5):总结查找图元的三种方法第24张            }

MapXtreme 2005学习(5):总结查找图元的三种方法第24张        }

MapXtreme 2005学习(5):总结查找图元的三种方法第9张    }

MapXtreme 2005学习(5):总结查找图元的三种方法第10张

(2)通过构造Find对象,进行查找。示例代码如下:

MapXtreme 2005学习(5):总结查找图元的三种方法第1张MapXtreme 2005学习(5):总结查找图元的三种方法第2张    /**//// <summary>
MapXtreme 2005学习(5):总结查找图元的三种方法第3张    
/// 通过Find查找图元
MapXtreme 2005学习(5):总结查找图元的三种方法第3张    
/// Design by Glacier
MapXtreme 2005学习(5):总结查找图元的三种方法第3张    
/// 2008年8月6日
MapXtreme 2005学习(5):总结查找图元的三种方法第3张    
/// <param name="layerName">查找的图层名</param>
MapXtreme 2005学习(5):总结查找图元的三种方法第3张    
/// <param name="columnName">查找的列名</param>
MapXtreme 2005学习(5):总结查找图元的三种方法第3张    
/// <param name="strKey">查找的关键字</param>
MapXtreme 2005学习(5):总结查找图元的三种方法第9张    
/// </summary>

MapXtreme 2005学习(5):总结查找图元的三种方法第10张    public static void SearchWithFind(string layerName, string columnName, string strKey)
MapXtreme 2005学习(5):总结查找图元的三种方法第1张MapXtreme 2005学习(5):总结查找图元的三种方法第2张    
MapXtreme 2005学习(5):总结查找图元的三种方法第13张{
MapXtreme 2005学习(5):总结查找图元的三种方法第3张        Find find 
= null;
MapXtreme 2005学习(5):总结查找图元的三种方法第3张        MapInfo.Mapping.Map map 
= MapInfo.Engine.Session.Current.MapFactory[MapControl1.MapAlias];
MapXtreme 2005学习(5):总结查找图元的三种方法第3张
MapXtreme 2005学习(5):总结查找图元的三种方法第3张        
// Do the find
MapXtreme 2005学习(5):总结查找图元的三种方法第3张
        MapInfo.Mapping.FeatureLayer findLayer = (MapInfo.Mapping.FeatureLayer)map.Layers[PointLayerName];
MapXtreme 2005学习(5):总结查找图元的三种方法第3张        find 
= new Find(findLayer.Table, findLayer.Table.TableInfo.Columns[columnName]);
MapXtreme 2005学习(5):总结查找图元的三种方法第3张        FindResult findResult 
= find.Search(strFind);
MapXtreme 2005学习(5):总结查找图元的三种方法第3张        
if (findResult.ExactMatch)
MapXtreme 2005学习(5):总结查找图元的三种方法第20张MapXtreme 2005学习(5):总结查找图元的三种方法第21张        
MapXtreme 2005学习(5):总结查找图元的三种方法第13张{
MapXtreme 2005学习(5):总结查找图元的三种方法第3张            
// Set the map's center and zoom
MapXtreme 2005学习(5):总结查找图元的三种方法第3张
            map.Center = new DPoint(findResult.FoundPoint.X, findResult.FoundPoint.Y);
MapXtreme 2005学习(5):总结查找图元的三种方法第3张            MapInfo.Geometry.Distance d 
= new MapInfo.Geometry.Distance(2, map.Zoom.Unit);
MapXtreme 2005学习(5):总结查找图元的三种方法第3张            map.Zoom 
= d;
MapXtreme 2005学习(5):总结查找图元的三种方法第3张            lbSearch.Text 
= "";
MapXtreme 2005学习(5):总结查找图元的三种方法第24张        }

MapXtreme 2005学习(5):总结查找图元的三种方法第3张        
else
MapXtreme 2005学习(5):总结查找图元的三种方法第20张MapXtreme 2005学习(5):总结查找图元的三种方法第21张        
MapXtreme 2005学习(5):总结查找图元的三种方法第13张{
MapXtreme 2005学习(5):总结查找图元的三种方法第3张            lbSearch.Text 
= "Cannot find the Point";
MapXtreme 2005学习(5):总结查找图元的三种方法第24张        }

MapXtreme 2005学习(5):总结查找图元的三种方法第3张        find.Dispose();
MapXtreme 2005学习(5):总结查找图元的三种方法第9张    }

(3)能过构造Sql语句进行查找,示例代码如下:

MapXtreme 2005学习(5):总结查找图元的三种方法第1张MapXtreme 2005学习(5):总结查找图元的三种方法第2张   /**//// <summary>
MapXtreme 2005学习(5):总结查找图元的三种方法第3张    
/// 通过Sql语句查找图元
MapXtreme 2005学习(5):总结查找图元的三种方法第3张    
/// Design by Glacier
MapXtreme 2005学习(5):总结查找图元的三种方法第3张    
/// 2008年8月6日
MapXtreme 2005学习(5):总结查找图元的三种方法第3张    
/// <param name="tableName">查找的表名</param>
MapXtreme 2005学习(5):总结查找图元的三种方法第3张    
/// <param name="columnName">查找的列名</param>
MapXtreme 2005学习(5):总结查找图元的三种方法第3张    
/// <param name="strKey">查找的关键字</param>
MapXtreme 2005学习(5):总结查找图元的三种方法第9张    
/// </summary>

MapXtreme 2005学习(5):总结查找图元的三种方法第10张    public static void SearchWithSql(string tableName, string columnName, string strKey)
MapXtreme 2005学习(5):总结查找图元的三种方法第1张MapXtreme 2005学习(5):总结查找图元的三种方法第2张    
MapXtreme 2005学习(5):总结查找图元的三种方法第13张{
MapXtreme 2005学习(5):总结查找图元的三种方法第3张        MapInfo.Data.MIConnection miConnection 
= new MIConnection();
MapXtreme 2005学习(5):总结查找图元的三种方法第3张        miConnection.Open();
MapXtreme 2005学习(5):总结查找图元的三种方法第3张        MapInfo.Data.MICommand miCommand 
= miConnection.CreateCommand();
MapXtreme 2005学习(5):总结查找图元的三种方法第3张        miCommand.CommandText 
= "select * from " + tableName + " where " + columnName + " like '%'+@name+'%'";
MapXtreme 2005学习(5):总结查找图元的三种方法第3张        miCommand.Parameters.Add(
"@name", strKey);
MapXtreme 2005学习(5):总结查找图元的三种方法第3张        IResultSetFeatureCollection ifs 
= miCommand.ExecuteFeatureCollection();
MapXtreme 2005学习(5):总结查找图元的三种方法第3张        MapInfo.Engine.Session.Current.Selections.DefaultSelection.Clear();
MapXtreme 2005学习(5):总结查找图元的三种方法第3张        MapInfo.Mapping.Map myMap 
= MapInfo.Engine.Session.Current.MapFactory[MapControl1.MapAlias];
MapXtreme 2005学习(5):总结查找图元的三种方法第3张        
if (ifs.Count <= 0)
MapXtreme 2005学习(5):总结查找图元的三种方法第20张MapXtreme 2005学习(5):总结查找图元的三种方法第21张        
MapXtreme 2005学习(5):总结查找图元的三种方法第13张{
MapXtreme 2005学习(5):总结查找图元的三种方法第3张            lbSearch.Text 
= "Cannot find the point";
MapXtreme 2005学习(5):总结查找图元的三种方法第24张        }

MapXtreme 2005学习(5):总结查找图元的三种方法第3张        
else
MapXtreme 2005学习(5):总结查找图元的三种方法第20张MapXtreme 2005学习(5):总结查找图元的三种方法第21张        
MapXtreme 2005学习(5):总结查找图元的三种方法第13张{
MapXtreme 2005学习(5):总结查找图元的三种方法第3张            
//高亮显示
MapXtreme 2005学习(5):总结查找图元的三种方法第3张
            lbSearch.Text = "";
MapXtreme 2005学习(5):总结查找图元的三种方法第3张            MapInfo.Engine.Session.Current.Selections.DefaultSelection.Add(ifs);
MapXtreme 2005学习(5):总结查找图元的三种方法第3张            
if (ifs.Count == 1)
MapXtreme 2005学习(5):总结查找图元的三种方法第20张MapXtreme 2005学习(5):总结查找图元的三种方法第21张            
MapXtreme 2005学习(5):总结查找图元的三种方法第13张{
MapXtreme 2005学习(5):总结查找图元的三种方法第3张                myMap.Center 
= new DPoint(ifs[0].Geometry.Centroid.x, ifs[0].Geometry.Centroid.y);
MapXtreme 2005学习(5):总结查找图元的三种方法第3张                MapInfo.Geometry.Distance d 
= new MapInfo.Geometry.Distance(0.5, myMap.Zoom.Unit);
MapXtreme 2005学习(5):总结查找图元的三种方法第3张                myMap.Zoom 
= d;
MapXtreme 2005学习(5):总结查找图元的三种方法第24张            }

MapXtreme 2005学习(5):总结查找图元的三种方法第3张            
else
MapXtreme 2005学习(5):总结查找图元的三种方法第20张MapXtreme 2005学习(5):总结查找图元的三种方法第21张            
MapXtreme 2005学习(5):总结查找图元的三种方法第13张{
MapXtreme 2005学习(5):总结查找图元的三种方法第3张                myMap.SetView(ifs.Envelope);
MapXtreme 2005学习(5):总结查找图元的三种方法第24张            }

MapXtreme 2005学习(5):总结查找图元的三种方法第24张        }

MapXtreme 2005学习(5):总结查找图元的三种方法第9张    }

免责声明:文章转载自《MapXtreme 2005学习(5):总结查找图元的三种方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇windows设置代理C# BeginInvoke与EndInvoke的使用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

mysql命令详解

mysqld.exe 和 mysql.exe 有什么区别? mysqld.exe 是MySQL后台程序(即MySQL服务器)。要想使用客户端程序,该程序必须运行,因为客户端通过连接服务器来访问数据库。 mysql.exe 是MySQL自带的命令行客户端工具,是交互式输入SQL语句或从文件以批处理模式执行它们的命令行工具。 简单来说:mysqld是用来启...

fancyBox简单入门

1. 下载 fancyBox,解压后根据需要将文件复制到网页文件夹中(建议不要更改目录结构),并在网页源码中引入相应的 css 样式和 js 文件(如果更改了目录结构,引入的时候请调整相应代码,对应它们所在的路径)。注意:别忘了还要先加载 jQuery 库! <!-- 加载 jQuery 库(必须) --> <script type="t...

基于jQuery美化联动下拉选择框

今天给大家介绍一款基于jQuery美化联动下拉选择框。这款下下拉选择框js里自带了全国所有城市的数数库。下拉选择框适用浏览器:IE8、360、FireFox、Chrome、Safari、Opera、傲游、搜狗、世界之窗。效果图如下: 在线预览   源码下载 实现的代码。 html代码: <div id="container">...

SpringBoot--Easycode插件自定义模板

  最近准备做个项目,在配置项目环境的时候,使用Easycode插件生成entity,controller,service,dao,mapper,前面只是单纯地介绍了Easycode插件的集成,但由于使用的是Easycode插件默认的模板,导致最终生成的文件与自己想要的效果有所差别。   所以花了一下午的时间研究如何自定义模板,最终设计出了一套比较完整的模...

dump redo日志文件的信息

通常会用到以下两个命令:1.'alter session'命令用来dump redo日志的文件头2.'alter system dump logfile'命令用来dump redo文件的内容 以上命令也可以对归档日志进行dump。输出结果存放在session的trace文件中。 可以根据以下方式对redo日志进行dump:(1) To dump recor...

spark+kafka 小案例

(1)下载kafka的jar包 http://kafka.apache.org/downloads spark2.1 支持kafka0.8.2.1以上的jar,我是spark2.0.2,下载的kafka_2.11-0.10.2.0 (2)Consumer代码 package com.sparkstreaming import org.apache.spa...