SuperMap iObject二次开发问题解答及技巧

需积分: 21 7 下载量 5 浏览量 更新于2024-07-18 1 收藏 1.73MB PDF 举报
SuperMap iObject常见问题解答集锦 本文总结了使用SuperMap iObject中常见的问题和解决方案,涵盖了二次开发中的一些技巧和经验。下面是详细的知识点总结: **问题1:如何将外部数据显示在标签专题图上?** 解决方案:有两种方法可以实现外部数据的显示。第一种方法是使用soThemeLabel.ForeignValue属性,实现分两个步骤:(1)设置标签专题图的ForeignValue=2,表明使用外部数据;(2)关联外部数据,对标签专题图的ForeignValue属性进行设置,通过这个属性设置,可以将数据集中原有的属性与外部的其他属性关联到一起。第二种方法,对于数据库中的纯属性表,可以通过设置soQueryDef.RelTables关联表,将属性数据与空间数据关联起来再制作专题图,将属性表中的字段以标签的方式显示出来。 **问题2:在地图上指定区域,仅对区域内的对象制作专题图,如何实现?** 解决方案:目前专题图对象还不支持过滤功能,可以考虑用两个图层,一个图层显示,另外一个图层用来制作专题图,对该图层设置过滤条件,仅显示指定区域内的对象。对于单值专题图对象还可以考虑AddItem的方法,将指定区域内的对象字段特征值添加到专题图对象中进行设置。 **问题3:数据集保存在SDX+forOracle数据源中,对这样的图层用str(SMID)+str(SMID)表达式制作专题图,总是提示“表达式错误”,怎么回事?** 解决方案:Oracle中不支持str这样的函数操作,正确的表达式应该是:To_Char(SMID)||To_Char(SMID)。 **问题4:怎样设置单值专题图中Item的可见或不可见?** 解决方案:soThemeUnique.ItemStyleEnabled可以设置图层显示时各单值类别是否使用专题风格。 **问题5:如何使用专题图向导?如何移除专题图?** 解决方案:使用SuperLegend控件的ShowThemeWizard方法可以调出专题图向导,soLayer.DeleteThematicMap()方法可以删除专题图。 **问题6:如何对网络数据集的子数据集创建专题图?** 解决方案:将网络数据集添加到地图窗口后,通过soLayer对象的SubLayer属性获得网络图层的子图层对象,然后对这个子图层创建专题图。 **问题7:如何实现反选功能?** 解决方案:假设选择了若干点对象的SMID分别为2、4、5、7、10,实现反选时设置查询条件为”smidnotin(2,4,5,7,10)”。对此图层数据集查询出记录集,转换为选择集即可。 **问题8:如何将选中的点的属性表显示出来?** 解决方案:选择对象后,使用相应的方法将选中的点的属性表显示出来。 本文总结了使用SuperMap iObject中常见的问题和解决方案,涵盖了二次开发中的一些技巧和经验,旨在帮助开发者更好地使用SuperMap iObject解决实际问题。