处理mapinfo文本对象与坐标提取

处理mapinfo文本对象与坐标提取

2007-09-16 09:52:05| 分类: 默认分类 | 标签: |字号 订阅

如何处理mapinfo文本对象图层
问题:文本对象图层是作为地图的重要标注,需要显示在地图上,但是对于编程来说,文本不好处理,如

果是点对象的话,就便于管理。
解决方法:将文本内容保存到属性当中,使用点对象替换这些文本对象,如果不需要出现标注的锚点,可

以将这些点对象替换为图形为“无”的样式。开启此图层的自动标注功能,即可在如MapXtreme for Java

中显示这些标注
工具:MapInfo Professional 5.0以上版本
使用功能:查询、维护表、更新列、删除图形、创建点(相关内容请参考用户手册的部分章节)
操作步骤:
1、打开要处理的文本对象层的表
2、使用查询功能,打开查询对话框,在条件中输入“not object”,选中相应的表之后点击确定按钮
3、删除所选择出的记录,如果没有记录被选择出来,进行下一步
4、在菜单中选择表>维护>紧缩表,将要处理的表紧缩
5、在菜单中选择表>维护>表结构,打开表结构对话框,不论原先的表结构有哪些内容,需要建立四个新

的字段,内容如下:
字段名 类型 参数 用途
Type 整数 保存图元类型,用于筛选
Str 字符型 足够长 保存文本对象内容
X 浮点 保存文本对象位置x坐标
Y 浮点 保存文本对象位置y坐标

单击确定按钮保存表结构
6、在菜单中选择表>更新列,打开更新列对话框
更新的表为要处理的表
更新的列为Type列
从当前表中获取值
值为ObjectInfo(obj,1)
点击确定,关闭当前对话框
7、在菜单中选择查询>选择,打开选择对话框
在当前处理的表中选择Type字段值为10的记录出来,选择到命名为TEXT的表中
8、在菜单中选择表>更新列,打开更新列对话框
进行三次更新列操作
1、更新的表为TEXT
更新的列为Str列
从当前表中获取值
值为ObjectInfo(obj,3)

2、更新的表为TEXT
更新的列为X列
从当前表中获取值
值为CentroidX(obj)

3、更新的表为TEXT
更新的列为Y列
从当前表中获取值
值为CentroidY(obj)

9、打开TEXT表的一个地图视图,从TEXT中选择所有对象,在菜单中选择编辑>仅清除地图对象
10、在菜单中选择表>创建点,打开创建点对话框
选择表TEXT,选定点样式,指定点的横纵坐标,缩放比例设置为1
单击确定按钮创建点
11、保存表,并打开以地图视图打开此表,使用自动标注功能自动标注本地图图层即可

posted @ 2011-09-16 17:00  树根  阅读(520)  评论(0编辑  收藏  举报