SuperMap GIS基础产品FAQ集锦(20240911)
一、SuperMap iObjects Java
问题1:【iObject Python】Objects Python产品有哪些能力特性和优势?
11.2.0
【解决办法】iObjects Python产品包含传统GIS功能(基于iObjects Java扩展的功能接口)和AI GIS功能模块。
其中传统GIS功能主要包括:空间数据导入导出、投影转换、地图制图、矢栅数据处理与分析、空间统计分析;
AI GIS功能主要包括:空间统计、地理回归、聚类分析、元胞自动机、 目标检测、对象提取、二元分类、地物分类、场景分类、通用变化检测、提示分割、模型评估、图片分析、视频分析
问题2:【iObject Python】iObjects Python产品支持在哪些系统安装使用?
11.2.0
【解决办法】支持在Windows和Linux系统使用,暂不支持macOS系统。
问题3:【iObject Python】Objects Python产品如何部署安装?
11.2.0
【解决办法】下载产品包,http://support.supermap.com.cn/DownloadCenter/DownloadPage.aspx?id=2641;
由于其基于 SuperMap iObjects Java 组件构建,所以在安装 iobjectspy 之前,需要下载 SuperMap iObjects Java 组件,并将Java组件的 Bin 目录设置到环境变量中。大致步骤:
1.python模块安装,两种方式
– 执行产品包内的 setup.py 脚本进行安装
python setup.py install
– pip 进行在线安装
python -m pip install iobjectspy
2.conda在线安装依赖
– 如需使用CPU进行深度学习
conda env create -f requirements-conda-cpu.yml
– 如需使用GPU进行深度学习(性能更优),并建议安装(更新)最新显卡驱动
conda env create -f requirements-conda-gpu.yml
– 注:需使用 清华大学开源软件镜像站 作为安装源,https://mirror.tuna.tsinghua.edu.cn/help/anaconda/
3.部署iObjects Java环境
问题4:【iObject Python】使用iObjects Python时,对应的iObjects Java环境怎么部署并使用?
11.2.0
【解决办法】●Windows配置iObjects Java环境
1、将 SuperMap iObjects Java 组件的 Bin 目录设置到 PATH 变量。
2、在安装完 SuperMap iObjects Python 后,在 cmd 命令行中执行 “iobjectspy set-iobjects-java E:/SuperMap/iObjects/Bin_x64”,通过这种方式,必须确保 Python 的 Scripts 目录在 PATH 环境中,或者直接在 Scripts 目录下执行。
3、启动 python 窗口,执行以下代码:
import iobjectspy
iobjectspy.set_iobjects_java_path(‘E:/SuperMap/iObjects/Bin_x64’)
●Linux配置iObjects Java环境
1、将 SuperMap iObjects Java 组件的 Bin 直接设置到 /opt/SuperMap/iobjects/1010/Bin 。
2、将 SuperMap iObjects Java 组件的 Bin 设置在环境变量中。
export LD_LIBRARY_PATH=/home/user/iobjects-java/bin:$LD_LIBRARY_PATH
3、在安装完 SuperMap iObjects Python 后,在 cmd 命令行中执行 iobjectspy set-iobjects-java /home/user/iobjects-java/bin。
4、启动 python 窗口,执行以下代码:
import iobjectspy
iobjectspy.set_iobjects_java_path(‘/home/user/iobjects-java/bin’)
问题5:【iObject Python】iObjects Python支持哪些版本的Python环境?
11.2.0
【解决办法】理论支持Python 3.6.+及以上版本,我们适配且推荐的版本有:Python 3.6.6 Python 3.7 Python 3.8 Python 3.9
问题6:【iObject Python】iObjects Python AI使用影像推理等功能时推荐硬件配置?
11.2.0
【解决办法】参考截图
问题7:【iObject Python】iObject Python组件在部署安装requirement.txt报错:Could not find a version,可能什么原因?
11.2.0
【解决办法】由于当前python环境下的pip版本过低,执行python -m pip install --upgrade pip即可解决。
问题8:【iObject Python】iObjects Python组件产品如何检测模块是否引入成功?
11.2.0
【解决办法】进入Python命令行,执行相应引入命令如:from iobjectspy import open_datasource,若无输出则引入成功。
问题9:【iObject Python】iObjects Python AI功能Machine Learning Resources包中,目标检测示例模型存放在哪里?
11.2.0
【解决办法】在产品包的resources_ml\model\obj_det_plane_car_ship_cascade目录中,obj_det_plane_car_ship_cascade.sdm文件
问题10:【iObject Python】iObjects Python AI模型训练报错“Cannot find proj.db”,该如何解决?
11.2.0
【解决办法】由于计算机还安装其他proj依赖相关软件,导致proj库冲突。 可以将环境变量中有关proj依赖相关的第三方变量删掉,比如QGIS、PostGIS等软件的相关环境变量。
问题11:【iObject Python】iObjects Python AI二元分类预测结果加载到地图显示为黑色,是什么原因?
11.2.0
【解决办法】二元分类的结果栅格数据集只有两个像元值0和1,可以将数据集添加到地图窗口,然后对数据做一个单值专题图,然后将影像添加进来做对比。
问题12:【iObject Python】iObjects Python AI模型训练报错“UnicodeDecodeError:‘gbk’ ”,该如何解决?
11.2.0
【解决办法】由于模型训练时候设置的参数有中文导致的,在进行模型训练时设置的相关参数尽量使用英文。
问题13:【iObject Python】iObjects Python生成训练数据时没有报错,但是没有生成相关图片文件,可能是什么原因?
11.2.0
【解决办法】1、可能是影像文件和标签文件坐标系不一致导致,需要将数据设置为同一个坐标系。
2、影像文件的行列像素比较少,设置的像元大小较大导致的。需要查看标签大小设置正确的像元大小。
问题14:【iObject Python】iObjects Python模型训练时候报错“RuntimeEror:CUDA out of memory”,该如何解决?
11.2.0
【解决办法】由于内存不足导致的报错,可以将batch size的大小调小。
问题15:【iObject Python】iDesktopX模型训练报错“This application failed to start because it could not find or load the Qt platform plugin “windows””。该如何解决?
11.2.0
【解决办法】运行conda环境包中的.qt-post-link.bat文件,文件目录:supermap-iobjectspy-env-gpu-11.0.1-20221021-win64\conda\Scripts
问题16:【iObject Spark】iObjects Spark大数据技术体系包含哪些?
11.2.0
【解决办法】主要包括空间大数据存储管理、空间大数据分析、空间大数据可视化等技术,具体如下:
空间大数据存储管理:空间大数据接入、空间大数据治理、空间大数据引擎;
空间大数据分析:流式计算、数据汇总、空间分析、轨迹分析、模式分析、数据筛选、机器学习
空间大数据可视化:热力图、矩形格网图、六边形格网图、多边形格网图、轨迹图、OD图
问题17:【iObject Spark】iObjects Spark大数据用到了哪些原生大数据技术栈?
11.2.0
【解决办法】主要使用了一下技术栈:
1.基于空间大数据存储技术体系:
HDFS:存储矢量、栅格数据、三维数据;
Hbase:存储矢量、栅格数据;
Elasticsearch:存储点数据;
MongoDB:存储三维数据;
DSF:存储带分区索引的矢量数据;
PostgreSQL:存储矢量数据;
2.基于空间大数据分析技术体系:
Spark Core:内存技术引擎
Spark Streaming:流数据实时计算引擎
Spark MLLib:分布式AI机器学习引擎
3.基于空间大数据可视化技术体系:
Leaflet、Openlayers、Mapbox GL等前端可视引擎
问题18:【iObject Spark】iObjects Spark大数据技术在哪些行业里应用?
11.2.0
【解决办法】在随着大量数据在各行业爆发性增长,大多数行业的数据又与空间位置强相关;比如在智慧城市、交通、公安、环保气象、船舶等行业都有典型应用。
问题19:【iObject Spark】iObjects Spark大数据技术有哪些优势特点?
11.2.0
【解决办法】全平台支持大数据能力、全流程化大数据技术、全方位降低使用门槛、全天候保证快速高效、全体系实现多端接入、全产品适应不同场景。
问题20:【iObject Spark】iObjects Spark大数据组件如何安装开发?
11.2.0
【解决办法】下载产品包,http://support.supermap.com.cn/DownloadCenter/DownloadPage.aspx?id=2634
●基础安装
- Apache Hadoop 集群部署请参考官网
- Apache Spark 集群部署请参考官网
注:需要将Spark 安装路径保存至SPARK_HOME 环境变量中。 - 配置SuperMap iObjects Java
注:10.1.1及以后版本包含linux c++依赖库的整合运行包( wrap-lite-runtime-*.jar ),不需要部署iObjects Java,当需要使用analyst.vector.cpp 模块的分析方法或rddprovider 模块中的SDX 引擎时,依赖于SuperMap iObjects Java 组件功能,需要配置SuperMap iObjects Java 组件路径,配置方法如下:
Windows 将SuperMap iObjects Java 组件的bin_win 目录路径设置到spark-env.h 的PATH 中:
set PATH=%PATH%:{iObjectsforSpark安装目录}/lib/objectsjava/bin_win
Linux将Bin 目录配置到集群各节点的/opt/SuperMap/iobjects/1120/ 目录下,使用时默认查找该目录下的组件库。
问题21:【iObject Spark】iObjects Spark大数据开发环境依赖哪些版本的组件?
11.2.0
【解决办法】参考截图
问题22:【iObject Spark】Linux系统下Spark集群主节点启动后,子节点无法加入到主节点或者log日志中报:WARN Utils: Service sparkWorker could not bind on port 0?
11.2.0
【解决办法】绑定IP和计算名,使用命令cat /etc/hosts查看/etc/hosts 文件,并修改,使当前机器ip或者127.0.0.1 之后对应的主机名配置正确,例如:127.0.0.1 master。
问题23:【iObject Spark】SuperMap iServer 11i子节点加入主节点后启用spark集群,但是Spark集群下面却只有一个worker?
11.2.0
【解决办法】必须先启动集群主节点再加入子节点。如果先加入子节点,则子节点不会加入 Spark 集群。需先移除已添加的报告器,主节点启动后,子节点再重新添加报告器。
问题24:【iObject Spark】Idea工具里执行编写好的Spark程序,报错MetricsServlet cannot be instantialized初始化Spark错误?
11.2.0
【解决办法】是因为引用包的顺序不对导致,比如先引入supermap spark包,再引用spark包就会导致该错误;解决办法先引用原生spark包,再引用supermap spark组件包即可。
问题25:【iObject Spark】Spark组件使用外部Spark集群读取tif栅格数据报错:java.lang.IllegalStateException: unread block data?
11.2.0
【解决办法】因为序列化注册类没有生效导致的导致的错误,必须在sparkContext上下文对象初始化之前注册conf配置序列化。示例如下:
val registratorClass = Seq(s"
c
l
a
s
s
O
f
[
G
e
o
M
e
s
a
S
p
a
r
k
K
r
y
o
R
e
g
i
s
t
r
a
t
o
r
]
.
g
e
t
N
a
m
e
"
,
s
"
{classOf[GeoMesaSparkKryoRegistrator].getName}", s"
classOf[GeoMesaSparkKryoRegistrator].getName",s"{classOf[BDTKryoRegistrator].getName}“,
s”${classOf[KryoRegistrator].getName}“) //geotrellis不同版本包名可能不一样
val conf: SparkConf = new SparkConf()
.setAppName(AppName)
.setMaster(master)
.set(“spark.executor.cores”, spark_executor_cores)
.set(“spark.driver.memory”, spark_driver_memory)
.set(“spark.cores.max”, spark_cores_max)
.set(“spark.executor.memory”, spark_executor_memory)
.set(“spark.driver.maxResultSize”, spark_executor_maxResultSize)
.set(“spark.driver.host”, register_host)
.set(“spark.driver.port”, “6426”)
.set(“spark.default.parallelism”, “4”)
.set(“spark.deploy.mode”, “client”)
.set(“spark.serializer”, “org.apache.spark.serializer.KryoSerializer”)
.set(“spark.kryoserializer.buffer.max”, “256m”)
.set(“spark.kryo.registrator”, registratorClass.mkString(”,"))
.setJars(List(spark_jarpath))
com.supermap.bdt.base.Util.configure(conf)
val spark = SparkSession.builder.config(conf).getOrCreate()
spark.sparkContext.setLogLevel(“WARN”)
问题26:【iObject Spark】iServer开启分布式分析,一启动内置Spark被占满资源,如何修改Spark的核数和大小提升性能?
11.2.0
【解决办法】可以修改Spark节点的每个executor的核数和内存数,在产品安装support\spark\conf目录下,修改spark-defaults.conf文件的参数 spark.executor.memory=8g 、spark.executor.cores =4 。
问题27:【iObject Spark】 iObjects Spark大数据叠加分析如何提升性能,有什么方案?
11.2.0
【解决办法】在Spark中RDD的每个分区partition数据都会被一个Task处理,一个Task通常由Executor的一个线程来处理,同一时刻多个Task由多个线程处理,因此RDD的分区数量决定了启动的Task任务数。
数据的分区数可通过spark.default.parallelism并行度参数来控制,分区数决定任务数。对于空间要素FeatureRDD、DSFFeatureRDD推荐的一个分区partition数据记录数在20000至50000区间。计算公式:分区数据记录数 = 数据集记录总数 / 分区数。
一个线程处理一个Task,Task所处理的分区partition数据记录数大小决定了需要的Executor内存。
Task计算处理的结果推荐用JDBC多线程写入PostGIS数据源,同时建议对Task结果重分区,推荐分区记录数30000左右(约30MB,即一次提交写入PG库的数据量)。可通过–numPartitions来控制,计算公式:numPartitions=预估结果记录数 / 30000。
推荐一个Task对应硬件资源为 1C + 2GB。 CPU资源越多,分析计算跑得越快。
问题28:【iObject Spark】Spark GPA读取GDB矢量数据做叠加分析报错空指针异常,报错堆栈接口为makeSureValidGeo,应该如何解决?
11.2.0
【解决办法】读取矢量数据里存在几何对象为NULL或无效的几何对象。在读取矢量数据的工具后,加上要素数据集ECQL查询工具,参数可以填写为geom is not null,或者填写为 isvalid(geom)=true 。即可过滤掉无效的几何对象,保障模型正确执行。
问题29:【iObject Spark】基于Spark cluster模式GPA读取GDB矢量数据,输出要素数据集为Json格式工具得到的结果为空,是什么原因?
11.2.0
【解决办法】输出Json工具不支持cluster模式,在GPA日志中结果抛出了空指针异常。如果要使用输出要素数据集为Json工具,请在Spark local环境中使用。
问题30:【iObject Spark】基于Spark cluster模式GPA读取多份GDB矢量数据做叠加分析和面积汇总,运行较长时间后报错FileNotFoundException异常,提示设备或资源忙,是什么原因?
11.2.0
【解决办法】模型复杂读取GDB数据多,分区多导致很多线程拉取数据,从而导致超出Linux句柄数的限制。通过ulimit -n查看当前句柄数。可以通过以下命令增加Linux系统的句柄数和进程数:ulimit -n 102400 ; ulimit -u 1024000 。
问题31:【iObject Spark】基于Spark cluster模式GPA读取GDB坡度图矢量数据做叠加分析报错kryoException异常,提示Buffer overflow,应该怎么解决?
11.2.0
【解决办法】Spark geomesa开出的spark.kryoserializer.buffer.max参数最大支持2gb的序列化缓冲区,由于分区数太小导致序列化最大内存不足,从而内存溢出。调大读取数据分区数为10000,任务并行度为2000,这样可以降低同一时刻的序列化对象数,降低序列化结果内存占用,避免达到最大序列化内存2000m的限制。
问题32:【iObject Spark】Spark GPA读取PostGIS矢量数据做叠加分析报错typeName xxx is not exist,是什么原因?
11.2.0
【解决办法】数据源中不存在xxx名称的数据集。修改为正确的数据集名称即可。
问题33:【iObject Spark】Spark GPA执行结果写入到PostGIS数据源中AAA表,报错null value in coloumn “smuserid” violates not-null constraint
11.2.0
【解决办法】数据库里已经存在“AAA”表,表结构有smuserid字段,且为必填不能为null。而属性汇总结果结构与AAA表结构不符合导致报错。模型输出结果名称重命名,重新写出一份结果。而非追加到AAA数据集中。
问题34:【iObject Spark】基于Spark cluster模式GPA构建大的业务模型,BoundsComputer这个stage执行1.5小时无响应也未结束,日志不报错,cpu活跃占用少,内存消耗多,是什么原因?
11.2.0
【解决办法】通过深度排查Linux操作系统内核的日志,发现有线程任务超时,未接收到信号导致假死无响应。通过修改spark.rpc.askTimeout参数为3600s。可在1分钟内快速执行完成BoundsComputer的stage
问题35:【iObject Spark】Spark GPA读取GDB数据,字段计算工具执行过程报错class java.lang.String cannot be cast to class java.lang.Integer
11.2.0
【解决办法】字段计算工具的结果字段类型设置的Integer。而字段计算工具的表达式if(@[“pd”] >70 ) {return @[“dlbm”];} else {return @[“xzqmc”];} ,dlbm字段是Integer类型,xzqmc字段是String类型,导致与结果字段类型不完全匹配。将字段计算工具的结果字段类型设置的String类型即可,dlbm字段的Integer类型支持强制转换为String类型。
二、SuperMap iDesktopX
问题1:超图产品中有哪几种类型的坐标系,区别是什么?
11.1.1
【解决办法】(1)地理坐标系:是一种球面坐标系,坐标用经纬度表示,坐标单位通常是度,坐标具有地理意义。
(2)投影坐标系:是一种平面坐标系,是将地理坐标通过特定的投影方式转换到平面上而得到,坐标单位通常是米,坐标具有地理意义。
(3)平面无投影坐标系:是一种平面坐标系,坐标单位通常是米,坐标不具有地理意义。
问题2:正式许可和试用许可能同时使用吗?已部署某一个产品的正式许可在机器上,需要临时试用其他产品,部署试用许可时将会把已经部署的正式许可挤掉,该怎么办呢?
11.2.0
【解决办法】SuperMap产品读取许可逻辑为抢占式读取,若系统环境内存在试用许可,会优先读取试用许可,这会导致已经部署许可的产品失去正式许可。可以在https://sso.supermap.com/phoneregister?service=https://www.supermapol.com 注册一个SuperMap Online账号,新注册的用户可以获得一个月的文件试用许可,以云许可的方式试用其他产品,不涉及系统环境,能够正常试用。
问题3:为什么在 SUSE Linux Enterprise 11 SP2 操作系统上启动SuperMap iDesktopX 报“libSuGraphicsQT.uge:undefined symbol:_ZN40GDC170gdcUnicodeStringC1EPKw”的错误?
11.2.0
【解决办法】在 SUSE 上需要安装第三方数据库客户端才能正确加载sdx数据引擎。一个sdx加载失败会影响其他sdx数据引擎的加载,导致无法打开任何数据源或程序启动失败。需要依赖第三方数据库客户端的sdx数据引擎文件有:libSuEngineSRDB.sdx、libSuEngineOracle.sdx、libSuEngineDMCI.sdx、libSuEngineOsp.sdx、libSuEngineAltibase.sdx、libSuEngineDB2.sdx、libSuEngineKDB.sdx。例如:如果需要使用 Oracle 数据源,则首先安装 Oracle 客户端,然后删除libSuEngineOracle.sdx之外的上述所有*.sdx,再启动SuperMap iDesktopX 桌面。以此类推,如果需要使用其他数据库引擎,也进行相应的处理。即保留产品包内 bin 目录下libSuEngineImagePlugin.sdx 和需要的数据库引擎文件,删除不需要的数据库引擎文件(上述列表中的*.sdx)。
问题4:启动SuperMap iDesktopX时,提示缺少依赖库“libpng12.so.0”文件。
11.2.0
【解决办法】 缺少依赖库可从本机或其他机器拷贝,或在网上下载缺少的依赖库文件,将其放在SuperMap iDesktopX包的bin文件夹中,再启动桌面即可。
具体解决步骤:
(1)设置LD_LIBRARY_PATH环境变量,指向bin:
export LD_LIBRARY_PATH=./bin:$LD_LIBRARY_PATH
(2)输入以下命令,确认是否真的缺少指定的依赖库文件(libpng12.so.0):
ldd -d libWrapjGeo.so |grep libpng12.so.0
若输出:libpng12.so.0 => not found,则表示缺少libpng12.so.0文件。
(3)输入以下命令,查看操作系统中所有libpng12.so文件
find / -name libpng12.so.*
若输出如下信息,表示在操作系统中的第三方软件中有这个库文件,可将该文件拷贝到产品包bin目录下,若未找到该文件,则需要通过其他方式获取。
•/snap/core/4917/lib/x86_64-linux-gnu/libpng12.so.0
•/snap/core/4917/lib/x86_64-linux-gnu/libpng12.so.0.54.0
•/snap/core/4917/usr/lib/x86_64-linux-gnu/libpng12.so.0
•/snap/core/5548/lib/x86_64-linux-gnu/libpng12.so.0
(4)执行以下命令,将libpng12.so.0文件拷贝文件到bin目录中:
cp /snap/core/4917/lib/x86_64-linux-gnu/libpng12.so.0
(5)执行以下命令查看是否还缺少依赖库文件:
ldd libWrapj.so |grep no
未提示缺少依赖库,启动桌面即可。
问题5:远程启动Linux操作系统中的SuperMap iDesktopX失败了,报下图或其他类似错误,怎么办? .
11.2.0
【解决办法】SuperMap iDesktopX 只有在Linux图形界面上才能正常启动,如果需要启动远程Linux操作系统上的SuperMap iDesktopX,请先在Linux系统中配置桌面环境,再通过图形界面的终端工具,例如Xmanager、VNC等,远程连接Linux图形界面,最后通过命令行的方式启动SuperMap iDesktopX。
问题6:在Linux系统上通过桌面使用Oracle数据源,提示打开或新建失败是什么原因呢?
11.2.0
【解决办法】该现象是没有设置Oracle环境变量的原因,解决方案为:每次启动SuperMap iDesktopX之前,在Terminal中将Oracle客户端临时设置到环境变量中,例如,通过profile文件设置环境变量,将以下命令写到profile文件中,再在Terminal中执行source profile。
export ORACLE_HOME=/opt/oracleClient(客户端所在路径)
export PATH=
P
A
T
H
:
PATH:
PATH:ORACLE_HOME
export LD_LIBRARY_PATH=
O
R
A
C
L
E
H
O
M
E
:
ORACLE_HOME:
ORACLEHOME:LD_LIBRARY_PATH
Oracle客户端环境变量设置好之后在该Terminal中重新启动SuperMap iDesktopX,即可正常使用Oracle数据源。 中桌面要新建或者链接一个oracle数据源需要在运行桌面的环境中配置了oracle客户端,将客户端添加到LD_LIBRARY_PATH,可以给一个profile示例。并配置tnsnames.ora。也可以用EZConnect方式连接,则可以不配置tnsnames。
问题7:在Linux系统中运行SuperMap iDesktopX,界面中的字体显示为方块是怎么回事呢?
11.2.0
【解决办法】这是Linux系统缺失中文字体导致的,在产品包目录下的jre/jre/lib/fonts文件夹中下放置一个中文字体,程序界面文字即可正常显示。
问题8:针对数据集执行查询操作比较慢,如何才能提升查询速度?
11.2.0
【解决办法】(1)数据查询过程中根据哪些字段进行查询,建立相关字段索引。
(2)若查询方式为范围查询或者空间查询,查看该数据集是否有空间索引,或者建立空间索引以后是否经过大量编辑,编辑过后空间索引的性能会下降。针对这两种情况建议在桌面中重建空间索引。
(3)根据单数据集要素量调整存储,数据库型数据源建议单表在1000w左右,若数据库所在机器较好,尽量限制在2500w行内。若文件型数据源达到1000w行左右数据量,建议考虑迁移为数据库型数据源。
问题9:导入大量DWG文件时,导入的速率会越来越慢,如何解决?
11.2.0
【解决办法】导入CAD数据时,默认导入的数据集类型为“简单数据集”,这种类型是通过计算将CAD中的点线面数据分别导入,当数据量大的时候就可能出现卡顿。 导入CAD数据时,选择导入类型为“CAD”,这样可以保证快速导入。如果需要将某些CAD数据拆分为点线面,可以使用“类型转换”工具去做相应的操作。
问题10:新建了地图配准,刺点后,怎么都无法计算误差,按钮是灰色的?
11.2.0
【解决办法】按钮是灰色,其原因跟选择的配准算法与刺点的数量有关系:
1.选择偏移配准,那么只能刺一个点,而且不需要计算误差。
2.选择矩形配准,那么只能刺两个点即可。
3.选择线性配准,那么需要只能刺点4—6个点。
4.选择二次多项式配准,那么至少需要刺点7个。
注:目前对 CAD 数据集的配准仅支持矩形配准方法和偏移配准方法。
问题11:桌面对可编辑图层进行选择时,为什么会出现某些对象无法选中的情况?当图层设置为不可编辑时,所有对象又是能够选中的,可能是什么原因,该如何解决?
11.2.0
【解决办法】组件层在实现时,编辑状态下选中的Geometry对象会被存在内存中,选择数量太大会导致内存不足,所以对默认选中对象设定了10000条的数量限制,超过限制条数的对象将不呈选中状态。
如果业务确实需要将可编辑状态下的所有对象都显示,可以在SuperMap.xml中修改MaxEditGeometrySize的数值,但是如果内存不够大,建议不要设置太大的数值。
问题12:标签专题图如何通过SQL表达式让标签换行显示?
11.2.0
【解决办法】chr(10)换行符,格式:字段名1 || chr(10) || 字段名2…”
【示例】
NAME||chr(10)|| SmID
注:参与连接的表达式字段有文本型字段时,当文本型字段值为空值(null),设置的专题图标签将视为无效标签不能正常显示,因为 SQL 表达式不支持空值(null)的运算
问题13:在桌面对udbx数据源里的矢量数据集的文本类型字段(纹理贴图内容),进行更新列操作,传入更新的字符串StaticMesh’/SM/LOD0’,更新失败,从组件层日志报错如下[error] UPDATE dian SET col = ‘StaticMesh’/SM/LOD0’’ WHERE SmID in (1,2,3) ,near “‘’”: syntax error?
11.2.0
【解决办法】udbx是sqlite数据库,是因为更新列的值带有单引号,需要做转义处理,转义符为’单引号。
更新列时加上转义符字符串:StaticMesh’‘/SM/LOD0’'。
注:sqlite其他字符串的转义符是/斜杆。如下示例:
/ --> //
’ --> ‘’
[ --> /[
] --> /]
% --> /%
& --> /&
_ --> /_
( --> /(
) --> /)
问题14:桌面软件创建MySQL数据源失败,日志报错:Plugin sha256_password could not be loaded,是什么原因?数据库版本是mysql 5.7.x,同样的用户和密码在Navicat可以打开。
11.2.0
【解决办法】在MySQL 5.7.X版本的数据库里提供两种身份验证插件mysql_native_password和sha256_password。默认应mysql_native_password。出现报错的是使用了sha256_password插件,目前桌面产品里未集成该插件库。
方法一:将Navicat目录下的sha256_password.dll插件库拷贝到iDesktopX的Bin目录即可支持
方法二:修改该用户的身份验证插件为mysql_native_password即可,
(1)系统用户登录,查看所有用户及对应身份验证插件
SELECT user, host, plugin from mysql.user;
(2) 修改对应用户的身份验证插件
alter user ‘用户名’@‘主机名’ identified with mysql_native_password by ‘密码’;
(3)更改生效
FLUSH PRIVILEGES;
(4)再次查询用户对应身份验证插件为mysql_native_password即可,启动iDesktopX进行mysql数据源创建。
注:从 MySQL 8.0 开始,默认的身份验证插件已更改为caching_sha2_password。
问题15:导入mdb失败报错:process output:importResult is not nullable
11.2.0
【解决办法】该数据类型是基于 Microsoft Access 数据文件结构,因此导入该文件的电脑需要有“AccessDatabaseEngine”引擎才可支持*.mdb数据的导入导出。以管理员身份安装与iDesktop/iDesktopX同位数的AccessDatabaseEngine.exe
微软官网下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=54920
问题16:SuperMap ImageX Pro提供哪些功能?
11.2.0
【解决办法】DOM、DSM/DEM 数据自动化化生产、影像质检等能力。
问题17:SuperMap ImageX Pro支持哪些国产CPU和操作系统?
11.2.0
【解决办法】支持飞腾、鲲鹏等国产 CPU,中标 麒麟、银河麒麟等国产操作系统
问题18:什么是全色影像?
11.2.0
【解决办法】全色影像一般指单通道的灰色影像(即单波段灰色影像),其中全色是指可见光波段0.38~0.76um(即人们熟知的红橙黄绿蓝靛紫),全色影像是这个波段范围的混合图像。因为是单波段,所以显示为灰度图片,无法进行彩色合成。全色遥感图像由于是采集整个可见光范围内的所有波段,所以一般空间分辨率很高,但无法显示地物色彩,也就是所谓的地物的光谱信息少。
问题19:什么是多光谱影像?
11.2.0
【解决办法】多光谱影像是多通道影像。多光谱是指对地物的电磁辐射中多个波段的摄取,得到的影像数据中包含多个波段的光谱信息。对不同的波段分别赋予RGB显示通道,即可得到彩色影象。例如,将红、绿、蓝三个波段的光谱信息分别赋予到R,G,B三个通道,就可以的到真彩色影像。但由于传感器接收电磁辐射时对各个波段进行分光,所以接受到的电磁辐射就会有所损失,导致其空间分辨率降低。
问题20:为什么要进行区域网平差?
11.2.0
【解决办法】卫星影像区域网平差是一项关键的遥感数据处理技术,它旨在确保卫星影像之间的准确定位、精确连接以及无缝融合。这一技术的基本思路包括以下三个主要步骤确保了影像的接边、定位和融合精度。
●控制点确定绝对位置
为了实现卫星影像的准确定位,需要使用控制点来确定全色影像的绝对位置。控制点通常是地面上已知位置的特征,如道路交叉口、建筑物边缘或地理坐标系统中的点。通过控制点的匹配和校准,可以将卫星影像的位置精确地定位在地球表面上。这保证了影像的地理信息与实际地理特征一致。
●连接全色和多光谱影像
卫星影像区域网平差还包括连接全色和多光谱影像之间的连接点,以确保影像的融合精度。全色影像提供了高空间分辨率的细节,而多光谱影像提供了光谱信息。通过合并这两种数据,可以获得既富有细节又具备光谱信息的复合影像。连接点的准确性和精确的平差是实现影像融合的关键。
问题21:为什么要进行多光谱和全色融合?
11.2.0
【解决办法】多光谱图像空间分辨率低但光谱信息丰富,有利于对地物目标的识别与解释 ;而全色图像空间分辨率高,能够详尽的反映地物的空间结构信息及其细节特征.将多光谱图像和全色图像进行融合能够增强多光谱图像的空间分辨率,利于改善后续图像处理效果从而满足对图像更深层次应用的需要。
问题22:为什么要进行匀光匀色?
11.2.0
【解决办法】由于卫星相机及拍摄环境等因素的影响,导致同一区域来自不同相机的图像在亮度、色彩等方面会存在差异,影响整体的美观和应用。因此,非常有必要对多相机图像进行匀光匀色。相邻的遥感图像,由于成像日期、季节、天气、环境等因素可能有差异,不仅存在几何畸变问题,而且还存在辐射 ,水平差异导致同名地物在相邻图像上的色彩亮度值不一致。如不进行色调调整就把这种图像镶嵌起来,即使几何配准的精度很高,重叠区复合得很好,但镶嵌后两边的影 像色调差异明显,接缝线十分突出,既不美观,也影响对地物影像与专业信息的分析与识别,降低应用效果。要求镶嵌完的数据色调基本无差异,美观,遥感影像匀色后即可保证影像整体色彩一致性。
问题23:影像镶嵌为什么要生成镶嵌线?
11.2.0
【解决办法】影像镶嵌是将多幅带有地理信息的影像输出为一幅大范围覆盖影像的一种遥感影像处理功能。这些影像是需要经过正射校正,融合、匀光匀色,然后进行镶嵌。镶嵌的关键是构建输入影像的镶嵌线,为了确保镶嵌后的影像无明显拼接痕迹、过渡自然、纹理清晰,镶嵌线应避开大型建筑物和影像差异较大的地方,尽量选择线状地物,宜选择河、路、沟、渠、 田埂等的边沿,另外镶嵌线应尽量避开有云区域,影像镶嵌会根据生成的镶嵌线输出整幅影像
问题24:SuperMap ImageX 支持的操作系统有哪些?
11.2.0
【解决办法】操作系统 版本
Windows操作系统 ●Microsoft Windows Server 2003 (SP1或更高版本)
●Microsoft Windows Server 2008 系列
●Microsoft Windows Server 2008 R2系列
●Microsoft Windows Server 2012 系列
●Microsoft Windows Server 2012 R2 系列
●Microsoft Windows Server 2016 系列
●Microsoft Windows Server 2019 系列
●Microsoft Windows 7 系列
●Microsoft Windows 7 SP1系列
●Microsoft Windows 8 系列
●Microsoft Windows 10 系列
●Microsoft Windows 11 系列
Linux操作系统 ●RedHat Enterprise Linux 7.x
●CentOS 7.x/8.x
●Ubuntu 13.10/14.04/16.04/18.04 LTS
●中标麒麟桌面操作系统 7.0
●深度桌面操作系统 15
●银河麒麟桌面操作系统 4
●普华桌面操作系统 4.1及以上版本
●统信桌面操作系统 20
●一铭桌面操作系统 4.0
●方德桌面操作系统 3.1/4.0
●万里红桌面操作系统 3
问题25:SuperMap ImageX 安装部署时有什么注意事项?
11.2.0
【解决办法】首次使用SuperMap ImageX Pro,需要在基础软件中配置【遥感资源包】,资源包中提供了全球DEM数据(90m)、全球高程修正数据、大气校正查找表、深度学习模型及其运行库。
配置步骤如下:
●下载SuperMap ImageX Pro和遥感资源包。
●将 bin 文件夹拷贝至“产品包”,与“产品包\bin”文件夹合并;
●将atmospheric_correction_LUT、dem、dlmodel、geoid_model、water文件夹拷贝至“产品包\bin\Resource\RemoteSensing”文件夹中。
问题26:SuperMap ImageX 安装部署时的硬件机器有什么推荐配置吗?
11.2.0
【解决办法】配置等级 CPU 内存 显卡 存储
低配(不推荐) 不低于8核 32GB 显存不低于6GB 不低于1TB
中配(可以使用) 32核或以上 64GB或以上 显存8GB或以上 2TB 固态盘+10T机械硬盘
高配(推荐) 64核或以上 256GB或以上 显存16GB或以上 8TB 固态盘+20T机械硬盘
问题27:进行遥感生产时,发下运行生产流程软件直接崩溃?
11.2.0
【解决办法】检查是否已配置遥感生产资源包,若未配置请参考安装类问题2。
问题28:生成连接点未匹配到连接点?
11.2.0
【解决办法】新建一个镶嵌数据集,查看影像是否存在接边,若不存在,则无法生成连接点。
问题29:生成控制点未匹配到控制点?
11.2.0
【解决办法】1、检查DOM控制资料范围是否包含生成数据范围;2、检查DOM控制资料在桌面打开是否可以正常读取到坐标系,范围显示是否正常。
问题30:生成控制点/连接点性能过慢?
11.2.0
【解决办法】1、检查是否输入过多张DOM控制资料或DEM控制资料,有条件情况下尽量减少数据;2、检查硬盘I/O情况,是否已100%占用,一般机械硬盘性能弱于固态硬盘;条件支持的情况下尽量使用固态硬盘进行操作,性能会有3 ~ 4倍的提升。
问题31:影像融合数量与输入的影像对数不匹配,发现融合数据数量变少?
11.2.0
【解决办法】排查安装目录 \bin\Resource\RemoteSensing\SatelliteNameTemplate.xml文件中是否支持缺失的数据传感器,可以手动增加配对信息。
问题32:影像匀色后发现有强曝光区域?
11.2.0
【解决办法】1、降低匀色中的亮度系数参数;2、检查输出的真彩色影像是否已经强曝光,若是则调整拉伸方式和参数,或设置不进行拉伸,然后再次进行匀色。
问题33:若无控制资料是否可以进行DOM生产?
11.2.0
【解决办法】可以进行生产,可以进行无控制网平差进行生产,区域网平差时可以不输入地面控制点,只输入连接点,这种方式只能保障数据的接边精度,无法保障绝对精度。
三、SuperMap iManager
问题1:在第三方的K8S上安装iManager报错,metrics_serve资源已存在,该如何处理?
11.2.0
【解决办法】该K8S环境已有metrics_server服务,需要将iManager安装配置中的metrics_server服务禁用。values.yaml中的deploy_disable_metrics_server: false设置成true,保存后,再次8s执行startup.sh。
问题2:iManager for K8S如何替换镜像?
11.2.0
【解决办法】1)导入images
docker load -i ispeco_dashboard_api-1001.tar
2)标记image(195.195.8.46:5000/supermap修改为实际的镜像仓库地址和命名空间)
docker tag registry.cn-beijing.aliyuncs.com/supermap/ispeco_dashboard_api:10.0.1 195.195.8.46:5000/supermap/ispeco_dashboard_api:10.0.1
3)push到仓库,
docker push 195.195.8.46:5000/supermap/ispeco_dashboard_api:10.0.1
4)pull image(验是否导入到镜像仓库)
docker pull 195.195.8.46:5000/supermap/ispeco_dashboard_api:10.0.1
5)在iManager页面,基础服务列表或者站点列表中,选择修改镜像为新的镜像地址即可。
问题3:iManager运行一段时间后,磁盘占用快满了,启动服务的时候报拉不到镜像是怎么回事?
11.2.0
【解决办法】当docker的工作目录快占用满的时候,docker会清理掉长时间不使用的镜像文件,而iManager在根目录占用超过80%后会停止工作,重启的时候会去拉取镜像,这个时候镜像就拉取不到了。所以建议定时清理磁盘空间,将需要的镜像重新导入到仓库重启服务即可。
问题4:如何重置iManager的账户密码?
11.2.0
【解决办法】进入到iManager的安装目录下,找到reset-password.sh,执行chmod +x reset-password.sh && ./reset-password.sh
问题5:重启服务器之后,iManager读不到许可?
11.2.0
【解决办法】1)场景一:bslicense-server容器所在节点变了,需要在deploymemts中修改bslicense-server编排,将其指定到之前所在的K8S node,“nodeName: 【K8S 节点名称】”;
2)场景二:bslicense-server容器所在节点没有改变,在pods中删除重建bslicense-server容器
问题6:如何重置iManager的账户密码?
11.2.0
【解决办法】进入到iManager的安装目录下,找到reset-password.sh,执行chmod +x reset-password.sh && ./reset-password.sh
问题7:基于华为云/阿里云部署的iManager for K8s,无法跳转到登录界面,且基于该站点创建GIS站点和GIS云套件站点后,无论通过iPortal地址或iServer地址进行登录,均无法跳转到登录界面,该如何解决呢?
11.2.0
【解决办法】需要先把iManager for K8s地址、iServer和iPortal的地址增加到keycloak-config的redirectUris中:
1)访问 http://:31234 进入kubernetes的dashboard界面。是iManager所在机器的ip;
2)选择iManager for K8s所在的命名空间,例如supermap,左边栏依次点击配置和存储>Config Maps>keycloak-config;
3)在下方数据栏中将Keycloak登录后的跳转地址依次填入,需填写为真实的跳转IP,格式应遵照以下示例:
“redirectUris”: "http(s)😕/{ip}:31100/*
问题8:如何重置iManager访问入口的链接和协议?
11.2.0
【解决办法】在iManager安装目录下有名为reset-entrance.sh的文件,可将访问入口重置为安装部署iManager时的链接和协议,请按以下步骤重置访问入口:
1)进入iManager安装目录(即执行iManager安装命令的目录);
2)执行reset-entrance.sh脚本文件进行重置:
chmod +x reset-entrance.sh && ./reset-entrance.sh
问题9:在Kubernetes环境下安装部署iManager时,执行“./startup.sh”命令如果出现报错:The connection to the server localhost:8080 was refused - did you specify the right host or port? Error: Kubernetes cluster unreachable,如何解决?
11.2.0
【解决办法】有两种解决方案可解决上述问题,请在以下方法中任选一种:
切换为root用户解决方案
切换至root用户后,重新执行以下命令:
sudo ./startup.sh
增加kubectl使用权限解决方案
在服务器任一目录下,执行以下命令:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.kubeconf $HOME/.kube/config
sudo chown userName:userName $HOME/.kube/config
备注:命令中的为您的实际用户名,请替换。
问题10:Kubernetes证书到期了,如何更新?
11.2.0
【解决办法】Kubernetes证书有效期为1年,过期后需更新证书。请参照以下步骤更新Kubernetes证书:
1)在安装Kubernetes的Master节点机器,进入etc/kubernetes/pki目录,创建备份目录:
cd /etc/kubernetes/pki/
mkdir -p ~/tmp/BACKUP_etc_kubernetes_pki/etcd/
2)备份原有的证书:
mv apiserver.crt apiserver-etcd-client.key apiserver-kubelet-client.crt front-proxy-ca.crt front-proxy-client.crt front-proxy-client.key front-proxy-ca.key apiserver-kubelet-client.key apiserver.key apiserver-etcd-client.crt ~/tmp/BACKUP_etc_kubernetes_pki/.
mv etcd/healthcheck-client.* etcd/peer.* etcd/server.* ~/tmp/BACKUP_etc_kubernetes_pki/etcd/
3)重新生成新的证书:
kubeadm init phase certs all
4)进入etc/kubernetes目录,创建备份配置文件目录,备份原有的配置文件:
cd /etc/kubernetes/
mkdir -p ~/tmp/BACKUP_etc_kubernetes
mv admin.conf controller-manager.conf kubelet.conf scheduler.conf ~/tmp/BACKUP_etc_kubernetes/.
5)重新生成配置文件:
kubeadm init phase kubeconfig all
6)重启Kubernetes Master节点:
reboot
7)复制并替换原来的文件:
mkdir -p ~/tmp/BACKUP_home_.kube
cp -r ~/.kube/* ~/tmp/BACKUP_home_.kube/.
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
8)查看更新证书后Kubernetes集群信息(使用kubectl cluster-info命令):
kubectl cluster-info
问题11:配置镜像拉取密钥(Secret)时,如何创建与Secret同名的资源?
11.2.0
【解决办法】如果您配置的是私有仓库,在iManager安装包解压目录下,修改values.yaml文件的参数值时,还需在Kubernetes中对应的命名空间下创建与Secret同名的资源,包括3种情况:需在iManager所在命名空间下创建与Secret同名的资源;如果开启服务网格(Istio),需在istio-system命名空间下创建Secret同名资源;如果开启metrics server服务,需在kube-system命名空间下创建Secret同名资源。
请在Kubernetes Master机器中,输入如下命令创建Secret同名资源:
kubectl create secret docker-registry --docker-server=<“172.16.17.11:5002”> --docker-username= --docker-password= -n
注意:
1.输入的内容中,带有尖括号”<>“的需根据您的实际环境替换(替换后去掉尖括号)。 为您的Secret名称; <“172.16.17.11:5002”>为您的镜像仓库地址; 为镜像仓库用户名; 为镜像仓库密码; 为iManager所在命名空间(在istio-system或kube-system下创建Secret同名资源时,替换为“istio-system”或“kube-system”)。
2.如果命名空间istio-system不存在,在Kubernetes Master节点机器输入“kubectl create ns istio-system”命令进行创建。
问题12:在重新部署/调整规格后,又立马进行重新部署/调整规格操作,导致分配许可失败,如何解决?
11.2.0
【解决办法】在重新部署/调整规格后,请确保本次操作对应的容器在许可中心中分配许可成功后,再进行下一次的重新部署/调整规格操作。
问题13:如果忘记了SuperMap许可中心(Web版)登录的用户名或密码,该如何解决呢?
11.2.0
【解决办法】由于账户信息会保存在license-security.xml文件中,所以可通过手动删除license-security.xml文件后重新启动许可中心解决,操作步骤如下:
1)进入SuperMap许可中心(Web版)产品包conf目录下,即supermap-bslicense-server-xxx/conf/;
2)删除license-security.xml文件;
3)进入supermap-bslicense-server-xxx/bin/,重新执行启动脚本;
4)重新注册用户名和密码。
问题14:在云套件中,服务节点应如何开启防止SQL注入攻击的配置?
11.2.0
【解决办法】支持在服务节点对应的配置文件中开启防止SQL注入,具体请前往iManager站点管理>GIS云套件站点,在服务列表中找到需要开启防止SQL注入的服务节点,在右侧的操作项中点击”编辑“,修改对应参数即可,相关参数说明如下:
ENABLE_SQL_FILTER #是否开启SQL注入检测,默认为false
QUERY_FILTER_ENABLED #设置是否启用SQL查询过滤,默认为false。启用后,将默认禁用常量表达式、常量等价表达式、常量IN表达式、常量恒成立表达式等四类表达式,另外还将默认禁用部分威胁字符,禁用的字符包括exec、insert、delete、update、join、union、master、truncate。除以上默认禁用的表达式和字符串外,您也可以通过 QUERY_FILTER_STRING参数设置其他需要在SQL查询中禁用的字符串。
QUERY_FILTER_STRING #设置SQL查询过滤的字符串,支持任意字符串(数据操作语言(DML)、表达式、通配符、特殊字符等),以分号隔开,如:设置 <QUERY_FILTER_STRING>delete;SMID=.</QUERY_FILTER_STRING> 。用户在进行data或map的SQL查询时,如果在SQL查询表达式中出现了 ‘delete或 SMID=任意值’ 字符串,系统会默认该条查询表达式非法并返回400参数异常,防止执行恶意的 SQL 命令,从而保护用户的数据安全。如果没有设置SQL查询过滤的字符串,在SQL查询表达式中系统会默认屏蔽掉分号。
问题15:在站点管理页面下方统计图处,未能正常显示出CPU使用率等各服务资源的具体统计图信息,而显示为“No data points”。点击需监控容器的服务名称后,在页面下方查看该容器的统计图出现同样问题。经排查发现docker默认存储路径不是“/var/lib/docker”,而导致该问题的出现,应如何解决?
11.2.0
【解决办法】docker默认存储路径非“/var/lib/docker”所致无法正常显示监控统计图,是由于kubelet中内置的Docker容器性能分析工具cAdvisor无法获取到容器信息。请参考以下步骤解决上述问题:
1)编辑kubelet的启动文件,执行以下命令:
vim /usr/lib/systemd/system/kubelet.service
注:
排查docker默认存储路径时,可通过/etc/docker/daemon.json文件的graph值查看。
2)在ExecStart参数处增加“—docker-root”的配置,设为排查时发现的docker实际存储路径,如下图所示,实际路径为“/data/docker”。
3)命令行输入“:wq”保存并退出,完成修改。
4)重启kubelet使配置生效,执行以下命令:
systemctl daemon-reload
systemctl restart kubelet
问题16:查看实时监控统计图时,图表中没有数据或数据生成的时间与实际时间不符,如何解决?
11.2.0
【解决办法】查看实时监控统计图时,请确保您的本地机器与Kubernetes节点机器设置的时间一致。
问题17:发布地图服务后,地图显示字体为什么和制图所用字体不同?
11.2.0
【解决办法】因为承载该地图服务的服务节点没有制图时使用的字体。请参照以下步骤添加字体:
1)点击主页导航栏文件管理,在文件管理器的system/fonts文件夹上传所需字体文件;
2)重新部署承载地图服务的服务节点。
问题18:如何配置服务实例自动刷新?
11.2.0
【解决办法】服务实例刷新是指在数据源发生变化时,同步更新服务实例。配置自动刷新后,每隔一段时间系统会自动更新服务实例。请按以下步骤在服务节点的编排中配置自动刷新:
1)查看服务实例所在服务节点(可在GIS云套件管理页面,点击服务管理->服务实例,进入服务实例详情页面,查看所在服务节点);
2)登录Kubernetes管理页面,在您的GIS云套件命名空间中点击部署,找到服务节点对应的名称;
3)对服务节点进行编辑(打开右侧操作,点击查看/编辑 YAML);
4)在spec->template->spec->containers->env中添加环境变量REFRESH_DATASOURCE与CHECK_DATASOURCE_CONNECTION_INTERVAL。REFRESH_DATASOURCE为开启自动刷新,CHECK_DATASOURCE_CONNECTION_INTERVAL为自动刷新间隔。例如,开启自动刷新并设置刷新间隔为1小时:
{
“name”: “REFRESH_DATASOURCE”,
“value”: “true”
},
{
“name”: “CHECK_DATASOURCE_CONNECTION_INTERVAL”,
“value”: “3600”
},
5)点击更新,等待重新部署后生效。
问题19:在GIS云套件文件管理中,上传超过10G的大数据文件过程中卡住,最终上传失败,如何解决?
11.2.0
【解决办法】在GIS云套件文件管理需上传超过10G大数据文件时,请参照以下方法解决上述问题:
1)执行以下命令,获取挂载目录(下面命令中的icloud-native-为GIS云套件所在的命名空间,请替换为实际的命名空间名称,其中是创建GIS云套件时命名空间ID):
kubectl -n icloud-native- describe pvc pvc-gisapplication-data- | grep Volume: | awk -F ’ ’ ‘{print $2}’ | xargs kubectl describe pv
查看结果,找到文件管理的挂载路径
2)将待上传的大数据文件存放至步骤(1)查到的挂载目录中进行传输
问题20:如果要实现GIS云套件跨域,应如何配置?
11.2.0
【解决办法】请参照以下方法进行GIS云套件的跨域配置:
1)登录Kubernetes管理页面;
2)在您的GIS云套件命名空间中点击部署,分别找到ispeco-dashboard-api和iserver-gateway;
3)对ispeco-dashboard-api和iserver-gateway分别进行编辑(打开右侧操作,点击查看/编辑 YAML),定位至spec->template->spec->containers->env;
4)添加环境变量DISABLE_DEFAULT_CORS_CONFIG,用于禁用跨域配置,设置值为true或false。值为true时禁用跨域配置,在访问URL时将存在跨域拦截;值为false时开启跨域配置,默认开启。示例如下:
{
“name”: “DISABLE_DEFAULT_CORS_CONFIG”,
“value”: “false”
},
5)添加环境变量CORS_CORSFILTER_INITPARAMS,为跨域配置参数,包含以下4个具体参数:
Access-Control-Allow-Origin #允许跨域的域名
Access-Control-Allow-Methods #允许的请求方法,GET,POST,PUT,DELETE,OPTIONS,HEAD
Access-Control-Allow-Headers #允许的请求头
Access-Control-Allow-Credentials #是否带上cookie信息,true或false
注意:设置时,相邻配置参数之间以分号“;”分隔。
示例如下:
{
“name”: “CORS_CORSFILTER_INITPARAMS”,
“value”: “Access-Control-Allow-Origin=http://www.baidu.com;Access-Control-Allow-Methods=GET,POST,PUT,DELETE,OPTIONS,HEAD;Access-Control-Allow-Headers=*;Access-Control-Allow-Credentials=true”
},
6)添加环境变量CORS_URL_PATTERNS,为存在的跨域拦截设置URL路径进行匹配,允许设置多个URL路径。默认应用到所有URL。
注意:设置多个URL路径时,相邻URL路径之间以逗号“,”分隔。
示例如下:
{
“name”: “CORS_URL_PATTERNS”,
“value”: “/token,/iserver/services/**”
},
问题21:在GIS云套件文件管理中删除文件后如果有.nfs(.nfsxxxx)文件生成,删除该.nfs文件失败,如何解决?
11.2.0
【解决办法】请参考以下方式删除该文件:
1)执行以下命令,获取该.nfs文件挂载目录(下面命令中的icloud-native-为GIS云套件所在的命名空间,请替换为实际的命名空间名称,其中是创建GIS云套件时命名空间ID):
kubectl -n icloud-native- describe pvc pvc-gisapplication-data- | grep Volume: | awk -F ’ ’ ‘{print $2}’ | xargs kubectl describe pv
2)执行以下命令,在挂载路径下对该.nfs文件尝试进行删除操作:
rm -f
3)若执行步骤(2)删除失败,原因是有进程正在访问这个文件,不允许删除。使用lsof命令查看访问该文件的进程:
lsof .nfs00000000053ab2460000001e #需要删除的.nfs文件,请根据实际情况修改
若需要root权限,执行以下命令,显示结果:
sudo lsof .nfs00000000053ab2460000001e
4)根据PID杀死访问进程,删除该.nfs文件:
kill -9 13204
问题22:在GIS云套件中使用恢复功能,成功恢复站点配置后,内置HBase、PostGIS、PostgreSQL发布的服务实例不能访问,如何解决?
11.2.0
【解决办法】出现上述情况,请等待内置服务可用后,对相关的服务实例执行刷新操作
问题23:云套件ispeco-dashboard-api的日志等级只有到info,如何设置才能查看到debug级别的日志?
11.2.0
【解决办法】可以在ispeco-dashboard-api的deployment中添加以下环境变量,logging_level_com_supermap=DEBUG,待该pod重启后,就能看到debug级别的日志了。
问题24:云套件服务实例访问或者是并发查询的时候,出现出图/查询请求挂起(pending状态),导致云套件首页,或者其他服务无法正常访问,看着像是整个云套件堵塞了?
11.2.0
【解决办法】这是由于出现大量出图/查询并发的时候,或者是出图本身就很慢(比如大数据量的动态出图)导致请求被挂起pending状态,如果待请求数量超过6个,后续的请求都会挂起,这是因为浏览器的并发请求机制限制,浏览器对相同域名下的并发请求处理数量为6个。如果在服务无法继续访问的情况下,是可以通过关闭当前出图页面或者是启动另外的浏览器访问服务是可以正常访问的,并不是整个云套件堵塞了。只需等待请求处理完成即可。如果服务请求确实缓慢,无法支撑业务的响应时间,需要从根源解决当前服务实例出图缓慢或者是请求缓慢的问题
问题25:在GIS云套件中使用恢复功能,成功恢复站点配置后,内置HBase、PostGIS、PostgreSQL发布的服务实例不能访问,如何解决?
11.2.0
【解决办法】出现上述情况,请等待内置服务可用后,对相关的服务实例执行刷新操作。
四、SuperMap iServer
问题1:iServer 11.2.0产品版本和模块如何划分?
11.2.0
【解决办法】产品分为基础版、标准版、高级版、顶级版四个版本,具体模块划分,
请查看帮助文档http://support.supermap.com.cn:8090/iserver/help/html/zh/Product_introduce/iServer_Introduce.htm
问题2:为什么启动 iServer 服务时,报端口占用错误,导致 iServer 服务启动失败?
11.2.0
【解决办法】SuperMap iServer 产品包默认部署在 Tomcat 中,Tomcat 默认使用了 8090、8015端口,这两个端口被占用则无法正常启动服务。可以通过以下两种方式解决:
(1) 请退出占用端口的程序,然后重新启动 SuperMap iServer。目前已知的可能占用 8090 端口的程序有:360杀毒软件的自动升级程序。
(2) 修改 SuperMap iServer 产品包中 Tomcat 的端口号,然后重新启动 SuperMap iServer。具体方法是修改%SuperMap iServer_HOME%/conf/server.xml 中的相关端口,如:<Server port=“8016” ……>、<Connector port=“8091” …… redirectPort=“8454” ……>。
问题3:为什么在 Linux 系统上启动 iServer 服务时,报如下类似错误:“Unable to set localhost. This prevents creation of a GUID”
11.2.0
【解决办法】出现这种现象时,请在 /etc/hosts 文件中,配置主机名对应的 IP 地址,即将主机名映射到具体的 IP 地址。如加上下面最后一行,表示将机器名 linux-3z6l 映射到 192.168.112.213
问题4:分布式分析时,创建的分布式分析任务总是一直处于运行状态,并且在 iServer 分布式分析服务的日志文件(distributeanalysis.log)出现类似的警告信息,警告信息如:WARN - Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources 的可能原因有哪些
11.2.0
【解决办法】可能原因如下:
(1) 所应用的Spark集群没有可用的Spark Worker节点。
解决方法:检查Spark集群的状态,查看是否有可用的Spark Worker节点加入。
(2) 启动Spark Worker所需要的端口被占用。
解决方法:设置环境变量export SPARK_WORKER_WEBUI_PORT={port}(即可用的Spark Worker端口)
(3) 多网卡的情况下,启动的Spark Worker端口无法被绑定到启动Spark Worker所在机器的任意IP上。
解决方法:设置环境变量export SPARK_LOCAL_IP=0.0.0.0。
(4) 所应用的Spark集群无法通过机器名对应到正确的IP,以至于找不到Spark Worker节点。
解决方法:Linux平台,/etc/hosts文件中主机名对应的IP错误,将其修改正确即可。
(5) Spark集群的内存或者cpu资源不足。
解决方法:您可以按照以下要求对【SuperMap iServer安装目录】/support/spark/conf/spark-defaults.conf文件中内存和核数进行配置。
spark.cores.max //spark集群应用的总核数 不小于2
spark.executor.cores //spark集群应用的总核数 不小于1
spark.executor.memory //spark集群应用的内存 不小于1g
问题5:为什么启动 iServer 服务时,出现 iServer 实际使用的 UGO 版本较低,不推荐使用的警告?
11.2.0
【解决办法】iServer 服务需要配置 UGO,即 SuperMap iObjects Java,且 iServer 实际使用的 SuperMap iObjects Java 版本不能低于 iServer 期望使用的版本。默认情况下,iServer 使用自带的 SuperMap iObjects Java,位于 %SuperMap iServer_HOME%\support\Objectsjava\bin 目录。您可以通过在 %SuperMap iServer_HOME%\bin 目录下使用“iserver.bat -v”(Linux平台使用 “./iserver.sh -v”)查看 iServer 当前使用的 SuperMap iObjects Java 版本信息。
问题6:如何启用HTTPS加密通信并禁用HTTP协议?
11.2.0
【解决办法】GIS 服务器启动后默认使用的是 HTTP 协议,如未开启HTTPS,则可能遇到敏感信息明文传输安全问题,为了能够在 Web 服务器和客户端之间创建 HTTPS 连接,Web 服务器需要一个服务器证书。在实际的生产环境中,建议您请求 CA 签名的证书,并配置到服务器。
开启HTTPS加密通信方式,请查看帮助文档:http://support.supermap.com.cn:8090/iserver/help/html/zh/Subject_introduce/Security/systemSecurity/HTTPS/HTTPS.htm
问题7:如何启用跨域访问白名单?
11.2.0
【解决办法】GIS 服务器实现了 HTML5 跨源资源共享(CORS)策略。GIS 服务器启动后默认允许来自任意域的跨域请求访问成功,可以通过配置跨域访问的白名单,进行更精准的控制。
配置方式请查看帮助文档:
http://support.supermap.com.cn:8090/iserver/help/html/zh/Subject_introduce/Security/otherSecurity/CORS_Filter.htm
问题8:如何配置防护 SQL 注入?
11.2.0
【解决办法】GIS 服务器启动后默认未开启 SQL 注入检测,可通过修改iserver-system.xml配置文件,将元素中的enabled设置为true,将禁用常量表达式、常量等价表达式、常量 IN 表达式、常量恒成立表达式等四类表达式。此外还将默认禁用部分威胁字符,禁用的字符包括 exec、insert、delete、update、join、union、master、truncate。当然您也可以通过 filterString 参数设置其他需要在 SQL 查询中禁用的字符串。
配置方式请查看帮助文档:
http://support.supermap.com.cn:8090/iserver/help/html/zh/Appendix/iServer_configInfo.htm#6.__queryFilter__元素
问题9:如何限制上传文件的工作路径与类型?
11.2.0
【解决办法】GIS 服务器启动后,上传文件远程浏览时,默认可以浏览其所在系统的所有目录,攻击者可能通过上传功能将有害文件上传至 web 权限范围内的任意目录,建议您为iServer配置上传文件的绝对工作路径,如:D:\ftp,设置后,数据仅可上传至此指定工作目录,用户也仅可浏览此工作目录。
配置方式请查看帮助文档:
http://support.supermap.com.cn:8090/iserver/help/html/zh/Appendix/iServer_configInfo.htm#uploadDir__上传文件的存放目录
此外,还建议您依据文件格式过滤上传的 zip 文件内容,配置需要过滤掉的文件格式,限制非法文件的上传。
配置方式请查看帮助文档:
http://support.supermap.com.cn:8090/iserver/help/html/zh/Appendix/iServer_configInfo.htm#_deniedFiles__过滤上传_zip_文件中数据格式
问题10:如何启用防护跨站脚本攻击?
11.2.0
【解决办法】跨站脚本攻击 XSS(Cross Site Scripting)是指攻击者会在 Web 页面里插入恶意 Script 代码,当用户浏览该 Web 页面时,嵌入其中的 Script 代码会被执行,从而达到恶意攻击用户的目的。关于如何配置启用防护跨站脚本攻击,请查看帮助文档:
http://support.supermap.com.cn:8090/iserver/help/html/zh/Subject_introduce/Security/otherSecurity/attrackConfig.htm
问题11:使用二维地图缓存时,需要注意什么?
11.2.0
【解决办法】
- 制作二维地图缓存时,需要注意机器的 DPI,生成二维地图缓存的机器的 DPI 需要跟 SuperMap iServer 服务器所在机器的 DPI 一致,才能保证缓存可用。
2.使用二维地图缓存时,请勿将缓存作为数据源保存在工作空间中。在 SuperMap iServer 中发布时,请您直接发布为地图服务。
问题12:为什么对 iServer 提供的地图服务进行查询时会出现如下错误“java.lang.OutOfMemoryError: Java heap space”?
11.2.0
【解决办法】可能是由于查询时返回的结果记录集中包含的对象数量过多造成的。可以采用以下方式限制一次返回的结果记录数从而避免此类问题:
(1)客户端进行查询时,可以通过 expectCount 参数设置期望返回结果的记录数,使之限制在服务端可接受范围内。
(2)服务器端可以设置默认返回记录数,iServer 提供了 queryExpectCount 配置项(默认值为1000)来设置默认返回记录数,详见http://support.supermap.com.cn:8090/iserver/help/html/zh/Server_Service_Management/GISService_Config/Service_Config/Config_Provider/ConfigProviderXML/provider_setting_xml.htm
问题13:浏览地图时,为什么会出现同一标签中字体不同的情况?
11.2.0
【解决办法】因为部署 iServer 服务的系统中不存在该标签所使用的字体库。
解决方法是:在该系统中,安装该标签所使用的字体库。例如:Linux下字体库的安装目录为 %SuperMap iServer_HOME%/support/fonts。详细说明请参见:http://support.supermap.com.cn:8090/iserver/help/html/zh/Install_Uninstall/Linux/postConfig.htm
问题14:在集群环境下,为什么有时进行地图查询或者数据查询时,查询结果错误或者找不到要查询的数据集?
11.2.0
【解决办法】可能原因:集群环境下,各节点提供的相同地图或数据服务资源对应的数据不一致,如:各相应数据的工作空间名称相同、数据源名称相同 、地图名称相同,但是内部数据集不同,导致负载均衡时认为各节点是一致的服务,而实际进行执行查询的节点刚好使用的是不一致的数据导致查询失败
问题15:发布 TPK 瓦片为地图服务后,浏览显示白图?
11.2.0
【解决办法】是因为从 SuperMap iServer 10i 开始,对 TPK 瓦片存放路径的格式有要求,当 TPK 的存放路径不符合该格式要求,浏览发布的地图服务会显示白图。其格式要求为 v101/Layers/_alllayers/<层级> 或 Layers/_alllayers/<层级>,其中 Layers 可以替换成中文“图层”,示例如下:
v101/Layers/_alllayers/L00
或
Layers/_alllayers/L00
或
v101/图层/_alllayers/L00
或
图层/_alllayers/L00
问题16:使用 MapboxGL 表述浏览地图,为什么个别图层不显示或显示内容与地图实际内容不相符?
11.2.0
【解决办法】这种情况大多是因为 SuperMap 的一些符号或者图层设置 MapBox 风格不支持。使用 MapboxGL 表述浏览地图为动态获取矢量瓦片出图的过程,需要基于一幅有效的矢量地图。SuperMap 地图要素的符号化、图层设置等绝大多数都能被 MapBox 样式支持;但是,由于 MapBox 风格显示表达与 SuperMap 不同,所以矢量地图的制作和矢量瓦片的生成存在一些局限性和注意事项,具体如下:
(1)在生成矢量瓦片时,将对节点密集的对象进行抽稀,减少节点冗余,在大多情况下,这种抽稀在视觉上将不太明显,但也存在特殊情况,如抽稀后,对象发生明显变形。因此,建议您确保在不同显示比例尺下,地图对象具有合理的复杂度。
(2)MapBox 支持几乎所有的 SuperMap 点符号、常用道路等线型符号、常用的面填充符号,但复杂符号可能无法正确显示。对于 MapBox 不支持的一些符号,根据符号类型,将显示为对应的圆点、实线、纯色填充。此外,MapBox 样式对于面符号轮廓线的支持与线型符号的完全一致。请注意:
●MapBox 风格不支持显示符号随图缩放。
●MapBox 样式不支持子线的偏移设置和端头符号设置。
●对于自定义填充符号,MapBox样式仅支持包含一个填充子层的填充符号,填充子层可以为图像填充或者符号填充类型。
(3)MapBox 样式对 SuperMap 地图文字效果的支持也存在局限性,因此,需要您关注地图中所有文字的风格设置,避免使用 MapBox 样式不支持的字体效果。目前,MapBox 仅支持加粗轮廓、加粗斜体效果,不支持阴影、下划线、删除线等效果。请注意:
●地图中的文本需要设置固定大小,否则,显示时文字效果与原地图可能存在差异。
●对于文本图层,将使用图层中第一个文本对象的风格作为本图层所有文本的风格。
●文字使用了加粗和斜体效果时,需要保证计算机中有相应字体的粗体和斜体字库,这样文字的加粗和斜体效果才有效,例如:文字使用了微软雅黑字体,并设置加粗和斜体,那么您的电脑中要同时具有微软雅黑粗体字库和微软雅黑斜体字库。
(4)MapBox 样式只支持 SuperMap 部分类型的专题图,如果地图中包含了不支持的专题图,生成矢量瓦片时将忽略这些专题图层。支持的专题图类型仅包括单值专题图、分段专题图、默认标签专题图;不支持单值标签、分段标签、复合标签、矩阵标签等专题图。 请注意:
●MapBox 样式不支持点、线、面单值专题图的偏移设置。
●对于标签专题图所使用的标注字段,目前只支持原生字段值,无法展示 SQL 的函数计算结果。
●对同一点数据集,不支持基于该点数据集的专题图和标签同时存在,否则会出现点专题图的点符号丢失的情况。可以使用点普通图层替代点专题图来解决该问题。
●对同一点数据集,同时存在点普通图层和基于该图层制作的标签专题图时,MapBox 不支持既设置点符号又设置标签背景;否则,点符号会丢失,标签虽然保留,但是,标签背景将偏离标签文字。
●当标签中同时存在中英文时,中文字符对应的标签长度将会缩短。
●MapBox 样式只支持按两种沿线方向(沿线的法线方向以及从上到下,从左到右)显示标签。若地图设置了其他沿线显示方向,将使用“从上到下,从左到右”的方向放置标签。
(5)由于 MapBox 风格显示表达与 SuperMap 不同,所以在一些地图显示细节方面,二者也存在差异。
●文字排版:MapBox 对于长标签的换行处理与 SuperMap 不同。当标签专题图应用了标签换行方面的设置以及多行文本排版的设置,显示效果与地图有较大差异。
●沿线标注:MapBox对于沿线标注的处理与SuperMap不同,显示的沿线标注效果与原始地图存在差异,如沿线标注字间距很小、沿线标注的数量和标注出现的位置与地图不同等。
●避让与压盖设置:MapBox 对地图中要素的避让处理与 SuperMap 不同,导致两者在标签显示的数量、标签与点对齐方式等方面存在差异。另外,SuperMap 地图的压盖设置,在MapboxGL 表述下显示无效。
问题17:如何优化地图服务、数据服务在 SQL 字段查询时的查询速度?
11.2.0
【解决办法】当您需要对地图服务、数据服务进行 SQL 字段查询时,建议您在发布服务前在 SuperMap iDesktopX 中对数据源内需要查询的字段先行设置字段索引,从而提高查询效率。
问题18:为什么通过由 UDBX 数据源发布的 REST 数据服务中的 fields 资源向空数据集添加 JSONB 类型字段时,执行失败?
11.2.0
【解决办法】因为 JSONB 字段仅为 PostgreSQL、PostGIS 数据源仅有的字段类型,即除了 PostgreSQL、PostGIS 数据源外,其他数据源发布的 REST 数据服务都不支持添加 JSONB 类型的字段。
问题19:将 iServer 注册成 Windows 系统服务后,通过系统服务方式启动,发布 Oracle 引擎的数据为地图服务后,在 maps 资源下可显示地图列表,但访问地图表述不出图;发布为数据服务后,在 datasources 资源下不显示数据源。该如何解决?
11.2.0
【解决办法】具体解决方法如下:
(1)删除之前注册的iserver系统服务
(2)在环境变量中新建一个变量 ORACLE_HOME,值为 Oracle 的目录,在系统的 PATH 环境变量的添加值“%ORACLE_HOME%\bin”,并放在首位。
(3)重新打开一个 cmd 控制台窗口,注册iServer服务即可
问题20:服务发布成功后,为什么会出现获取服务内容不正确的情况?
11.2.0
【解决办法】可能的原因是,您发布的服务中图层名称、数据集名称或数据源名称中包含特殊字符。在 iServer 中,url 中的图层名称、数据集名称、数据源名称等不能包含特殊字符,如:+、 空格、/、?、%、#
问题21:分布式分析时,为什么创建的分布式分析任务总是一直处于运行状态,spark的任务执行详情页面报“SecurityManager:authentication disabled;ui acls disabled;users with view permission”?
11.2.0
【解决办法】这是由于 iServer 所在的电脑是多网卡,且与所使用的spark集群的子节点不在同一网段。为了确保 Spark Worker 和 iServer 之间能够正常通信,需要在 iServer 中进行如下配置。
配置方法:在【SuperMap iServer安装目录】/SuperMapiServer/support/spark/conf/spark-defaults.conf 中添加一行 spark.driver.host 192.168..,如下所示
spark.driver.host 192.168.120.1
其中,192.168.120.1为 iServer 所在机器与 Spark 集群子节点同一网段的IP。注:Spark集群子节点为 iServer 配置的分布式分析节点 或 Spark 集群配置的Spark Worker
问题22:在linux系统下spark集群主节点启动后,子节点无法加入到主节点或者log日志中报WARN Utils: Service ‘sparkWorker’ could not bind on port 0. 时,该如何解决?
11.2.0
【解决办法】用命令cat /etc/hosts查看/etc/hosts 文件,并修改,使当前机器ip或者127.0.0.1 之后对应的主机名配置正确
五、SuperMap Hi-Fi 3D
问题1:SuperMap iExplorer3D产品功能点不够全面,后续是否会新增功能
11.2.0
【解决办法】这款产品是场景浏览软件,主要是针对无游戏引擎环境、并想快速浏览GIS数据与游戏引擎渲染结合后效果的客户。随着产品迭代更新,后续会增加更多的GIS相关功能。
问题2:SuperMap iExplorer3D运行崩溃,报D3D9问题
11.2.0
【解决办法】【问题原因】D3D9是显卡方面的问题
【解决办法】
1、检查是否启用了独立显卡;
2、检查显卡配置,使用高性能模式;
3、更新显卡驱动
如果以上办法都没法解决,请联系技术支持团队
问题3:SuperMap iExplorer3D中,如何调整太阳光照
11.2.0
【解决办法】先使用【鼠标拾取位置功能】选中模型所在位置,然后点击【设置原点坐标】功能,将场景原点坐标设置为拾取的坐标,之后拖动时间轴即可调整太阳光照。
问题4:SuperMap iExplorer3D支持打包到Web端浏览吗?
11.2.0
【解决办法】SuperMap iExplorer3D不支持打包,如果想要再Web端使用,可以使用云渲染功能
问题5:SuperMap iExplorer3D一台电脑支持像素流推送的最大实例数是多少?
11.2.0
【解决办法】像素流推送会占用计算机显卡和cpu,理论上计算机显卡和cpu硬件资源足够充足的情况下可以实现无限并发;内部测试,RTX3060显卡+32GB内存+6GB显存,可支持3个实例
问题6:SuperMap iExplorer3D如何添加水面效果
11.2.0
【解决办法】有两个办法,
第一是使用SuperMap iDesktopX 制作水面符号并生成三维切片,在SuperMap iExplorer3D中添加切片即可;
第二是使用SuperMap Hi-Fi 3D for UE 结合 UE游戏引擎制作水面特效,再打包得到结果
问题7:SuperMap iExplorer3D如何添加arcgis发布的地图缓存服务
11.2.0
【解决办法】通过SuperMap iServer转发arcserver服务,根据转发的服务类型,按以下方式添加服务:
1.如果发布的rest地图服务,在iExplorer3D的在线服务中选择“Map”,服务地址添加到图层名;
2.如果发布的 WMS 服务,在iExplorer3D的公共服务中选择“ WMS ”,服务地址添加到图层名;
3.如果发布的WMTS 服务,在iExplorer3D的公共服务中选择“WMTS ”,服务地址添加到wtms100
问题8:正确安装SuperMap Hi-Fi 3D SDK for Unity后,使用运行范例场景并运行game后,场景不加载数据,同时控制台报错:Exception:Load SuperMap License Fialed!该如何解决?
11.2.0
【解决办法】这是由于该机器上没有许可,需要安装正确的许可。需要对应的游戏引擎许可模块。
问题9:已经安装SuperMap Hi-Fi 3D SDK for Unreal插件,但是在UE的内容浏览器中看不到插件内容是为什么?
11.2.0
【解决办法】在内容浏览器面板右下方,找到“视图选项”,勾选“显示插件内容”。即可显示插件内容。
问题10:安装SuperMap Hi-Fi 3D SDK for Unreal插件后,运行UE工程,出现报错”The folowing modules are missing or built with a different engine version:SuperMap SuperMapSamples Would you like to rebuild them now?“如何解决?
11.2.0
【解决办法】安装插件后需要重新编译工程后再运行工程。 如重新编译后仍出现报错,检查调整路径命名,应为纯英文路径且不含test以及supermap字样。
问题11:安装SuperMap Hi-Fi 3D SDK for Unreal插件后,运行不能进行鼠标操作,怎么解决?
11.2.0
【解决办法】查看项目设置中,是否导入了输入的映射关系;查看是否设置了游戏模式为 PlaneGameMode。
问题12:SuperMap Hi-Fi 3D SDK for Unreal支持在mac机器上进行开发吗?
11.2.0
【解决办法】不支持,具体可参考帮助文档中3.2.1中部分内容,SuperMap Hi-Fi 3D SDK for Unreal目前仅支持在 Windows 系统上进行开发。该SDK也仅支持部署到Windows系统上。
问题13:在UE4.27中使用SuperMap Hi-Fi 3D SDK for Unreal插件,SuperMap 编辑器控件设置编辑模式就崩溃,出现报错“Unreal Engine4 Crash Reporter“窗口是什么原因?
11.2.0
【解决办法】当机器后台过多,或者性能不太够的情况下, UE内着色器渲染时, 不建议操作。 首次使用UE着色器编译时间通常较久,再次打开UE则不会再次出现编译很久的情况。等待着色器不在编译状态后,再进行操作。 避免UE闪退。
问题14:SuperMap Hi-Fi 3D SDK for Unity 在缩放场景时,数据出现被裁剪的现象
11.2.0
【解决办法】选中 Main Camera,在其 Inspector 面板中找到 Clipping Plans 属性,增大 Far 值 即扩大远裁剪面,从而避免缩小场景时被裁剪;同理,如果拉近模型,出现被裁剪的 情况,减小 Near 值即可
问题15:SuperMap Hi-Fi 3D SDK for Unreal 插件打包后使用像素流送插件进行云渲染,浏览器中点击click to start,提示没有连接上:Disconnected: Streamer is not connected。
11.2.0
【解决办法】1.排查是否打开像素流送程序:
正确进行像素流送的步骤是:启动信令服务器——打开像素流送程序——前端运行。如果未打开像素流送程序,而直接前端输入端口号进行加载会提示已断开连接。
2.排查80和8888端口号是否被占用,结束进程。
问题16:SuperMap Hi-Fi 3D SDK for Unreal 插件添加在线三维服务,运行后点击定位,界面显示坐标不正确,且看不到数据。
11.2.0
【解决办法】清理本地缓存之后,重新加载数据。 清理方式:在文件浏览器的地址栏输入“%temp%”,并回车;然后选择 Local 文 件夹,找到 SuperMap 文件夹,删除 Cache 下面的缓存文件。
问题17:SuperMap Hi-Fi 3D SDK for Unreal 插件打包后的exe加载模型不显示材质。
11.2.0
【解决办法】部分电脑,需要设置环境变量才能够正常显示模型材质。设置环境变量的方法:电脑—属性—高级系统设置—环境变量—Path,将工程安装的插件\Source\ThirdParty\SuperMapLibrary\Win64 所在的路径,设置为环境变量的首位。
六、SuperMap iClient3D for Cesium
问题1:将SuperMap iClient3D for Cesium下载下来怎么部署运行呢?
11.2.0
【解决办法】(1)将SuperMap iClient3D for Cesium包复制粘贴到本地iServer安装目录\webapps下;
(2)可以直接运行Cesium包的\examples\webgl\路径下的某一个范例.html,记得在浏览器将本地路径修改为http://localhost:8090/webapps下对应的Cesium包文件夹名/examples/webgl/范例.html;
(3)如果需要编辑运行的话,可以安装HBuilder或者Visual Studio Code,将Cesium包打开,直接运行/examples/webgl/范例.html。
问题2:在iClient3D for Cesium中报错iServerBasic版本,xxxx不可用。应该如何处理?
11.2.0
【解决办法】iServerBasic为基础版本,不包含部分gpu的空间分析功能。如需试用需要下载完整版本iServer产品。在iClient3D for Cesium中具体不支持功能包含如下截图所示:
问题3:在iClient3D for Cesium中自定义token头应该如何使用?
11.2.0
【解决办法】在iClient3D for Cesium中,默认的token头为token。但是会出现自定义token情况。可以按照下面代码进行设置:
//需在构造图层provider前声明
Cesium.Credential.CREDENTIAL = new Cesium.Credential([
{
rooturl : "url1", //服务地址,与构造provider的地址一致
type : "jwt", //token名,可自定义,如token,key等
value "123" //token的值
}
问题4:在大屏上使用iClient3D for Cesium加载数据时,数据显示模糊,该如何处理?
11.2.0
【解决办法】这是由于大屏分辨率与Cesium包默认分辨率不匹配导致,需要在初始化Viewer的时候设置为对应大屏的分辨率即可。具体参考以下代码:
var xres = parseInt(window.screen.width * window.devicePixelRatio);///获取屏幕的x方向分辨率
var yres = parseInt(window.screen.height * window.devicePixelRatio);///获取屏幕的y方向分辨率
viewer = new Cesium.Viewer('cesiumContainer', {
contextOptions: {
maxDrawingBufferWidth: xres,
maxDrawingBufferHeight: yres
},
});
viewer.resolutionScale = window.devicePixelRatio;
问题5:在iClient3D for Cesium中如何直接加载SHP数据?
11.2.0
【解决办法】当前Cesium中没有办法直接加载SHP数据,如果需要对SHP数据直接渲染,需要使用第三方工具进行读取转换。可以参考下方博客使用第三方工具加载。
https://mcaitaco.blog.csdn.net/article/details/127897229
问题6:在iClient3D for Cesium 中不能同时加载iDesktopX配置的标签与图标是什么原因导致的?
11.2.0
【解决办法】在iClient3D for Cesium 中默认标签与图标开启了标签避让,会导致专题图同一个点位的标签与图标不能同时显示。需要对两个图层关闭标签避让才可同时展示。代码参考如下:
var iconlayer = scene.layers.find('BusPoint@RealspaceSample');//图标图层
var textlayer = scene.layers.find('BusPoint@RealspaceSample#1');//文字图层
iconlayer.isOverlapDisplayed = true;//关闭避让
textlayer.isOverlapDisplayed = true;//关闭避让
问题7:在iClient3D for Cesium 中如何添加从一级开始的wmts服务?
11.2.0
【解决办法】在添加的时候通过tileMatrixLabels设置加载级别从一级开始即可。参考代码如下:
var shadedRelief1 = new Cesium.WebMapTileServiceImageryProvider({
url: "url",
layer: 'imgmap',
style: 'default',
format: 'image/jpg',
tileMatrixSetID: 'default028mm',
tilingScheme: new Cesium.GeographicTilingScheme({
ellipsoid: Cesium.Ellipsoid.WGS84, //所用坐标系
numberOfLevelZeroTilesX: 2,
numberOfLevelZeroTilesY: 1,
rectangle: new Cesium.Rectangle.fromDegrees(-180, -90, 180, 90) // 数据范围
}),
tileMatrixLabels: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"] // 设置加载的层级,一般是从0级开始加载,但是有的特殊数据是从1级开始加的
// credit : new Cesium.Credit('U. S. Geological Survey')
});
viewer.imageryLayers.addImageryProvider(shadedRelief1);
问题8:在iClient3D for Cesium如何加载iServer临时图层?
11.2.0
【解决办法】在添加影像的时候设置layersID参数为临时图层ID,参考代码如下:
var layer = viewer.imageryLayers.addImageryProvider(new Cesium.SuperMapImageryProvider({
url : 'http://localhost:8090/iserver/services/map-Population/rest/maps/PopulationDistribution',
layersID:'7ff8783d3d2748fb81ff63dc5f356274_c087c21c52fd43c1ac57434b5a602779' // 临时图层ID
}))
问题9:在iClient3D for Cesium 中如何生成模型的立面图?
11.2.0
【解决办法】在iClient3D for Cesium 中可以使用Cesium.Facade(scene)方法对场景生成立面图。可使用方法参考下方代码:
var facade = new Cesium.Facade(scene);
facade.build();
facade.startPoint = startPoint;
facade.endPoint = endPoint;
facade.readyPromise.then(function (base64data) {
download(base64data);
});
示例可参考(http://support.supermap.com.cn:8090/webgl/Cesium/examples/webgl/editor.html#facadeImage)中内容。
问题10:在iClient3D for Cesium中如何开启大气层渲染效果?
11.2.0
【解决办法】设置viewer.scene.globe.enableLighting = true;同时开启时间轴,通过改变时间,即可快速调整大气层的效果。
参考代码如下:
function onload(Cesium) {
var viewer = new Cesium.Viewer('Container', {
timeline: true
});
viewer.scene.globe.enableLighting = true;
}
问题11:在iClient3D for Cesium中如果通过鼠标移入改变实体面的颜色?
11.2.0
【解决办法】使用ScreenSpaceEventHandler中setInputAction的MOUSE_MOVE方法。参考代码如下:
var screenSpaceEventHandler = new Cesium.ScreenSpaceEventHandler(scene.canvas);
screenSpaceEventHandler.setInputAction(function(movement) {
//最后的屏幕坐标
var haveEn = viewer.scene.pick(movement.endPosition);
if(viewer.scene.pickPositionSupported && Cesium.defined(haveEn) && haveEn.id !== ' '){
clearAlpha();
if(haveEn.id.polygon !== undefined){
var haveEnsNow = haveEn.id.polygon._material._color.getValue();
haveEnsNow.alpha = 1;
haveEn.id.polygon._material._color.setValue(haveEnsNow);
}
}else if(haveEn == undefined){
clearAlpha();
}
}, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
function clearAlpha(){
for(var i=0;i<viewer.entities.values.length;i++){
if(viewer.entities.values[i].name == "yanse"){
var haveEnsLast=viewer.entities.values[i]._polygon._material._color.getValue();
haveEnsLast.alpha = 0.2;
viewer.entities.values[i]._polygon._material._color.setValue(haveEnsLast)
}
}
}
问题12:在iClient3D for Cesium中如何通过点击更改billboard文字属性以及图标?
11.2.0
【解决办法】使用ScreenSpaceEventHandler中setInputAction中的LEFT_CLICK方法。参考代码如下:
var monitorEntity = viewer.entities.add({
name: "video",
position: Cesium.Cartesian3.fromDegrees(109.44, 32.11,30.0),
point: { //点
pixelSize: 20,
HeightReference: 1000
},
label: { //文字标签
text: "文字标签",
font: '500 30px Helvetica',// 15pt monospace
scale: 0.5,
style: Cesium.LabelStyle.FILL,
fillColor: Cesium.Color.WHITE,
pixelOffset: new Cesium.Cartesian2(-8, -35), //偏移量
showBackground: true,
backgroundColor: new Cesium.Color(0.5, 0.6, 1, 1.0)
},
billboard: { //图标
image: '../images/marker01.png',
width: 50,
height: 50
},
});
//点击广告牌改变文本和图标
var handlerVideo = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
handlerVideo.setInputAction(function (click) {
var pick = viewer.scene.pick(click.position);
if (pick && pick.id._name == "video") {
monitorEntity._billboard._image._value = '../images/marker02.png';
monitorEntity._label._text._value = "label";
} else {
return;
}
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
问题13:在iClient3D for Cesium中如何对实体设置渐变纹理?
11.2.0
【解决办法】参考代码如下:
var redWall = viewer.entities.add({
name: 'Red wall at height',
wall: {
positions: Cesium.Cartesian3.fromDegreesArrayHeights([
121.444409, 31.247417, 200.0,
121.533521, 31.235685, 200.0,
121.563273, 31.190347, 200.0,
121.546744, 31.194054, 200.0,
121.516705, 31.191459, 200.0,
121.502188, 31.203074, 200.0
]),
minimumHeights: [3000.0, 2000.0, 2000, 2000, 2000, 3000],
material: getColorRamp([0.0, 0.045, 0.1, 0.15, 0.37, 0.54, 1.0],true)
}
});
//纹理图绘制
function getColorRamp(elevationRamp) {
var ramp = document.createElement('canvas');
ramp.width = 1;
ramp.height = 100;
var ctx = ramp.getContext('2d');
var values = elevationRamp;
var grd = ctx.createLinearGradient(0, 0, 0, 100);
grd.addColorStop(values[0], '#000000'); //black
grd.addColorStop(values[1], '#2747E0'); //blue
grd.addColorStop(values[2], '#D33B7D'); //pink
grd.addColorStop(values[3], '#D33038'); //red
grd.addColorStop(values[4], '#FF9742'); //orange
grd.addColorStop(values[5], '#ffd700'); //yellow
grd.addColorStop(values[6], '#ffffff'); //white
ctx.fillStyle = grd;
ctx.fillRect(0, 0, 1, 100);
return ramp;
}
问题14:在iClient3D for Cesium 中标绘符号如何实现随图缩放?
11.2.0
【解决办法】创建标绘图层并添加标绘后设置 plottingLayer._geoGraphicObjects[i].sizeInMeters = true.参考代码如下:
// 创建标绘图层
let plottingLayer = new cesium.PlottingLayer(scene, "plottingLayer");
scene.plotLayers.add(plottingLayer);
// 注: 该代码省略了添加标绘的代码,需要可参考示例http://support.supermap.com.cn:8090/webgl/Cesium/examples/webgl/editor.html#plot_dynamicPlot
for(let i in plottingLayer._geoGraphicObjects) {
// 设置标绘图层中的所有标绘随图缩放
plottingLayer._geoGraphicObjects[i].sizeInMeters = true.
}
七、SuperMap iMobile Android
问题1:iMobile产品许可和模块如何区分?
11.2.0
【解决办法】请查看帮助文档:https://help.supermap.com/iMobile/Android/zh/05_ProductIntroduction/ModulesIntro.html
问题2:iMobile for Android如何获取设备的DeviceID?
11.2.0
【解决办法】通过Enviroment.getDeviceID()方法获取设备的DeviceID,用于文件型正式许可的申请。在获取时需将设备的wifi模块打开。
问题3:当targetSDKVersion版本大于28时,如何获取沙盒存储路径?
11.2.0
【解决办法】通过以下代码获取:File dirpath = this.getExternalFilesDir(“”);
String fileString = dirpath + File.separator;
问题4:移动端如何关闭沙盒存储?
11.2.0
【解决办法】在AndroidManifest.xml中Application节点中设置android:requestLegacyExternalStorage=“true”
问题5:基于Android 29和超图10.2.1开发程序,打开工作空间提示许可不存在,报错open failed: EACCES (Permission denied)。
11.2.0
【解决办法】【问题原因】 Android 10 中的存储机制更新,强制执行分区存储,导致无法加载许可文件。
【解决办法】 1、可关闭分区存储,在应用的清单文件中将 requestLegacyExternalStorage 设为 true;2、可将许可文件放置在分区存储目录中,目录为‘内部存储/Android/data/包名’下。
问题6:使用iMobile对地图设置中心点不起效,该如何解决?
11.2.0
【解决办法】如果要改变地图的显示范围需要同时设置中心点和比例尺才起效:map.setCenter()、map.setScale().
问题7:移动端在跟踪图层上如何实现点击查询几何对象信息?
11.2.0
【解决办法】1.通过TrackingLayer.hitTest()方法查询点击的几何对象,返回点击的几何对象对应的ID
2.通过ID拿到设置的对象信息,TrackingLayer.getTag()
问题8:iMobile如果获取手指点击的地图坐标?
11.2.0
【解决办法】通过地图控件的点击事件获取到手指点击的像素坐标Point,然后通过map.pixelToMap(Point point)方法将像素点坐标转换为地图坐标。
问题9:运行行业导航Demo失败,报错资源不存在,是什么原因?
11.2.0
【解决办法】原因是缺少语音资源,请将产品包中Resource文件夹下的voice文件夹拷贝到工程目录中的assets文件夹下。
问题10:iMobile如何另存一个工作空间?
11.2.0
【解决办法】通过Workspace获取工作空间连接信息WorkspaceConnectionInfo,然后设置工作空间类型和工作空间路径,使用Workspace.save()方法另存。
问题11:运行行业导航Demo失败,报错资源不存在,是什么原因?
11.2.0
【解决办法】原因是缺少语音资源,请将产品包中Resource文件夹下的voice文件夹拷贝到工程目录中的assets文件夹下。
问题12:在移动端打开场景报错:java.lang.IllegalStateException: getScene(),是什么原因?
11.2.0
【解决办法】原因是场景控件没有初始化完成就获取场景,在场景初始化完成监听事件回调函数中获取场景即可:SceneControl.sceneControlInitedComplete(SceneControlInitedCallBackListenner listenner) 。
问题13:iMobile三维场景如何开启地下模式?
11.2.0
【解决办法】通过代码设置透明度:Scene.getGlobalImage().setTransparency(int value)
八、SuperMap YukonDB
问题1:Yukon 支持哪些数据库?支持哪些操作系统?
11.1.1
【解决办法】Yukon 2.1 支持 PostgreSQL、openGauss、GaussDB、AgensGraph 数据库,支持 Windows、CentOS7.6、openEuler 等操作系统,详情如下图所示:
问题2:Yukon 提供了哪些安装方式?
11.1.1
【解决办法】Yukon 提供了 3 种安装方式,分别是:源码编译、安装包和 Docker 镜像。
问题3:Yukon 空间数据库提供了哪些数据库扩展模块?
11.1.1
【解决办法】Yukon 提供了 7 种数据库扩展模块,分别是:
1)postgis:与数据库适配的 PostGIS 矢量模块;
2)postgis_raster:与数据库适配的 PostGIS 栅格模块;
3)postgis_sfcgal:与数据库适配的 PostGIS 三维算法相关模块;
4)postgis_topology:与数据库适配的 PostGIS 拓扑相关模块(仅支持 PostgreSQL);
5)yukon_geomodel:Yukon自有的三维模型数据模块;
6)yukon_geogridcoder:Yukon自有的空间网格编码模块;
7)yukon_vector_pyramid: Yukon 自有矢量金字塔模块。
问题4:为什么在创建扩展时提示没有权限访问动态库?
11.1.1
【解决办法】检查当前启动数据库的操作系统用户是否有相关动态库文件(参看具体报错信息)的读取权限。
问题5:openGauss 中的 simpleinstall 和 文档中的安装有那些不同?
11.1.1
【解决办法】simpleinstall 只支持在一台机器上,安装单机、或者一主一备。 只有内核,没有 om 工具。文档中的复杂安装是 OM 安装,可以安装 一主 N 备,包括 CM。 支持升级、增删节点等功能。
问题6:Yukon 安装时对软硬件环境有哪些要求?
11.1.1
【解决办法】1)硬件环境建议参考 openGauss 的https://docs-opengauss.osinfra.cn/zh/docs/3.1.0/docs/BriefTutorial/%E5%87%86%E5%A4%87%E8%BD%AF%E7%A1%AC%E4%BB%B6%E5%AE%89%E8%A3%85%E7%8E%AF%E5%A2%83.html;
2)软件环境要求:
3)软件依赖要求:
问题7:为什么一直连接不到数据库?
11.1.1
【解决办法】1)检查防火墙状态,防火墙开启会导致连接数据库失败,请确保已关闭防火墙;
2)连接出现 “NullPointerException” 的错误,由于 openGauss 默认使用 sha256 加密,你需要修改为 md5 加密,尝试解决方法:检查 postgresql.conf 的 password_encryption_type=0 并且已启用,如果被注释,请启用参数,数据库重启后重新创建用户名和密码。你也可以参考https://www.modb.pro/db/27157;
3)出现“拒绝从外部以非加密保护的密码进行连接”的错误,检查 pg_hba.conf,IPv4 local connections中新增 host all all 0.0.0.0/0 md5。
问题8:Yukon 空间数据库中如何构建 geometry 对象?
11.1.1
【解决办法】Yukon 构建 geometry 对象和 postgis 使用方式相同,具体示例可参考:https://yukon.supermap.io/2.1-Beta/demos/demo_geomconstruct.html
问题9:Yukon 空间数据库 geometry 对象共包含哪些具体的子类型?
11.1.1
【解决办法】Yukon 共计提供了 16 种 geometry 子对象,建议参考:https://yukon.supermap.io/2.1/demos/demo_geomconstruct.html#id1
问题10:Yukon 空间数据库的 GeoSOT 编码功能,支持对哪些类型的数据进行编码?
11.1.1
【解决办法】Yukon 支持对二维点、线、面、三维模型(精模和BIM)数据进行编码,具体编码方式请参考 https://yukon.supermap.io/2.1-Beta/demos/demo_geosot_1.html
问题11:Yukon 空间数据库如何构建矢量金字塔?
11.1.1
【解决办法】Yukon 提供了 yukon_vector_pyramid 扩展模块用于创建和使用矢量金字塔,具体使用方式请参考 https://yukon.supermap.io/2.1-Beta/demos/demo_pyramid.html
九、SuperMap iClient for JavaScript
问题1:SuperMap iClient JavaScript 11i是收费的吗?
11.2.0
【解决办法】SuperMap iClient JavaScript 11i核心源代码基于 Apache License 2.0 开源许可协议发布,是完全免费的。可在官网及 GitHub 自由下载和分发使用
问题2:开源库是否会集成到 SuperMap iClient JavaScript 11i(2023) 中,还是用户自行下载?
11.2.0
【解决办法】已将最新兼容版本的三方库在 GitHub、OSChina 托管库中提供(对应 lib 文件夹),用户也可以自行下载,产品介绍页面会提供相关链接
问题3:SuperMap iClient JavaScript 11i中的 3D-WebGL 产品和 iClient 3D for WebGL 产品是什么关系?
11.2.0
【解决办法】同一款产品。SuperMap iClient 3D for WebGL 是一款在服务式 GIS 架构体系中,无任何插件,跨浏览器的客户端产品。它基于 Cesium 开源框架,面向 HTML 5 的三维应用开发,可以快速构建内容丰富、响应迅速、体验流畅的三维真空间应用。
问题4:SuperMap iClient JavaScript 11i(2024) 的各地图基础库所支持的主要功能和服务有哪些?
11.2.0
【解决办法】如下图所示
问题5:如何选择地图基础库?
11.2.0
【解决办法】如下图所示
问题6:如何通过npm安装?
11.2.0
【解决办法】安装 @supermap/iclient-leaflet
npm install @supermap/iclient-leaflet
安装 @supermap/iclient-ol
npm install @supermap/iclient-ol
安装 @supermap/iclient-mapboxgl
npm install @supermap/iclient-mapboxgl
安装 @supermap/iclient-maplibregl
npm install @supermap/iclient-maplibregl
安装 @supermap/iclient-classic
npm install @supermap/iclient-classic
问题7:开发时如何引入地图基础库?
11.2.0
【解决办法】Leaflet:https://iclient.supermap.io/web/introduction/leafletDevelop.html#Ready
OpenLayers:https://iclient.supermap.io/web/introduction/openlayersDevelop.html#Ready
MapboxGL:https://iclient.supermap.io/web/introduction/mapboxglDevelop.html#Ready
MapLibreGL:https://iclient.supermap.io/web/introduction/maplibreglDevelop.html#Ready
Classic:https://iclient.supermap.io/web/introduction/classicDevelop.html
问题8:浏览器兼容性如何?
11.2.0
【解决办法】如下图所示
问题9:地图基础库版本兼容情况是什么?
11.2.0
【解决办法】如下图所示
问题10:三方插件使用情况
11.2.0
【解决办法】如下图所示
十、SuperMap iClient3D for WebGL
问题1:将SuperMap iClient3D for WebGL/WebGPU下载下来怎么部署运行呢?
11.2.0
【解决办法】(1)将SuperMap iClient3D for WebGL/WebGPU包复制粘贴到本地iServer安装目录\webapps下;
(2)可以直接运行WebGL包的\examples\webgl\路径下的某一个范例.html,记得在浏览器将本地路径修改为http://localhost:8090/webapps下对应的WebGL包文件夹名/examples/webgl/范例.html;
(3)如果需要编辑运行的话,可以安装HBuilder或者Visual Studio Code,将WebGL包打开,直接运行/examples/webgl/范例.html。
问题2:SuperMap iClient3D for WebGPU支持哪些浏览器以及版本?
11.2.0
【解决办法】支持Chrome/Edge 113.0以上版本,支持Opera 12.18及以上
问题3:在SuperMap iClient3D for WebGL/WebGPU中如何启用WebGPU?
11.2.0
【解决办法】参考如下代码:
var viewer = new SuperMap3D.Viewer('Container', {
contextOptions: {
contextType: 3, // Webgl2:2 ; WebGPU:3
}
});
问题4:SuperMap iClient3D for WebGPU 如何在初始化VIewer的时候,加载影像数据?
11.2.0
【解决办法】由于WebGPU采用异步加载,初始化场景操作需要放在回调中打开。具体可参考以下代码:
viewer.scenePromise.then(function(scene){
//初始化场景(由于WebGPU采用异步加载,初始化场景需要放在回调中打开)
//添加SuperMap iServer发布的影像服务
var layer = viewer.imageryLayers.addImageryProvider(new SuperMap3D.SuperMapImageryProvider({
url : URL_CONFIG.SiChuan_IMG
}));
});
问题5:MVT图层如何在倾斜摄影图层上贴对象?
11.2.0
【解决办法】参考如下代码:
S3MTilesLayer.coveredMap = mvtMap;
问题6:MVT怎样加载GeoJSON格式数据?
11.2.0
【解决办法】参考如下代码:
let mianLayer = {
id: 'mian-layer',
type: 'fill',
source: 'mian',
paint: {
'fill-color': [
'match',
['get', 'City'], // 属性字段
'北京市', '#e1cee1',
'天津市', '#ebeabc',
// 默认颜色
'#d0eacd'
],
'fill-opacity': .9
}
}
mvtMap.addLayer(mianLayer)
问题7:WebGL怎样加载以WMTS方式发布的MVT数据?
11.2.0
【解决办法】【注意】目前只支持3857投影,全球剖分,且原点在3857投影左上角的栅格瓦片。发布服务需要选择WMTS1.0.0
参考如下代码:
//加载WMTS
mvtMap = scene.addVectorTilesMap({
canvasWidth: 1024,
name: 'testMVT',
viewer: viewer,
lineAntialiasing: false
});
mvtMap.addSource('mian', {
type: "raster", //wmts
url: "http://localhost:8090/iserver/services/map-ugcv5-China3857/wmts100"
})
mvtMap.addLayer({
id: 'mian-layer',
type: 'raster', //wmts
source: "mian"
})
十一、SuperMap 其他
问题1:SuperMap iMaritimeEditor 支持哪些操作系统?
11.2.0
【解决办法】1、Windows:支持Windows 7、Windows 8、Windows 10、Windows Server 2012等;
2、支持已部署 jdk/jre 1.8及以上版本的 linux 操作系统,如中标麒麟、Ubuntu、Ubuntukylin、Redhat、SUSE等。
问题2:SuperMap iMaritimeEditor支持哪些海图数据标准?
11.2.0
【解决办法】S-57(IHO水道测量数据交换标准)、CJ-57(长江电子航道图数据传输标准)、S101(电子海图)、S102(水深表面产品)、S104(航行水位产品)、S127(海上交通管理产品)、S131(港口基础设施产品)
问题3:在Linux系统中启动SuperMap iMaritimeEditor时,提示缺少依赖库“libpng12.so.0”或其他依赖库文件。怎么办?
11.2.0
【解决办法】1)设置LD_LIBRARY_PATH环境变量,指向bin:
export LD_LIBRARY_PATH=./bin:$LD_LIBRARY_PATH
2)输入以下命令,确认是否真的缺少指定的依赖库文件(libpng12.so.0):
ldd -d libWrapjGeo.so |grep libpng12.so.0
若输出:libpng12.so.0 => not found,则表示缺少libpng12.so.0文件。
3)输入以下命令,查看操作系统中所有libpng12.so文件:find / -name libpng12.so.*
若输出如下信息,表示在操作系统中的第三方软件中有这个库文件,可将该文件拷贝到产品包bin目录下,若未找到该文件,则需要通过其他方式获取。
4)执行以下命令,将libpng12.so.0文件拷贝文件到bin目录中:
cp /snap/core/4917/lib/x86_64-linux-gnu/libpng12.so.0
5)执行以下命令查看是否还缺少依赖库文件:
ldd libWrapj.so |grep no
6)未提示缺少依赖库,启动桌面即可
问题4:在Linux系统中运行 SuperMap iMaritimeEditor,界面中的字体显示为方块是什么原因呢?怎么解决?
11.2.0
【解决办法】这是Linux系统缺失中文字体导致的,将产品包 /resources/Fonts/WenQuanYiMicronBlack.ttf 文件,拷贝至当前使用 jre 环境中的 jdk安装目录/jre/lib/fonts/fallback文件夹中,例如: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-1.h5.oe1.x86_64/jre/lib/fonts/fallback文件夹,重新启动桌面,界面文字即可正常显示。
问题5:使用SuperMap iMaritimeEditor如何导入S57更新数据?
11.2.0
【解决办法】将S57更新数据*.001、.002…和原始数据.000文件放在同级目录,在导入的时候选择*.000文件即可。
问题6:iDesktopX以可编辑格式导入.000海图数据后,数据加载到地图符号化丢失,如何解决?
11.2.0
【解决办法】1)将可编辑海图数据加载到地图。
2)在【地图】导航栏下拉【属性】功能键,选择【海图属性】。
3)在【显示设置】中修改【显示类别】为【海图符号化】即可。
具体设置如图:
十二、SuperMap iPortal
问题1:SuperMap iPortal 11.2.0的产品版本有哪些,有何区别?
11.2.0
【解决办法】SuperMap iPortal 提供了基础版、标准版和高级版三个版本,分别面向不同的应用类型,需要不同的运行许可。
上述不同的版本中,SuperMap iPortal 的门户功能一样,但允许注册的 iPortal 创建者用户数不同,对应的注册用户数扩展包不同,可选配的扩展模块不同,用户数扩展包是扩展可注册用户数的一种方式,当内置注册用户数不能满足需求时,可以通过单独购买用户数扩展包来扩展可注册用户数。具体查看下图
问题2:如果 SuperMap iPortal 所在的操作系统配置了多个IP,如何指定 iPortal 服务所使用的IP?
11.2.0
【解决办法】您可以通过修改 Catalina.bat 中的 Java 虚拟机参数中的-Diserver_ip来指定 iPortal 所使用的 IP。即:修改 %SuperMap iPortal_HOME%/bin/catalina.bat 中的 JAVA_OPTS,设置-Diserver_ip为期望的IP,如:
set JAVA_OPTS=%JAVA_OPTS% -Xms256m -Xmx1536m -XX:MaxPermSize=192m -Xss512k -Diserver_ip=192.168.12.13
问题3:在 iPortal 用户数量很大的情况下,例如:2万用户,启动 iPortal 服务会比较慢,加载用户管理页面也会比较慢,如何解决?
11.2.0
【解决办法】iPortal 在启动服务时,默认将所有用户信息缓存到内存,并从内存查询用户信息。如果用户数量比较大,建议用户信息不缓存到内存,实时从数据库查询,可通过修改【SuperMap iPortal_HOME】\webapps\iportal\WEB-INF\iserver-system.xml 配置文件,找到 --> --> 里边增加>节点,用于设置是否将所有用户信息缓存到内存。默认值为 true,表示缓存所有用户信息到内存,具体配置如下:
…
false
…
问题4:iPortal使用一段时间后,门户的访问记录过多,如何清除呢?
11.2.0
【解决办法】当门户中的资源访问记录占用磁盘空间过大时,您可以配置定时清理任务,自定义清理方式与清理范围。设置完成后,iPortal 将会根据定时清理设置周期性地清理资源访问记录,释放磁盘空间。
以门户管理员身份登录 SuperMap iPortal ,依次点击“管理”>“计划任务”>“访问记录清理”进入访问记录清理页面。页面右上角将显示当前访问记录所占用的磁盘空间,便于您评估是否启用定时清理功能。如果开启定时清理,您需要设置清理方式与清理范围,iPortal 提供了"指定日期”,“间隔时间”,"高级(Cron表达式)"三种清理方式。
问题5:iPortal 不支持注册 localhost 和 127.0.0.1 的服务地址到门户中,那么在无法连网的情况下(单机模式),如何满足用户注册服务进行产品演示的需求呢?
11.2.0
【解决办法】无网的情况下,可以通过以下方式解决注册服务问题 1. Windows 平台中:在 C:\Windows\System32\drivers\etc 目录下的 hosts 文件中加入一个映射,例如:
127.0.0.1 www.iportaldemo.com
2.Linux平台中,打开/etc/hosts文件
后面注册携带以上域名的服务地址就可以了。