2018 SuperMap iObjects 常见问题解答集锦(三)

问:SuperMap Objects C++如何进行sql查询?
答: “UGDatasetVector* dataset = (UGDatasetVector*)pWorkSpace->GetDataSource(0)->GetDataset(0)
UGQueryDef* query = new UGQueryDef();
query->m_strFilter = _U(”"smid >3);
UGRecordset* recordset = dataset->Query(*query);

问:SuperMap Objects C++如何添加对象到跟踪图层?
答:UGGeoPoint point=UGGeoPoint();
point.SetX(120);
point.SetY(40);
mapControlEditor->m_mapWnd.m_Map.m_TrackingLayer.Add(&point,_U("“das”"));

问:SuperMap Objects C++如何刷新跟踪图层?
答:mapControlEditor->m_mapWnd.m_Map.SetRefreshFlag(false);
mapControlEditor->SendInvalidateFunc();

问:SuperMap iObjects Java组件中有直接导出shp格式数据的接口吗
答: 这个是没有的,但是可以用exportsetting这个接口,设置导出的文件类型shp,setTargetFileType(FileType.SHP)

问:HadoopCOGWriter写文件是报错: java.lang.NoSuchMethodError shapeless.Witness$.mkWitness(Ljava/lang/Object;)Lshapeless/Witness。
答: 该问题是因为shapeless版本的问题,spark2.1.1的jars目录下有shapeless2.0.0版本的,而我们raster包 集成了2.3.2版本的,解决办法将spark目录下的shapeless包不引用,引用shapeless2.1.1-2.3.2版本的包。

问:Java组件里的recordset提供批量删除记录的接口吗?
答:支持的,可以用Recordset.BatchEditor实现,在recordset遍历中执行recordset.delete(),遍历完后执行editor.update()。

问:使用spark提供的区域统计main函数进行行政区划面统计图斑数据,统计的结果图斑反而比原始图斑数据对象数多?
答:行政区划面对象R与图斑对象T如果有这样的空间关系,R1与T1相交一部分,R2与T1也相交一部分,就如同某个图斑是在交接处位置,这样图斑T1参与计算两次,对象数也就会被统计两次,所以会出现与原始图斑数不一致的情况。

问:在java组件中有属性转点的接口吗?
答:在组件中是没有属性转点的接口的,可以将属性表导出为csv格式数据,然后导入csv数据,并设置setIndexsAsPoint(int[] fieldIndexs),将转换为点或者三维点数据集

问:在java组件中有面转点的接口吗?
答:组件中目前没有面转点的接口,可以用Geometry.getInnerPoint() 获取面的内点

问:SuperMap JAVA组件中运行java工程报Wrapj600的错误,怎么办
答: 报这个错误是由于在系统环境变量中没有设置java工程所引用的jar包所在的bin路径,设置完后需要重启开发平台

问:Java组件中怎么将多个obj导入到一个模型数据集里,且能保证多个obj的位置是正常的?
答:每个obj对象所构造的GeoModel3D,要求设置的位置意义,如果是经纬度就设置为true,且模型数据集的坐标系一致。
GeoModel3D model3D = new GeoModel3D(model);
model3D.setIsLonLat(true);
model3D.setPosition(new Point3D(0, 0, 0))

问:用java组件怎么查询oracle数据源里的数据集啊?
答:想要根据类别及时间戳来查询记录。 条件字段里设置参数即可,使用时间函数to_date

问:Spark组件将矢量数据写入hbase失败,报错Call to YB/169.254.231.219:19265 failed on connection exception: java.net.ConnectException: Connection refused: no further information?
答:这是因为spark组件没有连接上hbase导致,查看hbase的ip是否为这个,如果不是,可能是因为机器上的其他网络适配器的ip导致的,需要禁用。

问:SuperMap iObjects Java组件中如何将三维全球底图隐藏或者设置透明度
答: 可以的,可以用GlobalImage接口,setVisible(boolean value) 设置是否可见,setTransparency(int value) 设置全球底图的透明度。

问:Java组件中如何将一张图片导入到符号库中?
答:可以用symbolLibrary.add(symbol),symbol.fromGeometry(),将图片传到Geopicture中,导入成功后会返回一个符号ID,最后需要保存空间

问:二三维同步多选高亮显示怎样实现?
答: “Selection[] selection = mapControl1.Map.FindSelection(true);
Layer3DDataset layer3DDataset = sceneControl.Scene.Layers[0] as Layer3DDataset;
Selection3D selection3D = layer3DDataset.Selection;
int[] recordID = new int[selection[0].Count];
for (int i = 0; i < selection[0].Count; i++)
{
recordID[i] = selection[0][i];
}
selection3D.AddRange(recordID);
layer3DDataset.Selection.UpdateData();”

问:桌面插件开发能否在属性对话框里添加按钮?模型旋转没有效果
答: 不能添加,属性对话框是封装好的,只能后续自己开发实现。模型旋转完后必须写更新渲染所需要的数据这行代码。

问:UDBX引擎与UDB引擎的区别是什么?
答:UDBX是多人共享的,而UDB是独占的。

问:范例三维测量里点击第一个点就出现距离而且值很大。
答:输出量算结果时的if语句里加上点集合的个数大于等于1即可。

问:二维地图里怎样获取选择集以及清除选择集?
答:Selection[] s = mapControl1.Map.FindSelection(true);
s[0].Clear();

问:组件开发环境配置好之后出现引用未调用的错误,可是引用已经调用了.
答:出现这种情况一般是调用引用的位置不对。调用引用必须是iObject.Net的安装目录下的Bin文件夹下的.dll文件。

问:跟踪图层里添加了注记,然后保存地图之后在布局中打开打印布局,之前创建的注记消失了。
答: 跟踪图层是不能保存的,当关闭地图再次打开时,跟踪图层又是一个空白的图层。添加注记有两种方法,一种是新建一个文本数据集,另一种是直接在布局窗口绘制文本。

问:怎样获取折线的节点?
答: 用GeoLine3D.Item()接口。

问:怎样将经纬度数据用代码添加到点数据集里?
答: 定义一个point2D,将经纬度赋予point2D,然后获取点数据集的记录集,然后用Recordset.AddNew(geoPoint)即可添加到点数据集中。

问:.Net能实现打开在线百度地图吗?
答:可以实现。代码如下:
datasourceConnetionInfo.Server="“https://map.baidu.com/”";
datasourceConnetionInfo.EngineType = EngineType.BaiduMaps;
datasourceConnetionInfo.Alias = ““baidu””;
workspace.Datasources.Open(datasourceConnetionInfo);"

问:在场景中选择模型获取记录集出现错误选择集为空,选择集是在CenceControl.MouseDown事件中获取的。
答:使用SceneControl.ObjectSelected 事件,或者将获取选择集的代码写在button控件的事件里。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值