MapXtreme开发经验分享-如何生成tab表,查询时返回全部字段【转】
2010-04-30 13:27
471 查看
开发的时候遇到的两个问题,好容易解决了,和大家分享一下:
一、使用CreateTable 创建出来的tab文件有三个 .ID .MAP .DAT,唯一缺少一个 .TAB文件,好奇怪,明明按照例子里写的代码。
经过仔细研究加到处寻找,终于找到了答案,少了一个函数 .WriteTabFile()
生成tab的文件代码如下:
Dim tableInfoNative As MapInfo.Data.TableInfoNative = New MapInfo.Data.TableInfoNative(tableName)
tableInfoNative.TablePath = "C:\\" + tableName + ".TAB"
tableInfoNative.Columns.Add(MapInfo.Data.ColumnFactory.CreateIntColumn("ID"))
tableInfoNative.Columns.Add(MapInfo.Data.ColumnFactory.CreateStyleColumn())
Dim coordSys As MapInfo.Geometry.CoordSys = MapControl1.Map.GetDisplayCoordSys()
tableInfoNative.Columns.Add(MapInfo.Data.ColumnFactory.CreateFeatureGeometryColumn(coordSys))
tableInfoNative.WriteTabFile() '非常关键,否则无法生成tab文件
Dim table As MapInfo.Data.Table = MapInfo.Engine.Session.Current.Catalog.CreateTable(tableInfoNative)
二、查询的时候只返回三个字段,进行search的时候,默认只返回三个默认字段(好象是: ID ,geometry 和MI_TYPE),需要返回全部字段怎么办呢?
使用 si.QueryDefinition.Columns = Nothing 返回全部字段。
例子代码:
Dim layer As MapInfo.Mapping.FeatureLayer = MapControl1.Map.Layers(sLayerName)
Dim si As SearchInfo =MapInfo.Data.SearchInfoFactory.SearchWithinRect(searchRect,layer.CoordSys, ContainsType.Centroid)
si.QueryDefinition.Columns = Nothing '非常关键!否则只返回默认的三个字段:Geometry,type,key
Dim rsfc As IResultSetFeatureCollection = _catalog.Search(layer.Table, si)
希望能对大家有帮助!
一、使用CreateTable 创建出来的tab文件有三个 .ID .MAP .DAT,唯一缺少一个 .TAB文件,好奇怪,明明按照例子里写的代码。
经过仔细研究加到处寻找,终于找到了答案,少了一个函数 .WriteTabFile()
生成tab的文件代码如下:
Dim tableInfoNative As MapInfo.Data.TableInfoNative = New MapInfo.Data.TableInfoNative(tableName)
tableInfoNative.TablePath = "C:\\" + tableName + ".TAB"
tableInfoNative.Columns.Add(MapInfo.Data.ColumnFactory.CreateIntColumn("ID"))
tableInfoNative.Columns.Add(MapInfo.Data.ColumnFactory.CreateStyleColumn())
Dim coordSys As MapInfo.Geometry.CoordSys = MapControl1.Map.GetDisplayCoordSys()
tableInfoNative.Columns.Add(MapInfo.Data.ColumnFactory.CreateFeatureGeometryColumn(coordSys))
tableInfoNative.WriteTabFile() '非常关键,否则无法生成tab文件
Dim table As MapInfo.Data.Table = MapInfo.Engine.Session.Current.Catalog.CreateTable(tableInfoNative)
二、查询的时候只返回三个字段,进行search的时候,默认只返回三个默认字段(好象是: ID ,geometry 和MI_TYPE),需要返回全部字段怎么办呢?
使用 si.QueryDefinition.Columns = Nothing 返回全部字段。
例子代码:
Dim layer As MapInfo.Mapping.FeatureLayer = MapControl1.Map.Layers(sLayerName)
Dim si As SearchInfo =MapInfo.Data.SearchInfoFactory.SearchWithinRect(searchRect,layer.CoordSys, ContainsType.Centroid)
si.QueryDefinition.Columns = Nothing '非常关键!否则只返回默认的三个字段:Geometry,type,key
Dim rsfc As IResultSetFeatureCollection = _catalog.Search(layer.Table, si)
希望能对大家有帮助!
相关文章推荐
- MapXtreme开发经验分享-如何生成tab表,查询时返回全部
- MapXtreme开发经验分享-如何生成tab表,查询时返回全部
- 开发者是如何提升技能水平的 发表于1小时前| 770次阅读| 来源SquareSpace| 1 条评论| 作者Denis Gobo 开源程序员博客代码编程经验分享 摘要:作为一个技术开发人员,不断的学
- IOS开发OC 如何将导航栏左侧系统自动生成的返回按钮的文字去掉,只保留小于号"<"图案
- 如何从零开始开发一款嵌入式产品(20年的嵌入式经验分享学习)
- 如何从零开始开发一款嵌入式产品(20年的嵌入式经验分享学习) .
- 表、字段命名的经验分享,这直接关系到整个系统的基础、公司规范、团队沟通协调、开发效率等方面
- MapXtreme开发经验分享——添加自定义工具【转】
- 【经验分享】如何防止空链接“#”返回到页面?
- Hibernate 查询多个字段返回的list如何转为自定义对象,以及转换异常
- hibernate中的query查询原生sql语句,如何获得返回记录中的每一个字段的值
- 如何从零开始开发一款嵌入式产品(20年的嵌入式经验分享学习)
- 表、字段命名的经验分享,这直接关系到整个系统的基础、公司规范、团队沟通协调、开发效率等方面
- Hibernate 查询多个字段返回的list如何转为自定义对象
- 如何从零开始开发一款嵌入式产品(20年的嵌入式经验分享学习)如何从零开始开发一款嵌入式产品(20年的嵌入式经验分享学习)
- MapXtreme开发经验分享-实现鹰眼
- 十年经验分享如何学好嵌入式系统开发
- 小博老师经验分享 ——如何选择一门开发语言
- 如何合理设计HybridApp: 移动应用跨平台开发经验分享
- 如何从零开始开发一款嵌入式产品(20年的嵌入式经验分享学习,来自STM32神舟系列开发板设计师的总结)