现在的位置: 首页 > 综合 > 正文

基于C#的MapInfo开发时常用的命名空间总结

2013年06月11日 ⁄ 综合 ⁄ 共 3802字 ⁄ 字号 评论关闭

命名空间:  MapInfo.Data

MapInfo.Data 命名空间包含了实现 MapInfo .NET 数据提供方的类和接口。 对 MapInfo 数据的访问有两种形式:作为使用 SQL 与数据交互的 ADO.NET 数据提供程序和作为使用类与数据交互的 Feature 对象。 MapInfo ADO.NET 数据提供方是使用 MIConnectionMICommandMIDataReader 和 MIParameter 类实现的。 Feature 对象模型由 CatalogTableFeatureIFeatureCollectionITableFeatureCollectionFeatureCollectionIResultSetFeatureCollectionMultiResultSetFeatureCollectionSearchInfo 和 QueryDefinition 类与接口组成。

Catalog 提供了必要的工具来打开和关闭表。 表打开时,客户端会对该表指定一个别名(或名称)。 该别名用来标识查询和其它操作中的表。 Catalog 还提供了工具来创建新建表的定义,以及通过当前打开的表进行枚举。

Table 外部(ADO.NET 和其它旧版数据源)数据的数据绑定实现方法是,使用 TableInfoAdoNet 作为 Table 打开 ADO.NET DataTable。 然后表可以与另一个表连接或使用 AddColumns(Columns) 将列绑定到第二个表。

SearchInfo 

通过将 UseBeginAccess 设置为 true,使得搜索每个表之前 Search 代码获得带有读取模式的 TableAccessToken,从而提升搜索性能。 如果搜索期间不想将更新锁定在外,则将 UseBeginAccess 设置为 false。 如果不需要执行任何后续处理,则搜索性能会更好。 UseBeginAccess 的默认设置为 true

2Catalog 类提供对 MapInfo 会话中当前打开表的访问,并提供创建新表的工具。

在大多数数据源中,一旦建立连接就可以立即对数据源中存在的表进行查询。 但 MapInfo 数据源不同。 它们在打开前不包含任何表。 Catalog 提供了必要的工具来打开和关闭表。 表打开时,客户端会对该表指定一个别名(或名称)。 该别名用来标识查询和其它操作中的表。 

Catalog 还提供了工具来创建新建表的定义,以及通过当前打开的表进行枚举。

Feature 

定义 Feature。 Feature 通常表示带有几何体、样式和属性的表中的行。

图元由它们的几何体、样式、数据源、键和属性描述。 通常,图元为表中的行。 支持的几何体包括包含给定区域的闭合对象(PolygonsMultiPolygonsRingsRectangleRoundedRectangles 和 Ellipses);表示数据某一位置的点对象(PointsMultiPoints);以及包含给定距离的直线对象(CurvesMultiCurves 和 LegacyArcs)。 

计算机化地图其中一项主要用途就是获取关于图元的信息。 在 MapXtreme 中,可通过多种方法将图元返回到 FeatureCollections,例如,使用架构从空白创建,使用选择集工具或方法选择,或通过搜索这些满足特定标准集合的工具或方法的 Catalog 选择。

Feature 通常具有 Table 和 Key 来标识所表示的行。 如果没有表或键,就不是表图元,并且 IsTableFeature 返回 false。 Feature 对象按需要从表中加载其数据。

可以使用 Load()()() 方法强制 Load。 Feature 保存回表之前,对 Feature 所做的更改不反映在底层表(如果有的话)中。 使用 Update()()() 方法、UpdateFeature(Key, Feature, Boolean) 或 InsertFeature(Feature) 执行该操作。 可以在使用 DiscardEdits()()() 方法保存 Feature 对象前删除对其执行的任何编辑。

Feature 具有描述 Feature 属性的构架。 Columns 属性描述该架构。

Table 

表包含要显示在地图上的数据。 表保存描述图元的信息的行和列,包括它们的几何体样式和属性。 MapXtreme 支持各种数据源中的表,包括本机表 (MapInfo .TAB)、关系数据管理系统 (RDBMS)dBaseMS AccessASCII 和 ESRI ShapeFile。 特性表包括光栅、网格、无缝、视图、WMS 和 ADO.NET。 可通过 TableInfo 类查看表的类型。 可以通过 Data 命名空间中的 Catalog 打开或关闭表。

在大多数数据源中,一旦建立连接就可以立即对数据源中存在的表进行查询。 但 MapInfo 数据源不同 它在打开前不包含任何表。 打开表时,会创建 Table 实例供用户操控。 Catalog 提供了工具来访问打开的 Table 对象,这样程序员就无需考虑保存到对象的引用。

表在打开后保持打开,直到通过 Close()()() 方法、CloseTable(String) 方法或 CloseAll()()() 方法关闭。 表关闭后,Table 对象无效,访问其属性或方法的任何尝试都会产生异常。

Table 也会提供若干事件,用户可以对其进行侦听,以获取关于表中活动的信息。

打开的表并不表示在其打开期间包含数据的文件始终保持打开。 打开的表只是意味着对于 Catalog 来说知道用户要与这个表(MapInfo 本地数据、RDB 服务器表等)交互或者要将其作为 Map 包括在 FeatureLayer 中。

MapInfo.Data.Find 命名空间

MapInfo.Data.Find 命名空间包含的类提供了在给定的可绘制地图的表定位对象、街道地址或十字路口的能力。 Find 对象用于执行搜索。 FindAddressRangeFindCloseMatch 和 FindResult 表示搜索的结果。

MapXtreme 通过将地址、十字路口或位置名称与图元表中的信息进行匹配来定位地图图元。 MapXtreme 尝试进行完全匹配,在该匹配中结果和输入的地址,位置名称或交点逐字匹配。 如果无法进行完全匹配,MapXtreme 会尝试查找基于其匹配规则和设置的模糊匹配。 如果无法查找到模糊匹配,则返回匹配失败。

注意,匹配不区分大小写。 大写和小写字符之间可以成功匹配

MapInfo.Data.GeoDictionary 命名空间

MapInfo.Data.GeoDictionary 命名空间提供了数据自动绑定支持。 GeoDictionary 类包含关于应用程序数据绑定的表(只有 Native TAB 文件)的信息。 MatchResolver 类提供了匹配的算法并与 GeoDictionariesGeoDictionary 对象的集合) 通信,在匹配过程中查找 MatchTable 候选项并(或)解析模棱两可的情况(如果有)。 MatchResolver 类不是密封的,可以从它派生新类,并通过提供自定义的匹配算法重载它的行为。 在匹配和(或)绑定的过程中可以指定一部分信息或不指定信息,让 MatchResolver 填充缺少的信息块。 如果需要,MatchResolver 可以通过 MatchProgress 的状态和应用程序进行通信,允许应用程序决定下一步的操作。 GeoDictionary 保持在扩展名为 DCT 的 XML 格式文件中,使用 GeoDictionary Manager 实用应用程序进行维护。

MapInfo.Engine 命名空间

MapInfo.Engine 命名空间包含了对其它 MapXtreme 对象模型类型的支持。 ISession 接口是所有 MapXtreme 应用程序的起点。 其管理 MapXtreme 应用程序所需资源的初始化。 该接口也提供对其它重要对象例如 CatalogMapFactoryCoordSysFactorySelections 等的访问。 每个线程中只能有一个 ISession 实例,该线程由 Current 属性返回。 

Selection 是保存图元列表的多图元集合。 Selections 包含源于 Tables 的图元。 具有选定图元的表在 Map 中显示时,Selection 中的图元通常以特殊的突出显示绘制。 可以有多个选择集。 详细信息请参阅 Selections()()() 属性、Selections 或 Selection

命名空间中的其它类型支持 CollectionsLicensing 和 Resources 的类、委托、结构体和枚举。

%

抱歉!评论已关闭.