从MapX到MapXtreme
总的来说MapXteme比MapX强悍得多,使用上麻烦得多,很多地方变化之大,相当于从头学起。
先总结一下,免得久了不看又忘了。
一、图元
MapXtreme中叫几何,图元对应表中的一行,用CreateFeatureGeometryColumn创建几何字段,CreateStyleColumn创建样式字段,早期版本字段名长度有限制
图元的选中情况MapInfo.Engine.Session.Current.Selections.DefaultSelection
点:Point,MultiPoint
线:MultiCurve
多边形:Polygon,MutiPolygon
二、样式
MapXtreme的样式老复杂了,例如区域样式是由边线加填充样式组成,组合方式很多,灵活倒是灵活,2005 v6.7及以上版本还可以抗锯齿、半透明
点样式:简单向量点SimpleVectorPointStyle、字体点FontPointStyle、图片BitmapPointStyle,
线样式:SimpleLineStyle
面样式:AreaStyle
二、图层
MapX下图层是图元的集合,即Layer下是Features,可以给图层添加多个字段,不过字段一多效率极低
MapXtreme中将图层变成了二维表,而且需要用MapInfo.Engine.Session.Current.Catalog来遍历(添加或获取),图层有两个名字一是图层名,二是别名(表名),别名是唯一区别图层的。
1、图层的显示
在MapXtreme中,用IsVisible查看图层显示状态。用Layer.Enable来设置显示状态。
2、图层的添加
代码如下(C#):
Catalog _catalog = MapInfo.Engine.Session.Current.Catalog;
MapInfo.Data.Table _tempTable = null;
Map _map = MapControl1.Map ;
//默认为内存表,永久表应使用参数MapInfo.Data.TableType.Native
TableInfo ti = TableInfoFactory.CreateTemp("临时");
//创建geometry列
ti.Columns.Add(MapInfo.Data.ColumnFactory.CreateFeatureGeometryColumn("Obj", CoordSys));
//创建MI_Style列
ti.Columns.Add(MapInfo.Data.ColumnFactory.CreateStyleColumn());
//向表信息中添加自定义字段
ti.Columns.Add(MapInfo.Data.ColumnFactory.CreateIntColumn("Index"));
ti.Columns.Add(MapInfo.Data.ColumnFactory.CreateStringColumn("Name", 50));
//永久表需设置文件的全路径,Temporary = false
ti.TablePath = tlbFilePath;
ti.Temporary = false;
_tempTable = _catalog.CreateTable(ti);
_map.Layers.Insert(0, new FeatureLayer(_tempTable));
三、搜索图元
在MapX下搜索图元用layer.searchXXX方法来实现
在MapXtreme下,用Find对象进行搜索,先通过图层表别名取到表,再生成查询条件,最后通常Catalog.SearchXXX来实现
var sif = MapInfo.Data.SearchInfoFactory.SearchWhere(sqlWhere);//SQL的条件,例如:a = 1 or b = '123'
var ftrs = MapInfo.Engine.Session.Current.Catalog.Search(table, sif);
若没有条件字段(唯一的信息存到图元的标签里了),就只能遍历表,再取图元几何的Caption了
((MapInfo.Geometry.LegacyText)feature.Geometry).Caption
四、标注
MapX下用Layer.Autolabel
MapXtreme就麻烦了,标注必须跟图层的表关联,做为标注的数据源,然后设上标注的表达式
Table table = MapInfo.Engine.Session.Current.Catalog.GetTable("图层表别名");
LabelLayer layer = new LabelLayer();
map.Layers.Add(layer);
LabelSource source = new LabelSource(table);
source.DefaultLabelProperties.Caption = "KEY_NAME";//标注表达式
layer.Sources.Append(source);
五、图层分组
MapX下好像没有这个功能,MapXtreme下反正是有,还可以覆盖样式图层,挺牛,不过遍历时要递归
六、专题图
MapXtreme在专题图方面比MapX强大了很多,而且很灵活,图层就是表,多个表不就是一个数据库了么,所以,什么关联查询啊都很容易实现,有木有。
还没学习完,以后再补上。
从MapX到MapXtreme相关推荐
- MapX和MapXtreme区别
2005年5月,MapInfo发布了新产品Mapinfo MapXtreme 2004 6.2 版.MapXtreme 2004是MapInfo为了支持Microsoft的 Windows.NET框架 ...
- MapXtreme 简单了解
MapXtreme也是MapInfo公司的产品,所以使用的地图和MapX相同,但是差别还是很大的,MapXtreme基于面向对象,由一系列基类和 其继承类组成了现在的MapXtreme:MapX则没有 ...
- mapXtreme for .net
在mapxtreme FOR .NET 版本中,怎样选择某一层上的图元,并返回其.. FOR .NET 版本中,怎样选择某一层上的图元,并返回其中的一些列的值(比如 等级: 信誉值: 100 所属论坛 ...
- 空间数据库之矢量数据上载方法
转载自:http://publishblog.blogchina.com/blog/tb.b?diaryID=5349656 摘 要:采用Oracle Spatial 存储.管理空间数据,易于解决数 ...
- Oracle Spatial中上载GIS空间数据方法研究
Oracle Spatial中上载GIS空间数据方法研究 作者:佚名 文章来源:博客中国 点击数:6873 更新时间:2006-8-24 摘要:采用Oracle Spatial 存储 ...
- Winform下的地图开发控件(GMap.NET)使用心得
原文地址为: Winform下的地图开发控件(GMap.NET)使用心得 我们先看看GMap.NET的定义: GMap.NET是一个强大.免费.跨平台.开源的.NET控件,它在Windows Form ...
- 地理信息系统比较牛的网站(原创)---之可以丰富你的GIS知识
1.http://bbs.esrichina-bj.cn/ 不用多说吧 2.http://www.gisempire.com/bbs/ 这个网站是中国图强地理信息有限公司2003年主办的GIS ...
- MapInfo2007年用户大会参会记录
昨天去北五环五洲皇冠参加了MapInfo2007年用户大会,从大会规模上感觉MapInfo公司的规模比起ESRI级别的巨牛公司要小不少.但MapInfo刚被收购,也重新调整了市场策略,应该有较大的增长 ...
- mapxtreme开发资料全集
为单值主题图创建自定义标注 http://www.gisdn.net/forum.php?mod=viewthread&tid=295&fromuid=3 创建有范围的主题图 http ...
最新文章
- 博士毕业去哪了?光鲜亮丽的高校教师工资了解下!
- bootstrap菜单展开收起_菜单展开及收缩效果 bootstrap+jquery
- 转载自搜狐科技【技术那些事儿】LTE网络中的用户数据库HSS与传统2G/3G的HLR有何区别?能否融合组网?...
- erlang四种启动监控策略
- [USACO1.3]混合牛奶 Mixing Milk
- 介绍一个统计各个网站访问时长的Chrome扩展 - Rooster
- 约束流–没有Drools规则语言的现代Java约束
- c语言 字符串分隔,c语言字符串分割–strtok | 逗号分隔-huangea的博客
- ba控制系统的服务器,01-正文
- mfc-PlaySound
- 【毕设】ASP.net校友录毕业设计(源代码+论文+开题报告+答辩PPT)
- [转]模块化——Common规范及Node模块实现
- java 封闭类型_java – 如何获取封闭类?
- php mysql 嵌套查询_MYSQL数据库MySQL嵌套查询实例详解
- Ubuntu20.04安装有道词典 + 卸载
- python抓取网易云音乐评论_如何爬取网易云音乐评论?
- Unity使用VS2019打开代码出现不兼容的解决方法
- Coverage Path Planning(区域覆盖)
- Keil 编译器AC6中的LLVM编译原理
- figcaption标签css,[HTML]正确使用Figure和Figcaption标签(译)_html/css_WEB-ITnose