SuperMap GIS基础产品组件GIS FAQ集锦(4)

SuperMap GIS基础产品组件GIS FAQ集锦(4)

【iObjects Spark】大数据组件对矢量数据集进行汇总统计,整型字段存在null的情况,如何将null改为0?

【解决办法】
可以用字段计算算子,结果类型写int,表达式版本V2是支持简单的条件写法,表达式示例如下
if(@[“TBMJ_1”]==null){return 0;}else{return @[“TBMJ_1”];}

【iObjects Spark】大数据组件怎么使用web型许可?

【解决办法】spark standalone模式和yarn-client模式

  1. 安装web许可中心软件,配置web许可,对外提供web许可服务。需要objects for spark模块。
  2. 在spark集群节点机器配置系统环境变量 BSLICENSE_SERVER=ws://ip:9183 或者 在代码里设置System.setProperty(“BSLICENSE_SERVER”,“ws://ip:9183”)
  3. bdt程序里不需要做啥,运行后在日志能看见正常打印。

yarn-cluster模式

1.在spark-default.conf设置spark.yarn.appMasterEnv.BSLICENSE_SERVER=ws://ip:9183,或者在spark-submit 设置–conf spark.yarn.appMasterEnv.BSLICENSE_SERVER=ws://ip:9183。这样driver端才能读取到变量。

【iObjects Java】基于Java组件开发的后台服务程序,程序的功能主要是数据处理相关的,在运行一段时间后出现了崩溃,有崩溃日志,但是没有崩溃dmp文件,怎么让其生成以便分析原因?

【问题原因】未生成dmp文件,是因为程序没有开启捕捉崩溃文件的生成。

【解决办法】
1、将系统自带Windows Error Reporting Service服务,设置为“自动”,并开启。
2、管理员身份运行catchCrash.bat脚本,注册捕捉。
3、在java程序启动时加上 -XX:+CreateMinidumpOnCrash 参数。
4、java程序崩溃,即可生成 dmp或mdmp文件。
5、用java visualvm工具打开。
6、可以在系统事件中,查看系统日志,关于应用程序的日志。

【iObjects Java】Java组件如何给栅格单值专题图设置特殊值为透明或其他颜色啊?

【解决办法】

// 示例如下,一定是在添加专题图图层后,再给特殊值设置透明风格才会起作用。  
ThemeGridUnique themeUnique = new ThemeGridUnique();
themeUnique.add(getThemeItem("1", new Color(0, 0, 255)));
themeUnique.add(getThemeItem("2", new Color(0, 255, 0)));
themeUnique.add(getThemeItem("3", new Color(255, 0, 0)));
Layers layers = map.getLayers();
Layer l = layers.add(datasetGrid, themeUnique, true);
ThemeGridUnique gridUnique1= (ThemeGridUnique) l.getTheme();
gridUnique1.setThemeSpecialValue(0);
gridUnique1.setSpecialValueTransparent(true);

【iObjects Java】10.2.1版本的Java组件导入shp文件后字段的中文值乱码了,应该如何解决?

【问题原因】不同arcgis版本导出的shp文件在编码上有差异。

【解决办法】

  1. win上用java组件导入时需要设置为utf8或者ansi编码,中文才可正确。
  2. linux上用java组件导入时需要设置gb18030编码,中文才可正确。

【iObjects Java】【11.0.1】 请问使用 s3mTo3DTiles 接口对点云数据生成的 S3M 缓存进行转换失败,如何解决?

【问题原因】 目前 ObliquePhotogrammetry3DModelTool 类提供的 s3mTo3DTiles 接口仅支持倾斜摄影和模型数据转换为 3DTiles 格式,目前暂不支持点云缓存。

【iObjects .NET】【11.0.1】 请问 iDesktop 桌面端三维场景属性中可以设置 “显示高度” 的参数,这个功能对应的是 iObjects .NET 组件的哪个接口或属性呢?

【解决办法】 SceneControl 对象的 IsStatusBarShowAltitude 属性。

【iObjects Java】【11.0.1】 请问 iDesktopX GPA 工具箱提供的 “北斗网格编码” 算子,在 iObjects Java 组件中有开放对应的功能接口吗?

【解决办法】 iObjects Java 组件提供了 “北斗网格编码” 的算法接口 SpatialGridCoding。

【iObjects Java】【11.0.1】 请问 iObjects Java 组件加载 iServer 发布的 WFS 服务,默认只显示了 1000 条记录,数据没有显示完怎么办呢?

【问题原因】 iObects Java 组件端默认加载 iServer 发布的 WFS 服务限制 1000 条记录。

【解决办法】 在 iObjects Java 组件加载 iServer 发布的 WFS 服务的 url 中添加 maxFeature 的参数指定需要加载的记录条数。

【iObjects】如何获取到分组图层下的普通图层?

【解决方案】直接通过LayerGroup 【索引号】即可获取到对应的普通图层,LayerGroup 的Count属性可以获取到当前图层分组下普通图层的数量。

【iObjects】如何设置地图想要显示的范围?

【解决方案】MapControl.Map.viewbounds,既可以设置地图显示范围,注意设置后需要刷新地图。

【iObjects】如何计算几何对象的中心点坐标?

【解决方案】
1、通过Geometry.Bounds获取最小外接矩形。其左边界坐标值、下边界坐标值、右边界坐标值、上边界坐标值即为边界范围
2、获取到外接矩形以后,通过Rectangle2D.Center获取到中心点坐标系

【iObjects 】iObjects .NET 组件如何获取文本数据集的文字?

【解决方案】从文本数据集获取记录集,通过记录集获取 GeoText 对象即可

【iObjects】跟踪图层上的对象如何给面数据设置贴对象模型?

【解决方案】可以直接对三维矢量面对象设置 GeoStyle3D 样式,设置贴对象模式AltitudeMode .ClampToObject即可

【iObjects】如何获取场景中的专题图图层?

【解决方案】

 //通过layer3D拿到Layer3DDataset的Theme3DUnique,获取专题图图层。
Layer3D layer3D = sceneControl.Scene.Layers[0]; 
Layer3DDataset layer3DDataset= layer3D as Layer3DDataset; 
Theme3DUnique theme3DUnique1= layer3DDatasetUnique.Theme as Theme3DUnique;

【iObjects】面对象拉伸成模型对象,接口是哪个?

【解决方案】对应的接口为:ModelBuilder3D.LinearExtrude

【iObjects Java】Java组件如何计算影像数据集的分辨率?

【解决办法】1.首先通过影像数据集获取范围:datasetImage.getBounds();
2.计算影像数据集的宽度和高度:datasetImage.getHeight(),datasetImage.getWidth();
3.通过计算的范围宽度/影像数据集宽度获取X分辨率,同理获取Y方向分辨率。

【iObjects Java】如何创建一个新的数据集?

【解决办法】

DatasetVectorInfo datasetvectorinfo = new DatasetVectorInfo();
datasetvectorinfo.setType(DatasetType.MODEL);
datasetvectorinfo.setName("New_Model_1");
DatasetVector datasetVector = datasource.getDatasets().create(datasetvectorinfo);
datasetVector.setPrjCoordSys(new PrjCoordSys(4326));

【iObjects Java】在场景中添加一个新的图层提示添加成功,但是看不到模型是为什么?

【问题原因】加载图层之后没有定位到图层

【解决办法】sceneControl.getScene().ensureVisible(m_sceneControl.getScene().getLayers().get(0))定位到图层

【UE】影像数据不受光照影响

【解决方法】影像数据渲染使用的材质球为 Global,默认为“无光照”模式。设置为默认光照,已遮罩,再断开自发光,连接到基础颜色既是受光照影响。

【iObjects java】导出SHP文件命名出现问题

【问题原因】文件名称含有特殊字符导致导出失败

【解决办法】删除文件名中的特殊字符再导出文件

【iObjects java】AnimationBlink构造方法是什么

【解决办法】

AnimationManager animationManager = AnimationManager.getInstance();
AnimationBlink animationGO = 
(AnimationBlink)animationManager.createAnimation(AnimationDefine.AnimationType.BlinkAnimation);	
AnimationGroup animationGroup = animationManager.addAnimationGroup("test");
AnimationBlink animationBlink= (AnimationBlink) animationGO;
animationBlink.setGeometry("1");
animationBlink.setName("test");
animationBlink.setStartTime(1.01);
animationBlink.setDuration(10.1);
animationGroup.addAnimation(animationBlink);

【iObject JAVA】如何直接把一列字段赋同一个值?

【解决办法】使用遍历更新记录或更新列接口,更新列接口:DatasetVector.updateField,该接口只需要调用一次,就可以更新整列,并且更新效率比遍历更快。

【iObject .NET】如何把两份记录集Recordset合并为一个,在保存为矢量数据集?

【解决办法】将一个记录集保存为数据集datasetvector,使用datasetVector.Append,将另一个记录集的数据集追加进来。
【iObject .NET】组件如何连接MySQL数据库?

【解决办法】1.创建MySQL数据库型数据源,如何打开数据库型数据源

2.直连数据库,使用官方或三方数据库插件引擎,比如ODBC

建议第一种方法,对于GIS数据的可视化和使用性能更高,支持分析能力更多。

【iObject Java】开发环境正常’. …Bin/WrapRalspace.dll: Can’t find dependent libraries’为什么报错?

【问题原因】考虑为机器没有独立显卡,缺少三维功能相关的依赖,导致读取依赖报错。 此问题影响三维功能,不影响二维功能。 如需开发三维功能,建议更换为独显机器。

【iObjects Java】点线面空间数据存在CSV文件里,如何通过Java组件将其导入到数据源成为数据集?

【解决办法】可以参考ImportSettingCSV接口属性进行导入为数据集的设置。
如果是线面数据,可以通过setIndexAsGeometry属性指定存储几何对象的字段索引位置。
如果是点数据,可以通过setIndexsAsPoint属性指定点对象的xyz坐标对应字段索引位置。
其他属性设置,如通过setFirstRowIsField设置首行是否作为字段名称,通过setSeparator设置CSV文件的分隔符。

【iObjects Java】三维缓存Block数据(单个Tile)文件如何读取?

【解决办法】可以通过两种接口实现:
1、可通过Toolkit.extractCacheFile2 接口,该接口支持从缓存文件读取数据流。
2、可通过CacheProcessTools类extractCacheFile接口读取大文件的TIN缓存。

【iObjects Java】如何通过Java组件实现自动发布iServer的影像服务?

【解决办法】可以通过两个步骤实现:
第一步:先生成服务者 调用http://127.0.0.1:8090/iserver/manager/providers.json
第二步:调用http://127.0.0.1:8090/iserver/manager/components.json 生成影像服务组件接口
详细的参数可以通过iserver的chm帮助文档查看rest api说明,也可以根据iServer创建影像服务发出的请求进行模拟,可以通过F12查看。

【iObjects Java】Java组件在win或linux上将面数据集导出为shp或gdb格式文件时有哪些需要注意的点?

【解决办法】有三个关键细节需要注意:

  1. Java组件包内部用到了gdal_data变量,动态以插件方式加载bin\ProjectionMappingTable目录的坐标系文件,导出shp或gdb时需要写坐标系信息就需要用到它。如果出现丢失坐标系prj或create table failed估计这个变量没正确配置或读取坐标系有问题gdal找不到匹配的坐标系。像安装postgis时会把gdal_data变量写到系统环境里,这就导致变量冲突,java组件默认加载了系统的就不对。
  2. linux上只支持gdb读取,不支持写出。只有filegdb gcc5以上的库支持linux写gdb,我们用的gcc4.8。
  3. 父类ExportSetting.setFilter()方法设置不起作用,需要用其子类ExportSettingFileGDBVector.setFilter()方法才起作用。

【iObjects Java】Java组件直接打开dwg文件进行投影转换,但转换结果记录数为0是什么原因?

【问题原因】直接打开dwg实际是挂载内存数据源中,导致转换未能写入结果。
【解决办法】建议采用udbx作为临时存储,来承载dwg文件。

【iObjects Java】Java组件请求一个https协议的wms地图瓦片报错java.security.cert.CertificateExpiredException如何解决?

【问题原因】
访问的https域名,证书是由Sectigo颁发的,其根证书名为AddTrust External CA root,这个根证书在2020年5月30日已经到期了

【解决办法】
1.去Sectigo官方下载更新证书列表,更新到jdk/jre/lib/security/cacerts文件。操作步骤相对复杂可以操作后面的链接。
2.用别人的或其他版本(可以正常访问该https请求)jdk目录下的cacerts文件替换jdk/jre/lib/security/cacerts文件也可以。【推荐这种简单的办法】 “https://blog.csdn.net/cloudfin/article/details/111052603”

猜你喜欢

转载自blog.csdn.net/supermapsupport/article/details/131824711
今日推荐