一、SuperMap GIS基础产品云GIS-FAQ集锦
问题1:【iServer】【11.1.1】 请问 iServer 是否支持多线程执行 Web 打印功能?
【解决办法】 iServer 是服务端,本身对于前端请求都是在 iServer 异步线程中处理的,可以同时发多个请求打印不同的 pdf,若需要多线程,只需使用多线程向 iServer 发打印请求就行。
问题2:【iServer】【11.1.1】 请问 iServer 的数据科学服务怎么安装?
【解决办法】 目前iServer提供了2种方式:1. 直接使用 docker 镜像;2. 在 k8s 集群中安装。详细安装方式建议参考 iServer 帮助文档。
问题3:【iServer】【11.1.1】 请问如何通过 HTTP 请求在 iServer 上发布知识图谱服务?
【解决办法】 可以通过发布工作空间的 HTTP 接口(workspaces.rjson)发布知识图谱服务,需要在请求的 Body 中设置知识图谱的类型(“servicesTypes”: [“RESTKNOWLEDGEGRAPH”])。
问题4:【iServer】【11.1.1】 请问 iServer 更换正式许可后,动态出图的瓦片在前端显示依然存在水印是什么原因呢?
【问题原因】 通常该问题是由于之前的瓦片缓存没有清空导致的。
【解决办法】 把 iServer 的 \webapps\iserver\output 目录下的缓存清空,再清空浏览器缓存后,重启 iServer 后可出图无水印的瓦片。
问题5:【iServer】【11.1.1】 请问 iServer 发布的数据如何在前端实现分图层显示?
【解决办法】 关于 iClient for openLayers 前端库加载 iServer 发布的地图控制图层显隐,建议参考《SuperMap iClient for OpenLayers图层组控制实现方法》(https://blog.csdn.net/supermapsupport/article/details/125865311)教程。
问题6:【iServer】iServer发布的地图服务通过iClient for leaflet在iServer中预览,对于地图右下角显示的logo该如何去除?
【解决方法】先停止iServer,在【iServer安装目录】webapps\iserver\WEB-INF\lib文件夹中找到iserver-all-***.jar,然后用压缩工具打开,找到staticFiles\leafletForMaps\lib\leaflet目录下的leaflet.css文件,再使用记事本文件打开,找到.leaflet-control部分,添加display:none;修改完成后保存文件,保存jar包,最后重新启动iServer,重新预览服务,发现右下角的logo已经不可见了。添加内容见:贴图
问题7:【iServer】iServer11i在麒麟V10 x86架构的系统中解压后启动,出现机器黑屏后重启的问题,如何解决?
【问题原因】当前使用的iServer包是tar.gz格式的,而在当前这个系统中并不支持该格式的安装包,通过查看其他软件安装包都是rpm格式的,需要重新上传rpm格式的iServer的安装包,再重新解压启动。
【解决方法】重新上传rpm格式的iServer11i的包后,使用命令rpm -ivh 【iServer包】解压,再去启动iServer正常。
问题8:【iServer】iServer将矢量瓦片打包,通过上传数据的方式发布,提示“ZIP文件解压失败,包含不支持的文件类型”
【问题原因】在iServer中,上传zip文件时有默认禁止的内部文件类型,分别有(.jsp,.sh,.exe,.bat,.html,.js,.war,.class,.jar,.shtml,.htm,.php,.aspx,.asp,.asa,.jspx,.cgi);而iDesktopX在切完矢量瓦片后会自动添加到地图中预览展示,就会默认自动生成预览文件(js、html格式),所以就出现了上传矢量瓦片时报错的情况。
【解决方法】关闭iServer,打开【iServer安装目录】\webapps\iserver\WEB-INF文件夹下的iserver-system.xml配置文件,修改节点中的内容,可自定义上传 zip 文件时禁止的内部文件格式,如下所示,
.jsp,.sh,.exe,.bat,.war,.php,.aspx,.asp,.asa,.jspx,.cgi
修改完成后,保存文件重启iServer,再重新上传包含js、html格式的矢量瓦片zip包,这次能正常上传并解压到当前目录了。
问题9:【iServer】通过REST API的方式将postgreSQL数据库型工作空间发布成服务,报错提示“工作空间连接字符串错误”。
【问题原因】提示报错“工作空间连接字符串错误”一般是由于参数填写错误,检查工作空间参数填写,如:工作空间名称、数据库名称、密码等;经过了解得知,当前问题是由于参数工作空间类型“type”填写错导致的,正确填法应该是“PGSQL”,对于其他数据库型工作空间,type类型参数分别为:DM(达梦工作空间)、MYSQL(MYSQL工作空间)、ORACLE(Oracle工作空间)、PGIS(PostGIS工作空间)、PGSQL(PostgreSQL工作空间)、SMWU(文件型工作空间)。
【解决方法】修改工作空间类型参数,然后再重新执行REST API请求,PostgreSQL工作空间发布服务成功。
问题10:【iServer】文件型工作空间PostGIS数据库型数据源发布数据服务,访问数据源报400错误,提示: errorMsg :ugcValue:0 Enum值错误。
【问题原因】该报错是由于当前数据源或数据集中存在数据结构异常,导致的输入值无效,从而引起报错。
【解决方法】该问题可以从两方面解决:1、在iServer中直接发布PostGIS服务为数据服务,这样就可以正常使用了,但需要注意发布PostGIS服务一次只能选择发布一个PostGIS数据库,当一个工作空间中存在多个PostGIS数据库型数据源的话,就需要发布多个PostGIS服务了;2、逐个检查当前工作空间中的PostGIS数据源,找到出问题的数据源。新建个PostGIS空库,在iDesktopX中将有问题数据源中的数据集重新复制到新数据源中,最后重新保存发布即可。
问题11:【iServer】iServer是否可以自定义水印展示?
【问题原因】目前iServer支持对瓦片发布的地图服务设置水印,并且可以设置水印图片文字大小颜色位置等
【解决方法】具体操作方式可参考帮助文档 http://support.supermap.com.cn/DataWarehouse/WebDocHelp/iServer/Server_Service_Management/GISService_Config/Service_Config/Config_Provider/ConfigProviderXML/configMapProviderXML.htm#MiniTOCBookMark12 这部分内容介绍了相关参数的设置。见贴图
问题12:【iServer】iServer发布的WMTS服务如何实现GetFeatureInfo操作?
【问题原因】WMTS 1.0.0支持进行GetFeatureInfo操作,返回显示在瓦片地图上的要素信息FeatureInfo。
【解决方法】GetFeatureInfo操作请求格式可参考 https://iserver.supermap.io/iserver/services/map-china400/wmts100/{layer}/default/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}/{J}/{I}.xml 具体的参数格式值为 https://iserver.supermap.io/iserver/services/map-china400/wmts100/China/default/Custom_China/2/0/0/0/3.xml
问题13:【iServer】iServer11i的war包是否支持部署到WebLogic12.2.1.3版本?
【问题原因】目前iServer11i版本的war包不再支持在WebLogic上部署。
【解决方法】iServer10i版本在删除部分功能经过调整能够部署到WebLogic中并能正常运行,但需要注意如Hadoop相关功能、web打印等功能不可用,若有需要可联系超图支持团队获取产品包。
问题14:【iServer】iServer是否能关闭上传接口呢?如果可以的话应该怎么操作呢?
【解决方法】iServer可以关闭上传接口,具体操作如下,修改iServer根目录\conf\web.xml文件,在文件最后部分添加定义资源/方法的约束参数进行安全加固,禁止访问上传接口,这样配置完成后重启iServer,再访问iserver/manager就会报403错误无法再进行上传操作了,详细内容见:贴图
问题15:【iServer】解压后启动报错“启动子级出错”运行不起来?
【问题原因】iServer包在解压时就报错“unexpected end of file”
【解决方法】重新上传压缩包并解压使用即可
问题16:【iServer】发布的地图服务什么情况下可以通过WebGL3D表述进行预览
【问题原因】当资源是 map,且地图不是平面坐标系时,WebGL3D 表述有效
问题17:【iServer】发布的WMS服务为什么有三种坐标系表达?
【问题原因】分别是自定义坐标系、地理坐标系4326和投影坐标系3857
问题18:【iServer】如何访问共享目录下的数据?
【解决方法】参考技术博客:https://blog.csdn.net/supermapsupport/article/details/135221201
问题19:【 iPortal 】如果所在的操作系统配置了多个IP,如何指定 iPortal 服务所使用的IP?
【解决方法】可以通过修改 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
问题20:【 iPortal 】如果 iPortal 部署在语言环境为英文的 Linux 操作系统中,上传含有中文的数据或输入中文内容时出现乱码,该如何解决?
【解决方法】需要在 Linux 系统中安装中文语言包,以支持中文字符集。以 Ubuntu 20.04 为例,您只需切换到 root 用户,执行以下命令即可:apt install language-pack-zh-hans
问题21:【 iPortal 】为什么有时候发送请求时服务器无法正确识别请求,即出现返回乱码、请求失败或者得到错误结果的情况?
【问题原因】发送的 HTTP 请求没有使用 UTF-8 编码导致服务器无法识别所致。对于非 ASCII 字符,SuperMap iPortal 默认使用 UTF-8 编码,如果不是,则无法正确解析。
问题22:【iServer】 上下游追踪分析,返回结果为空
【问题原因】流向字段的数据类型错误,需设置为32位整型
【解决办法】在属性结构中调整流向字段数据类型位32位整型
问题23:【iPortal】如何在顶部导航栏添加一个内置的导航栏目
【解决办法】在管理界面中站点配置->站点定制功能中添加栏目并勾选内置导航后保存即可
问题24:【iPortal】iPortal服务预览默认显示的中心点和级别如何设置
【解决办法】在管理界面中站点配置->服务预览->中心点与显示级别中填写项目所需默认中心点和级别保存
问题25:【iPortal】iPortal安全信息默认是存在sqlite中的,如何修改?
【解决办法】在管理界面中安全->安全配置->安全信息存储中进行存储位置更改,目前还支持存储在MySQL、Oracle、PostgreSQL数据库中。
问题26:【iPortal】如何注册某个级别无法访问,但子地址能访问的服务
【解决办法】在注册服务的时候选择其他服务,并且勾选自定义服务检测地址,在自定义服务检测地址中输入改级别的子地址进行在线监测即可.
问题27:【iPortal】服务资源太多,想要某些重要服务默认置顶如何操作呢?
【解决办法】在管理界面中资源管理->服务->服务管理列表每一行的最后面设置为精选,精选资源默认会置顶显示
问题28:【iPortal】首页的如何添加页面内部跳转的快捷链接
【解决办法】官网下载最新的11.1.1及以上版本使用快速定制的 快捷链接2 组件可设置内置导航
问题29:【iServer】有一份大数据量的地调图斑存储在人大金仓中,不考虑对地图切片的情况下,想在iSerevr端小比例尺下直接快速预览出图有什么办法
【解决办法】在桌面创建矢量金字塔然后在iServer端发布服务
问题30:【iServer】前端对接出图很慢,并且查看在Timing发现请求耗时集中在Content Download上,如何解决?
【问题原因】排查到是客户端网络下行带宽限制影响
【解决办法】优化客户端下行网络和服务器的上行网络
问题31:【iManager for k8s】如何临时关闭有状态副本集fluentd-es
【解决办法】临时关闭daemonset:spec.template下增加:
spec:
nodeSelector:
disktype: test
问题32:【iManager for k8s】在imanager界面配置改映射ip后,发现访问云套件页面报错redirect_uri错误
【问题原因】部署时CronJobs update-keycloak-redirct-uri 没有成功部署到客户环境
【解决办法】将update-keycloak-redirct-uri CronJobs的yaml apply到客户环境即可
问题33:【iManager for k8s】如何重置iManager访问入口的链接和协议?
【解决办法】在iManager安装目录下有名为reset-entrance.sh的文件执行reset-entrance.sh,可将访问入口重置为安装部署iManager时的链接和协议
问题34:【iManager for k8s】GIS云套件站点的服务节点(gisapplication)在接收多并发请求时发生崩溃,出现异常导致服务访问失败,应如何解决
【解决办法】对服务节点编辑其部署yaml,添加名为“icn_ext_param_server_tomcat_threads_max”的环境变量,并根据所需接收请求数设值
问题35:【iManager for k8s】通用节点中放置webgl的静态文件的jar是在容器中的哪个目录以及哪个文件
【解决办法】容器目录/etc/icloud/service/lib中的 services-rest-11.1.0-SNAPSHOT.jar文件
问题36:【iManager for k8s】k8s基础服务中的coredns报错starting container process caused "process_linux.go:281: applying cgroup configuration for process caused unknown
【解决办法】将docker和kubelet二者使用的cgroup-driver配置改为相同的值,可参考博客https://blog.csdn.net/qq_26363645/article/details/133084135
问题37:【iServer】请问下,iServer10.2.1被扫描出数据服务存在SQL注入漏洞和Cookie注入的漏洞,如何修复
【解决办法】参考https://blog.csdn.net/supermapsupport/article/details/122620112
中的第五项解决cookie注入问题,第九项解决sql注入问题
问题38:【iManager for k8s】发布了一个ugcv5的服务,点地址报404,同份数据iserver发布是正常的
【解决办法】开启服务节点的svc type为nodeport,跳过网关直接通过能正常访问访问服务,随后删除重建gateway解决
问题39:【iServer】iServer如何使用系统字体库中没有的字体,如何进行扩展字体
【解决办法】a,手动安装系统字体
手动安装所需字体到系统字体库,安装完成后无需重启 iServer
b,将字体文件放到 iServer 指定目录中
Linux:将字体文件放到【iServer安装目录\support\fonts】目录下,iServer会在 60s 内自动加载,无需重启
Windows :在【iServer安装目录\support】目录下,新建fonts文件夹,并将字体文件放到【iServer安装目录\support\fonts】目录下,再启动 iServer
注: .ttc格式的字体需要放到 iServer 指定目录中进行扩展
问题40:【iServer】iServer实现空间分析的缓冲区分析,请求体应该如何填写
【解决办法】
$.ajax({
url: "http://xxx:8090/iserver/services/spatialanalyst-changchun/restjsr/spatialanalyst/geometry/buffer.json",
data:
JSON.stringify(
{
"analystParameter": {
"endType": "ROUND",
"semicircleLineSegment": 4,
"leftDistance": {
"value": 100
},
"rightDistance": {
"value": 100
}
},
"sourceGeometry": {
"type": "LINE",
"points": [
{
"x": 23,
"y": 23
},
{
"x": 33,
"y": 37
},
{
"x": 43,
"y": 23
}
]
}
}),
type: "POST",
dataType: "json",
contentType: "application/json;charset=utf-8",
success: function (data) {}
});
问题41:【iManager】k8s的云套件环境中的服务聚合功能,如何实现已经发布的地图进行聚合为新地图服务
【解决办法】a,已经发布的地图服务进行聚合,先查看地图的providerNames,聚合地图的provider->inner-providerNames,需要填发布的地图provider-name
问题42:【iServer】iServer发布的wfs服务如何返回geojson字符串呢?
【解决办法】a,请求参数设置&outputFormat=json
问题43:【iServer】前端发送请求后对数据进行更新后,但地图服务无法实时更新,如何解决?
【解决办法】a,11i的iserver在服务管理界面-数据-工作空间,可以点击刷新
b,前端调用接口workspacereload对工作空间进行刷新,请求头参考下方
c, { “workspaceConnectionInfo”: “type=ORACLE;server=xxx:1521/ORCL;database=;name=test;password=***;username=scott”,“isForce”: true, “datasets”: {“test”: [ “NewPoint” ] }}
问题44:【iManager】当发布的服务的文件大小很大的时候(工作空间,数据源),是否可以无需通过云套件的文件管理上传文件
【解决办法】a,直接通过shell工具上传到nfs挂载的目录
b,需要修改文件的权限
问题45:【iServer】前端如何实现sql查询(对iServer的数据服务)的返回结果数大于默认的1000条?
【解决办法】a,请求:http://xxx:8090/iserver/services/data-China400/rest/data/featureResults.rjson,
b,请求体
{
"queryParameter": {
"name": "ct_ztk_dz_t_jxcsxx@9xcs",
"attributeFilter": "SMID>0"
},
"datasetNames": [
"9xcs:ct_ztk_dz_t_jxcsxx"
],
"maxFeatures":3000,
"getFeatureMode": "SQL"
}
问题46:【iServer】东方通7.0.4.4_P1_Enterprise_Linux部署iServer11.1.1a.war包出现报错javax.servlet.ServletException: java.lang.InstantiationException: org.glassfish.tyrus.server.TyrusServerConfiguration
【解决办法】a,修改tongweb.properties还需要加上跳过tyrus-server*.jar后部署成功(tongweb.util.scan.StandardJarScanFilter.jarsToSkip=jersey-.jar,hadoop-.jar,tyrus-server*. jar)
问题47:【iServer】向iserver发送ajax等请求遇到跨域问题,被浏览器同源安全策略组织返回内容
【问题原因】浏览器的同源策略(Same-Origin Policy)是一种安全机制,用于限制一个网页文档或脚本如何与来自不同源的资源进行交互。同源是指两个 URL 的协议、主机和端口号都相同
【解决办法】请求中不要加上头部,不会触发同源安全策略
问题48:【iServer】iServer提示报错“Unable to add the resource at [/WEB-INF/faces-config.xml] to the cache”
【问题原因】静态资源缓存的最大值过小导致报错。
【解决方法】在conf/context.xml中调大缓存即可,加在前。具体如下
问题49:【iServer】iserver提示[Caused by: org.xml.sax.SAXParseException; 服务页面打不开
【问题原因】原报错详细信息是
systemId: file:/opt/TongWeb7.0.4.9/deployment/iserver/WEB-INF/tongweb-web.xml; lineNumber: 2; columnNumber: 147; 外部 DTD: 无法读取外部 DTD ‘tongweb-web-app_2_5-0.dtd’, 因为 accessExternalDTD 属性设置的限制导致不允许 ‘http’ 访问。],
该报错提示系统无法读取外部的DTD文件,常见于设置访问限制导致该错误
【解决办法】调整XML解析器的属性,以允许访问外部的DTD文件,在%JAVA_HOME%\jre\lib\ 目录下,新建一个文件jaxp.properties,内容如下:
javax.xml.accessExternalSchema=all
javax.xml.accessExternalDTD=all
问题50:【iServer】发布的地图服务,数据改变后web打印地图数据没有更新
【问题原因】地图数据更新后,地图存在缓存导致没有更新
【解决办法】可将地图服务缓存关闭或者清理后再重新打印地图
问题51:【iManager】10.2.1 iManager许可中心选择许可文件后报错“文件格式错误”,本地v3 web 许可中心选择文件后能显示许可信息。
【问题原因】web 许可中心2.x系列的许可中心只认utf-8,3.x的兼容了utf-8和utf-8-bom
【解决办法】修改许可文件编码为utf-8并保存后,然后再选择和导入许可
问题52:【iManager】iManager导入正式许可后,许可中心显示扩展模块也能识别上,但是云套件服务节点里面始终读不到扩展模块
【问题原因】扩展模块按套导入,而核许可和套许可不能混用。
【解决办法】将扩展模块以安核的方式导入许可中心
问题53:【iManager】iManager导入自定义模板存储在哪儿
【解决办法】访问imanager-dashboard-api 容器的挂载卷pvc-imanager-dashboard-api,
找到并进入对应的持久化目录,该目录下appset/*/xxx.yaml即为上传的定制站点模板的yaml文件
问题54:【iManager】通过离线镜像包安装iManager,百度网盘里面的补丁包是啥?
【解决办法】百度网盘里面的补丁包是解决某些bug所提交包,需要同离线镜像包一并下载,导入并替换已有镜像仓库中已有的镜像
问题55:【iManager】云套件访问报错400
【解决办法】ispeco-gateway日志报错报错99900访问不到,9990是dashbord-ui的页面,即k8s iManager页面,将dashbord-ui指定到其他k8s节点上,云套件正常访问;将其还原到之前节点上,ispeco-gateway仍然报错连不上,判断改节点通信异常。
问题56:【iManager】经典版iManager 将根目录占满了
【解决办法】1、进入docker root目录(docker info 可以查询到)的containers文件夹
2、执行 du -sh * | sort -rh 对文件夹大小排序
3、将比较大的目录中的日志文件(*.json)置空,echo “” > xxxx.json
4、配置docker日志限制,修改/etc/docker/daemon.json,添加(修改)如下配置项:
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file":"10"
}
5、重载配置 & 重启docker
问题57:【iManager】iManager通过ftp上传文件,发布服务的时候找不到上传的文件
【解决办法】通过ftp上传的文件默认属于上传用户(root),所以云套件不具备该文件(夹)的读写权限,给其赋予其他用户读写权限即可
问题58:【iServer】docker load arm64架构的iserver镜像,报错误"incomplete deflate data"
【问题原因】当前使用的iServer镜像包异常有损坏
【解决办法】需要重新拉取最新的11.1.0的ARM版本iServer镜像包,再进行导入
问题59:【iManager】iManager启动很慢,一直卡在3%
【问题原因】查看pod事件中有如下报错信息:“applying cgroup configuration for process caused “No such device or address”,docker 与 k8s 的cgroup driver不一致导致
【解决办法】将所有节点的daemon.json中的"exec-opts”: [“native.cgroupdriver=systemd”],配置项删掉,或者将其修改为““exec-opts”: [“native.cgroupdriver=cgroupfs”]”,然后重载配置和重启docker,最后再执行startup启动脚本
问题60:【iManager】云套件keycloak的默认密码是多少?
【解决办法】账户:admin,密码:keycloak
问题61:【iServer】能否基于数据源下的每个数据集提供一个iServer的数据服务地址?
【解决办法】可以在发布数据服务的时候,勾选需要发布的数据集,这样就能满足需求。
问题62:【iServer】ECQL查询时字段不支持中文字段吗?
【解决办法】当过滤字段需要使用中文时,只需给中文打上双引号即可。
问题63:【iServer】GPA分析模型能否用变量来表示输入和输出字段?
【解决办法】支持,在“变量”中选择所需的类型,然后在算子中按需使用即可。
问题64:【iServer】iServer软件启动一直弹这个“套接字接受失败java.io.IOException: 打开的文件过多”
【问题原因】因Linux服务器句柄数限制,可开放服务句柄数
【解决办法】编辑/etc/security/limits.conf,然后增加
hard nofile 65536
soft nofile 65536
重启服务器后可永久生效
问题65:【iManager】云套件的域名证书怎么替换呢?
【解决办法】1:在站点管理中,点击云套件URL右侧的管理按钮;
2:在“入口配置”中选择证书类型、证书文件、证书密钥,提交即可。
问题66:【iServer】iServer可以设置请求响应超时的时间吗?
【解决办法】在iServer的conf目录下,编辑server.xml,添加以下配置即可:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="30000" <!-- 设置超时时间为30秒,参数单位为毫秒 -->
redirectPort="8443" />
问题67:【iServer】在iServer中使用Saprk集群运行任务时,Driver报错“ Illegal key size or default parameters”
【问题原因】使用AES 加解密时,里边默认的JCE 秘钥长度限于128位,这边使用256位的秘钥长度会抛出这个问题
【解决办法】升级JDK版本至1.8.0_180以上版本即可。
问题68:【iManager】云套件文件管理器的data目录下的temp文件夹里面的东西可以删除么?
【解决办法】可以删除带有tomcat和undertow字样的文件夹,其他的不可以删除。
问题69:【iPortal】iPortal启动报“ElasticSearch has no available nodes”的警告,资源中心显示搜索服务异常?
【解决办法】
1.删除iPortal目录下的data文件夹
2.修改 %SuperMap iPortal HOME%/webapps/iportal/WEB-INF 目录下的 iportal.xml 配置文件中的为true;
3.重启iPortal
问题70:【iPortal】iServer地址可正常访问,但在iPortal进行目录注册失败,报无法访问?
【解决办法】确保iPortal所在服务器能访问iServer的地址即可
问题71:【iPortal】如何修改资源中心页面,浏览器标签页上的图标
【解决办法】替换iPortal解压目录/webapps/iportal/WEB-INF/lib下的iportal-webui-*.jar中的favicon.ico即可
问题72:【iServer】通过HTTP Referer方式生成Token,但是第三方系统无法调用服务?
【问题原因】填入的Referer和请求的不一致
【解决办法】可通过浏览器的开发者工具页面,查看服务的请求的请求头的Referer,生成Token的时候填入即可
问题73:【iPortal】iPortal注册iServer的https协议的服务失败,报错信息包含“exception message is:java.security.cert.CertificateExpiredException: NotAfter: Tue Feb 27 16:18:03 CST 2024”?
【问题原因】iServer的https协议的SSL证书已过期
【解决办法】需重现生成证书,对iServer进行配置
问题74:【iPortal】有关于地图大屏的低代码编辑器的布局介绍吗?
【解决办法】可参考这篇文章,链接如下:https://mp.weixin.qq.com/s/H9TeHwMHReAz0JLPiV7tQg
问题75:【iServer】如何实现对空间数据的增删改查吗?
【解决办法】可以通过REST API对数据服务进行要素的增、删、改,具体可以参考:https://blog.csdn.net/supermapsupport/article/details/135087073
在帮助文档中有示例代码可以参考:http://support.supermap.com.cn/DataWarehouse/WebDocHelp/iServer/DevelopGuide/Use_iServer/USE_RESTAPI/Data_Opr/AddFeature.htm
问题76:【iServer】REST-Data服务中数据集有数据的话,不能通过接口新增字段?
【问题原因】iServer不支持在非空数据集中进行字段添加,这种操作是不安全的
【解决办法】要改的话只能改原始数据,通过桌面端或者组件产品都可以
问题77:【iServer】前端加载地图服务报错:“errorCode”: 100, “errorMsg”: "网关异常,java.lang.IllegalArgumentException: Illegal character in path at index 150…这是为什么?
【问题原因】发送请求时,路径中存在非法字符(空格)
【解决办法】用%20替换URI里的空格即可
问题78:【iServer】在iServer上怎么编辑数据服务?
【解决办法】对feature资源执行put方法,修改一个要素(当要素类型为点、线、面、文本、复合数据集或纯属性表数据集时)。具体操作可参考:https://blog.csdn.net/supermapsupport/article/details/135087073
问题79:【iServer】iServer地图服务支持动态投影吗?
【解决办法】矢量数据发布的地图支持自动生成3857或者4326坐标系的服务,URI中,在“?”后面传递参数prjCoordSys,例如:prjCoordSys={“epsgCode”:3857},服务端会对地图进行动态投影,然后返回动态投影后的地图状态信息
问题80:【iServer】点符号图标在iServer预览无法显示完全,边缘感觉被切割了,这是为什么?
【问题原因】 iServer上预览时会有范围限制,只加载点数据集的范围,由于图标本身比点大,超出了点数据的范围导致预览不全
【解决办法】在桌面端数据集属性面板中修改数据集范围,把点数据集范围扩大即可
问题81:【iServer】怎么请求WMS服务为图片格式?
【解决办法】例如,本机 SuperMap iServer WMS 1.3.0 服务启动成功之后,访问 GetMap 操作的 URI 是:http://localhost:8090/iserver/services/map-world/wms130/世界地图_Day?VERSION=1.3.0&REQUEST=GetMap&LAYERS=0.8&STYLES=&CRS=CRS:84&BBOX=-180,-90,180,90&WIDTH=800&HEIGHT=400&FORMAT=image/png
问题82:【iServer】iServer更换许可时为什么读不到单机锁许可?
【解决办法】低版本iServer(10.2.0以下)更换不同许可类型时,需要将 iserver-system.xml(位于SuperMap iServer 安装目录\webapps\iserver\WEB-INF目录中)文件中的…节点和…节点中的内容删掉,然后重启 iServer,再次配置许可即可生效
问题83:【iServer】Web打印功能如何打印geojson数据?
【解决办法】对webPrintingJobs资源构造post请求,geojson资源使用geojson图层类型加载,示例参数如下:
{
"layerType": "geojson",
"geoJson": "file://features.geojson",
"style": {
"version": "2",
"*": {
"symbolizers": [
{
"type": "point",
"fillColor": "#00000",
"fillOpacity": 1,
"strokeColor": "#00000",
"strokeOpacity": 1,
"strokeWidth": 1,
"pointRadius": 2
}
]
}
}
}
具体请求可参考帮助文档:
http://support.supermap.com.cn/DataWarehouse/WebDocHelp/iServer/mergedProjects/SuperMapiServerRESTAPI/root/webprinting/webPrintingJobs.htm#POST%20%E8%AF%B7%E6%B1%82
问题84:【iPortal】iPortal的"三维地理设计WebApp"模块是否需要iServer端也配置"三维地理设计服务扩展模块"许可?
【解决办法】使用三维地理设计之前,您除了拥有 SuperMap iPortal 用户数许可之外,还需拥有 SuperMap iPortal 三维地理设计扩展模块许可,无需SuperMap iServer三维地理设计服务扩展模块 。
问题85:【iServer】UGCV5瓦片发布的地图服务为什么预览没有 for MapboxGL选项,是不支持在MapboxGL加载吗?
【问题原因】 for MapboxGL预览加载资源为tileFeature资源,即矢量瓦片方式出图,栅格瓦片发布的地图服务不支持tileFeature资源出图,所以预览没有 for MapboxGL选项。
【解决办法】UGCV5瓦片发布的地图服务支持在MapboxGL加载,使用tileImage资源进行出图即可,具体可以参考博客:https://blog.csdn.net/supermapsupport/article/details/135290657
问题86:【iServer】iServer启动报错:/support/jre/jre.tar.g2: not open: No such file or directory,如何解决?
【问题原因】系统磁盘空间不足,解压iServer包时未完全解压成功,导致部分文件丢失。
【解决办法】清理磁盘空间,重新解压iServer,解压成功后启动即可。
问题87:【iServer】iServer存在漏洞“域名访问限制不严格”
【解决办法】通过修改 iServer 配置文件【SuperMap iServer 安装目录】\webapps\iserver\WEB-INF\web.xml中,添加hosts白名单:
<init-param>
<param-name>hostWhiteList</param-name>
<!-- 开启防护跨站请求伪造后,可以设置host请求头白名单 -->
<param-value>ip1:port1;ip2:port2;ip3:port3</param-value>
</init-param>
问题88:【iServer】iServer在http中使用未转码的参数“?prjCoordSys={“epsgCode”:3857}”没有问题,https中就会报错
【解决办法】修改【SuperMap iServer 安装目录】\conf\web.xml文件,使https协议下也可以识别未转码的字符,参考文件:https://blog.csdn.net/rockabye_kk/article/details/129276483
问题89:【iServer】web打印能否直接打印GeoJSON格式的数据吗?
【解决办法】将layerType设置为"geojson",将GeoJSON数据传入geoJson参数,具体格式参考【SuperMap iServer 安装目录】\webapps\iserver\templates\webprinting-layouts\A4_landscape\requestData_geojson_rest.json
问题90:【iPortal】iPortal注册新用户失败,提示:超出允许注册的最大用户数,注册失败
【解决办法】在iPortal管理页面中找到“许可”,从附加信息中可以看到iPortal可以注册用户数和已经注册用户数,可以通过购买“用户数扩展包”增加可以注册用户数量
问题91:【iServer】在iDesktopX中设置了地图背景颜色,发布到iServer中,Leaflet预览发现背景为白色
【问题原因】可以使用F12查看地图加载请求,可以看到transparent参数为false,背景不透明,显示为白色
【解决办法】可以在前端加载地图服务,将transparent参数设置为true,就可以看到背景颜色了
问题92:【iServer】发布PostGIS服务的地图服务时,样式文件从哪里获取?
【解决办法】如何不指定样式文件,iServer 将使用默认的风格文件:【SuperMapiServer安装目录】\webapps\iserver\WEB-INF\config\mapboxstyles\defaultstyle.json,如果想要设置其他样式,也可以在iDesktopX中将地图设置好风格,然后将地图生成矢量切片,就会有style.json文件
问题93:【iServer】调用地图服务的queryResults接口,进行查询,显示“查询目标图层不存在”
【问题原因】地图对应的数据源名称不符合规范,含有特殊字符:“.”、“:”等
【解决办法】用iDesktopX打开工作空间,修改数据源名称,保存工作空间,再进行queryResults查询,就可以得到查询结果
问题94:【许可】正式许可使用过程中,iServer无法识别到,许可状态中的许可名称显示空白什么原因?
【问题原因】正式许可时9/10的,用在了11版本上
【解决办法】重新下载10i的许可中心和对应iServer
问题95:【iServer】地址匹配服务发布过程中,下拉框中没有找到需要的查询字段
【解决办法】 地址匹配服务中,如果数据集选择了多个,查询字段只能选择这几个数据集都存在的文本属性字段。
问题96:【iServer】iserver 在linux 系统上,然后发服务的时候,找不到中文文件夹
【问题原因】缺失中文字符集
【解决办法】执行命令sudo localectl set-locale LANG=zh_CN.UTF-8,之后重启iServer
问题97:【iServer】发布3dtiles服务后,可能存在部分模型数据丢失的问题
【问题原因】iServer暂不支持i3dm格式数据
【解决办法】通过使用b3dm格式数据绕行实现。
问题98:【iServer】如何只允许某个域请求访问iServer,不允许其它来源访问iServer资源?
【解决办法】web.xml 文件中增加跨域白名单设置,如:
<init-param>
<param-name>填写允许访问的域名</param-name>
</init-param>
web.xml 文件在iServer目录/webapps/iserver/WEB-INF中
问题99:【iServer】iServer换成正式许可后,地图服务还是有水印是为什么?
【问题原因】
原因1:发布的地图服务是瓦片数据,瓦片本身是试用许可切的就自带水印
原因2:发布的地图服务是工作空间,iServer本身有试用许可切得瓦片缓存
【解决办法】
第一种情况,需要使用正式许可的iDesktop或iDesktopX生成无水印的瓦片再进行发布。
第二种情况,需要将iServer原有试用许可期间生产的缓存都删除干净,iServer缓存在iServer目录\webapps\iserver\output中。
问题100:【iServer】iServer数据服务查询上限1000限制如何解决?
【解决办法】前端查询参数设置时, maxfeatures和toindex均设为-1即可,不需要修改iServer配置。
二、SuperMap GIS基础产品桌面GIS-FAQ集锦
问题1:【iDesktopX】【11.1.1】 请问 iDesktopX 打开 HDFS 数据源失败是什么原因呢?
【问题原因】 目前只支持 DSF 格式的数据,若 HDFS 中存储的是其他格式的数据,则会打开失败。
【解决办法】 将数据转换成 FeatureRDD 后,创建分布式网格,将 DSF 格式的数据写入 HDFS 后,才能从 HDFS 数据源打开。
问题2:【iDesktopX】【11.1.1】 请问 iDesktopX 扩展开发支持捕获桌面端关闭或退出的事件吗?
【解决办法】 Application 提供了 addDesktopExitingListener 事件用于监听 iDesktopX 程序退出事件。
问题3:【iDesktopX】【11.1.1】 请问 iDesktopX 如何使用视频地图配准功能?
【解决办法】 建议参考 iDesktopX 帮助文档以及CSDN上的视频地图教程(https://blog.csdn.net/supermapsupport/article/details/127851721)学习视频配准操作流程。
问题4:【iDesktopX】已经安装好了达梦DM数据库,在iDesktopX怎么才能正常连接到达梦数据库并使用呢?
【问题原因】iDesktopX连接达梦数据库需要有当前iDesktopX所在机器安装有达梦数据库客户端,并且当前iDesktopX支持的达梦数据库版本有DM7和DM8,在iDesktopX中连接达梦数据库是以DMPlus数据库型数据源的方式连接到的,如果DMPlus是灰色的,则说明不能连接。
【解决方法】首先在iDesktopX所在机器安装好达梦数据库客户端,启动iDesktopX检查DMPlus是否为灰色的,如果还为灰色的可能是缺少依赖或环境变量问题,可参考博客解决https://blog.csdn.net/supermapsupport/article/details/121952993
问题5:【iDesktopX】地形数据生成TIN缓存后,为什么有很多solid文件?
【问题原因】当生成缓存时,瓦片存储格式选择为原始时,瓦片文件以单独的图片文件格式存放在磁盘上,不对数据进行压缩,能够直接读取。瓦片文件包括两个部分:索引文件(.sci)和瓦片数据。瓦片数据直观地表现为多个文件夹下的瓦片图图片,若当前比例尺中存在纯色瓦片,文件下会生成纯色瓦片信息文件(.solid)。
如下图所示【贴图】,JPG为瓦片文件,*.solid为当前比例尺下的纯色瓦片信息文件。0×0.eab991.solid文件名中,0×0为瓦片的位置信息,eab991代表颜色值;同时JPG文件有对应颜色值eab991的纯色瓦片,所以在读取瓦片时程序会去找对应颜色值名字的纯色图片。纯色瓦片只需要存储一次,即可通过纯色瓦片信息文件读取,减少数据冗余。
问题6:【iDesktopX】村级数据如何根据一个字段合并成镇级数据?
【解决方法】使用【数据】-【数据处理】-【融合】功能选择指定的融合字段,点击执行即可。
问题7:【iDesktopX】shp矢量面数据如何拉伸成一个伪三维的立体地图?
【解决方法】使用【地图】-【制图】-【立体地图】功能即可。
问题8:【iDesktopX】三维管点图层其管点模型符号颜色,与符号管理器中预览的模型符号颜色不一致,颜色更深,这是为什么?
【问题原因】图层风格中默认点符号颜色为白色。 此问题考虑为图层风格设置了点符号颜色, 导致模型符号本身颜色,与图层颜色叠加,显示效果颜色加深。
问题9:【iDesktopX】使用工具将S3M转换为3dtiles格式,数据是否保留属性?
【解决方法】不支持保留属性信息。
问题10:【iDesktopX】多个3ds如何导入成一个模型数据集?
【解决方法】有两种方式实现:
1.选择3ds文件导入为数据集后,通过【数据处理】-【合并数据集】将多个数据集合并为一个数据集。
2.在建模软件例如Max中,将多个具有相对位置关系的3ds整合后, 使用Max超图插件一键导出为udbx数据源进行使用。更推荐此方式。插件使用方式可参考此博客链接:https://blog.csdn.net/supermapsupport/article/details/127495748
问题11:【iDesktopX】不改变功能,如何改变界面布局、选项卡标签?
【解决方法】使用【视图】-【自定义】-【环境设计】-【工作环境设计】功能,在工作环境设计器中选择功能自定义参数即可。
问题12:【iDesktop】如何同时导入文件夹中多个obj?
【解决方法】右键数据源,选择批量导入模型功能,选择模型文件夹,一键导入。
问题13:【iDesktopX】fbx在max里面查看是多个模型,但是导入进超图以后,就合并成一个了。怎么拆分成多个?
【解决办法】导入参数中勾选“分解为多个模型对象”按钮即可。
问题14:【iDesktopX】【iDesktop】怎么按照范围批量选择三维模型并复制出来?
【解决办法】如果是想另存为数据集,可以通过【三维地理设计】->【模型编辑】->【模型裁剪】功能,绘制对应的范围面,然后另存为数据集。
如果是想导出模型的话,您可以按照上一步的步骤裁剪出来后,全选中模型,然后右键导出模型。
问题15:【iDesktopX】怎么计算面对象的面积,单位为亩
【解决办法】打开面数据集属性表,在属性表选项卡下的“计算几何属性”,选择测地线面积,单位设置为亩即可。结果会在属性表中自动新增一个面积字段。
问题16:【iDesktopX】【iDesktop】倾斜入库还需要手动创建空间索引吗?
【解决办法】11i系列的iDesktop倾斜入库会自动创建空间索引不用手动创建。前端需要加些代码才能读到空间索引。例如:
var layer = scene.layers.find(‘Config’);
layer._maxSkipNum = 256;
layer.LoadingPriority =Cesium.LoadingPriorityMode.UsePagedLodInfo;
问题17:【iDesktopX】【iDesktop】随着地图放大,标注字体变小如何解决
【解决办法】可以在专题图风格面板勾选【固定大小】。
“固定大小”按钮用来控制文本图层中文本对象是否固定大小。当该按钮为按下状态表示文字大小不随地图的缩放而改变大小;如果按钮为非按下状态 表示文字大小随地图的缩放而缩放。
问题18:【iDesktopX】【iDesktop】场景中的线用自定义专题图设定后,部分地方有异常
【问题原因】因为管线是两点一线,而不是一个管多个线。正常来说的管线应该如下所示,一个线段是一个管道。
【解决办法】您可以在线上添加点,用点打断线再重新生成即可正常显示。
问题19:【iDesktopX】在三维轨迹上运动的复现需要用到什么功能?
【解决办法】可以使用【轨迹模型】的功能,该功能用于添加第三方模型数据到指定的 KML 图层中,可通过绘制或选择一条路线,动态演示模型沿指定轨迹运动的过程。可加载到场景中的第三方数据模型的格式为:.s3m,.sgm,.3ds,.mesh,.obj,.dae,.x,.osg,.osgb,.stl,*.off。
操作步骤大致如下:
1、先将线路数据导入为三维线数据集。
2、新建或打开一个场景窗口后,将线数据加载到球面场景。然后新建一个kml文件
3、使kml图层处于编辑状态,单击KML图层右键,选择“添加”菜单中的“轨迹模型…”项,弹出“打开三维模型文件”对话框,直接选择模型文件即可。
4、在场景中添加了KML图层之后,在“图层管理器”中选中KML图层中的某一个对象,单击鼠标右键,选择“属性”项,在弹出的“KML对象属性”面板中选择“轨迹管理”。轨迹路线可以通过选择导入的三维线数据集。可以通过设置速度来调节轨迹运行的时间。
关于【轨迹模型】的详细介绍在离线帮助文档搜索【添加轨迹模型】即可。在线帮助文档链接如下:https://help.supermap.com/iDesktopX/zh/tutorial/DataProcessing/DataManagement/DataManagement.html
问题20:【iDesktop】cad数据集导出为dwg的时候,能不能设置分图层?
【解决办法】可以的。需要使用iDesktop11.1.1及以上版本,支持Layer字段(Layer字段可以是整型也可以是文本型,没有明确字段类型)分层导出。
保证Layer字段中的值是一致的,就会按照Layer字段进行分层导出。
问题21:【iDesktopX】【iDesktop】使用【相交(多图层)】求交集,结果是空值,该如何处理呢
【问题原因】数据集的坐标系不一致导致。
【解决办法】需要同一坐标系的数据集才能进行叠加分析。可通过投影转换将数据转化成同一坐标系。
问题22:【iDesktop】【iDesktopX】如何对地图进行多个范围面的裁剪?
【解决方法】
1、新建一个面数据集,绘制所需裁剪的多个范围面;
2、使用”地图-操作-地图裁剪-选中对象区域裁剪“功能,选择步骤1的多个范围面,对原地图进行裁剪操作即可
问题23:【iDesktop】【iDesktopX】配置公有云许可登录Online帐号提示“网络连接失败”?
【问题原因】账号是很久之前注册的,直接登录到Online官网会跳转到修改密码界面,修改密码后再去桌面产品配置公有云许可登录就可以链接了
问题24:【iDesktop】【iDesktopX】属性表字段名称如何添加l类似“#”的特殊字符?
【问题原因】属性表字段名称添加特殊字符;
【解决办法】属性表字段名称不能有非法字符,除数字、字母、汉字、下划线以外的所有字符,如空格、括号等。其他详细规则说明可见iDesktopX帮助文档“数据库的保留关键字列表”部分内容。
问题25:【iDesktop】【iDesktopX】在三维场景中有模型图层和矢量面图层,其中矢量面图层出现闪面情况怎么解决?
【问题原因】图层重叠发生闪烁问题;
【解决方法】在图层属性中,多边形偏移功能是解决场景中图层重叠发生闪烁问题的有效办法,平台支持对场景、三维面图层、三维切片缓存(osgb)图层及模型数据集图层设置多边形偏移。
问题26:【iDesktop】【iDesktopX】已设置可见比例尺范围的标签专题图生成PNG图片类型、全球剖分的栅格瓦片,生成结果层级错误且标签部分缺失怎么解决?
【问题原因】地图设置的固定比例尺与全球剖分比例尺有差异导致生成的栅格瓦片与原始地图有差异;
【解决方法】通过导出全球剖分比例尺,得到生成的xml比例尺文件再导入到地图固定比例尺,将地图固定比例尺和图层可见比例尺均修改为全球剖分比例尺,重新以全球剖分切图,栅格瓦片即可以原始地图的显示状态正常显示。
问题27:【iDesktop】【iDesktopX】存储在GDB中的Grid数据导入超图桌面端为一个矢量面数据和一个属性表数据?
【问题原因】Grid存储在GDB中且非*.grd/.txt格式后缀文件;
【解决方法】
(1)处理为.grd/*.txt格式后缀文件再在桌面端进行数据导入;
(2)桌面端数据迁移选项卡->数据迁移->GDB导入功能进行GDB数据导入。
问题28:【iDesktop】【iDesktopX】如何批量导出面的中心点坐标数据?
【解决方法】
(1)打开矢量数据集属性表, 单击属性表->编辑组->计算几何属性按钮;
(2)弹出计算几何属性对话框,填写参数计算中心点坐标属性,计算结果会更新到属性表中;
(3)通过类型转换功能中的属性转点,参数面板中选择计算结果中的对应位置字段即可得到中心点数据集;
(4)导出中心点数据集为相应的格式数据。
问题29:【iDesktopX】场景导入天地图,下方消息显示导入成功,但是地图上却不显示
【问题原因】天地图key错误引起
【解决方法】
(1)天地图申请key时,"应用类型"请选择“服务端”
(2)天地图申请key时,请勿设置白名单。
(3)清除 iDesktopX缓存。当验证天地图key正确可用后,请在AppData文件夹下清空iDesktopX的缓存,缓存位于:C:\Users{您的电脑用户}\AppData\Local\SuperMap\Cache\OGC。 您可在文件夹地址栏输入 %AppData% 回车,直接到达AppData文件目录。
问题30:【iObjects Java】 在编程时,对倾斜摄影裁剪应该用哪个类,应该是用scp文件中的经纬度数据输入裁剪范围,还是xyz坐标
【解决方法】
(1)iObjects Java 11.1.1 中对倾斜摄影进行裁剪使用 CacheProcessor3D.可参考以下代码:
String fromScpFile="C:\\temp\\原始倾斜摄影\\saersibao.scp"; // 用于裁剪操作的倾斜摄影数据scp文件。
String outputFolder="C:\\temp\\裁剪结果";// 裁剪后结果输出路径
String cacheName="saersibao裁剪结果";// 输出的倾斜摄影名称
// 构造裁剪面集合(必须是地理坐标系数据)。
ArrayList<Geometry> geometries1=new ArrayList<>();
Point2Ds point2Ds=new Point2Ds();
point2Ds.add(new Point2D(13.054624568986159, 47.82797336596848));
point2Ds.add(new Point2D( 13.054890057306876, 47.82954125897293));
point2Ds.add(new Point2D(13.051922776437927, 47.82987257928429));
GeoRegion geoRegion=new GeoRegion();
geoRegion.addPart(point2Ds);
geometries1.add(geoRegion);
ClippingType clippingType= ClippingType.KEEPINSIDE; //裁剪类型 KEEPINSIDE:内裁,保留内部 ; KEEPOUTSIDE:外裁,保留外部
ConstraintType constraintType=ConstraintType.SOFTCONSTRAINT; // 倾斜数据处理使用约束条件类型 HARDCONSTRAINT:硬约束,按照新数据计算; SOFTCONSTRAINT 软约束,按照原始数据计算
// 执行裁剪
CacheProcessor3D.clip(fromScpFile, geometries1,outputFolder,cacheName, clippingType, constraintType);
(2)裁剪范围 必须是地理坐标系数据.
(3)更多API 您可以查询 组件安装目录下help文件夹中的帮助文档, 若您的安装目录下没有help文件夹,那么您使用的是组件Bin包. 您可在下方链接下载绿色包(完整包,包含了示例程序和示例数据)
http://support.supermap.com.cn/DownloadCenter/DownloadPage.aspx?id=2530
问题31:【iDesktopX】对EPSG:3857的三维线数据集进行“计算几何属性”,得到的测地线周长数值不正确
【问题原因】计算地理坐标系下的测地线周长才有意义。测地线是依地球表面弧度的曲线,测地线周长为曲面的周长,当数据集为地理坐标系时,已经在椭球空间中,因此测地线周长与曲面默认SmPerimeter周长相同。当数据集为投影坐标系和平面坐标系时,是平面空间下,此时测地线周长与对象默认SmPerimeter周长相同,
【解决办法】
方法一:将数据集进行投影转换,转换为EPSG:4326后再进行“计算几何属性”的测地线周长计算。
方法二:在对EPSG:3857的数据集进行“计算几何属性”的“测地线周长”时可将参数坐标系设置为GCS_WGS 1984
问题32:【iDesktopX】生成地图瓦片后出现部分瓦片中某些图层丢失的现象
【问题原因】多任务生成地图瓦片时多线程处理数据问题。
【解决办法】需要生成地图瓦片时,将工作空间中的数据源右键”重新以只读打开“
问题33:【iDesktopX】如何获取Bentley模型的树状结构属性。
【解决办法】在Bentley插件中勾选“导出属性为Json”即可导出构件的属性
问题34:【iDesktopX】我们这边使用Bentely导出dng模型为超图数据集,默认情况直接导出之后有材质问题,但是设置成smooth之后导出就正常了。
【解决办法】总览导出的时候所有材质文件得放在根目录下面或者标段
单独导出的时候只要在Bentely里面切换显示模式(能看到模型)就行。
问题35:【iDesktopX】有一个点数据为地方投影坐标系,现在想要提取其动态投影后在CGCS2000坐标系下的geojson,请问是否能获取?
【解决办法】
1.对数据进行投影转换,选中数据集右键->属性,属性面板中坐标系选项卡下的“投影转换”功能,设置目标坐标系,例如 GCS_China_2000(EPSG:449)。
2.导出数据集为GeoJSON,选中数据集,右键->导出数据集,在弹出的对话框中“转出类型”一列选择“GeoJSON文件”,设置导出目录,进行导出,即可
问题36:【iDesktopX】镶嵌数据集有白边,设置透明度后白边透明,但影像内的白色像素也透明了。还有什么办法处理吗?
【解决办法】可以对镶嵌数据集进行 “重建范围”,须勾选“重建裁剪范围”,裁剪方式为自动计算裁剪范围,勾选“精准裁剪”
问题37:【iDesktopX】SuperMap iDesktopX中如何将影像贴在地形上?
【解决办法】使用“三维数据-数据处理-栅格影像生成三维模型”功能即可。
问题38:【iDesktopX】SuperMap iDesktopX中对倾斜摄影osgb格式数据生成配置文件后在场景加载很模糊?
【问题原因】在osgb数据文件夹中存在一个单独的***.osgb文件,在生成配置文件的时候只索引到了这个osgb文件,所以最后的结果很模糊。
【解决办法】将文件最外层的***.osgb文件移除之后重新生成配置文件即可。
问题39:【iDesktopX】SuperMap iDesktopX在场景中加载倾斜摄影图层缩小到一定距离之后倾斜图层就不显示了。
【问题原因】在“图层属性”中设置了最大可见高度。
【解决办法】将"图层属性"中最大可见高度设置成为无穷大即可。
问题40:【iDesktopX】SuperMap iDesktopX中将obj模型导入之后发现多个模型对象合并成了一个整体,如何拆分?
【解决办法】在导入obj模型的时候勾选“分解为多个模型对象”即可。
问题41:【iDesktopX】如何标记出面的每个边的边长
【解决办法】操作步骤:
1.将矢量面转为矢量线;
2.线数据加进地图激活编辑状态,框选线对象,在对象操作中选中炸碎,炸碎过后的线被拐点分成了多个线对象;
3.根据线数据的属性表,制作标签专题图,字段选中SmLength。
问题42:【iDesktopX】OSGB格式的倾斜摄影数据,metadata元数据写着坐标系ENU,那生成配置文件和倾斜入库该如何设置,使其目标投影为4490
【解决办法】
1.生成配置文件的设置:
(1)模型中心点坐标设置:
用记事本打开metadata.xml,查看插入点坐标以及数据中心点坐标,生成配置文件时,需要输入插入点坐标x、y(注意不要写反了),以及中心点坐标z。例如metadata.xml文件:
<ModelMetadata version="1">
<!--Spatial Reference System-->
<SRS>ENU:34.2196,108.9594</SRS>
<!--Origin in Spatial Reference System-->
<SRSOrigin>0,0,100</SRSOrigin>
</ModelMetadata>
参考xml文件,桌面生成配置文件时,中心点x设置为108.9594;中心点y设置为34.2196,中心点z设置为100;
(2)坐标设置:勾选ENU
2.倾斜入库时设置:
中心点坐标单位设置为度,目标坐标系设置为4490
问题43:【iDesktopX】Bentley里面模型原本是贴合的,导入成超图成udbx后,模型移动发生了偏移。
【解决办法】定义的投影坐标系,然后加载到的球面场景,当模型距离原点较远的话,以投影坐标系放置在球面场景的话会有拉伸,需要将模型投影转换至对应地理坐标系后再放置到球面场景。
问题44:【UE】如何有效利用服务器资源提升应用系统三维浏览性能,因为客户端的配置是不可控的,只能提高服务端配置
【问题原因】WebGL前端渲染受终端影响,无法发挥服务器的性能
【解决办法】如果担心客户端配置的问题,可以考虑用游戏引擎的云渲染,可以摆脱终端性能依赖,降低体验成本,只要终端显卡支持游戏引擎所需的分辨率和图形处理能力即可。
问题45:iDesktopX】桌面不显示标绘预览图片
【问题原因】标绘路径中文件夹解压错误,导致名称乱码,桌面识别不到路径,不显示标绘图片
【解决办法】重新解压桌面压缩包,使文件夹名称正确
问题46:【iDesktopX】正射数据有白边,用裁剪显示范围去除白边,换11i版本再裁剪显示范围后,发布到前端依旧显示白边
【问题原因】客户切图的地图中影像数据为栅格瓦片,瓦片只能是方块形式存储
【解决办法】使用影像数据集代替栅格图层影像再进行切图
问题47:【iDesktopX】iDesktop的bin里面拷入了dmoci,再进到桌面端就崩了,怎么配置达梦客户端
【问题原因】1.客户没有配置客户端
2.客户的达梦8/bin下面缺少对应的依赖
【解决办法】1.配置配置达梦客户端与环境变量,客户端地址链接:https://pan.baidu.com/s/1anIwH5jUiktKCUolvtZ-_w?pwd=nh5k
提取码:nh5k
2.安装达梦数据库后发现缺少依赖,添加达梦依赖,地址:链接:https://pan.baidu.com/s/1aSmNwJeBfd-ByuwIIL3iSA?pwd=qkzn
提取码:qkzn
问题48:【iDesktopX】如何查看面数据的面积和周长信息?
【解决办法】数据集的属性表中,smarea和smperimeter对应的就是面积和周长,单位是平方米和米。
问题49:【iDesktopX】3DTiles->S3M功能可以让S3M带有3DTiles的属性信息吗?
【解决办法】可以,但是前提条件需要3dtiles本身带有属性信息,分为以下两种情况:
1.如果json文件有属性信息,需要这个属性头文件,如图:贴图
2.如果json文件本身没有,但是数据本身是有属性信息的,可以手动添加数据本身的字段信息,格式参考1中属性头文件。
问题50:【WebGL】怎样修改mvt里的点标签风格?
【解决办法】关键代码如下:
case "symbol":
mvtMap.setPaintProperty(selectLayer.id, "text-color", "rgba(0,255,2,1.00)");
break;
问题51:【iDesktopX】如何另存出倾斜摄影中指定区域的数据?
【解决办法】有两种方式:1、使用倾斜摄影裁剪功能,绘制裁剪范围进行裁剪操作得到目标数据;2、将数据添加到场景中,通过【文件选择】功能,使用鼠标选择指定区域,查看并记录其所属文件夹名称,全部记录后,去电脑存放倾斜摄影原始数据位置,按照记录的文件夹名称将这些文件挑选出来
问题52:【iDesktopX】使用倾斜摄影提取高度值功能,只提取到屋顶高度是什么原因呢?
【问题原因】矢量面提取倾斜摄影高度值,只会提取矢量面范围内的倾斜摄影高度,由于矢量面范围内只有屋顶,不包含建筑四周墙壁,所以提取不到整栋建筑的高度
【解决办法】通过【缓冲区分析】功能,将矢量面进行缓冲区分析,使其结果面的范围在投影方向上与倾斜摄影建筑四周墙壁有相交即可,之后提取高度值即可获取正确数据
问题53:【iDesktopX】电脑断电导致倾斜入库中断,供电恢复后如何继续生成瓦片?
【解决办法】使用“倾斜入库续生成”功能,选择倾斜入库中断目录下的配置文件,点击运行即可
问题54:【iDesktopX】倾斜摄影做完预处理,接下来要怎么处理数据?
【问题原因】倾斜数据预处理后,会在数据目录下生成一份log文件,文件中记录了数据的错误情况
【解决办法】倾斜数据预处理后,不需要根据log文件内容处理数据,预处理会自动修复错误文件并且移除损坏文件;SuperMap iDesktopX不能损坏文件,预处理后会将损坏文件剪切到新建文件夹中,如果需要修复损坏文件,需要使用专业修模软件进行处理
问题55:【iDesktopX】在场景中设置了地形缩放比例,生成缓存后发布到iServer后比例消失
【问题原因】这是场景中设置的风格,并没有改变数据
【解决办法】前端加载时,通过代码设置地形夸张度:viewer.scene.terrainExaggeration = 2;
问题56:【WebGL】如何制作场景竖直方向上的飞线效果?
【解决办法】使用随机函数生成点位坐标和高度,再使用entity添加polyline实体,并设置尾迹线材质实现
问题57:【iObjects Java】使用Java组件对数据集进行查询,类QueryParameter的setLimit方法参数如何设置?
【解决办法】该方法第一个参数表示返回条数,第二个参数表示offset。比如queryParameter.setLimit(new int[]{30,0}),查询结果从第一条开始,返回30条记录。
问题58:【iDesktopX】目前有两份训练样本数据,能否合并为一个?
【解决办法】目前桌面没有提供训练样本合并的功能,可以重新训练,将第二次的训练数据结果直接保存到第一次的目录里面,软件会默认追加。重新训练时训练参数需要保持与第一次一致。
问题59:【iDesktopX】目标检测进行预训练模型报错:“invalid load key,‘f’”,该如何解决?
【问题原因】目标检测选择的模型算法不支持预训练。
【解决办法】修改模型的训练算法,目前目标检测仅支持Cascade R-CNN、RTMDet算法。
问题60:【iDesktopX】使用机器学习模型训练报错“Cannot find proj.db”,该如何解决
【问题原因】由于计算机还安装其他proj依赖相关软件,导致proj库冲突。
【解决办法】可以将环境变量中有关proj依赖相关的第三方变量删掉,比如QGIS、PostGIS等软件的相关环境变量。
问题61:【iMaritimeEditor】通过iMaritimeEditor绘制海图数据,显示和属性设置不一样,是什么原因?
【问题原因】没有设置海图符号化
【解决办法】在海图选项卡设置海图显示类型,海图->显示设置->显示类型,设置为标准和海图符号化
问题62:【iDesktopX】桌面打开导出的地图模板为新地图,一些图层的符号丢失了怎么办
【问题原因】原来地图中所使用的部分符号在新的工作空间的符号库中没有
【解决办法】将地图中所使用到的符号库导出,然后在导入地图模板的工作空间中导入符号库即可
问题63:【iDesktopX】arm环境下的iDesktopX支持导入导出CAD数据吗
【解决办法】从11.1.0版本开始支持导入导出*.dwg *.dxf格式的CAD数据
问题64:【iDesktopX】如何改变渐变线粗细方向?
【解决办法】在图层管理器开启编辑,选中要修改的线对象-对象编辑中使用“改变方向”进行修改。
问题65:【iDesktopX】BIM批量入库管线颜色蓝色变成红色?
【问题原因】导出的是真实颜色而不是着色颜色。
【解决办法】在RevitPlugin.xml文件中将RealColor="true"改成false。
问题66:【iDesktopX】点符号如何单个设置旋转方向?
【解决办法】添加一个字段,填充点的旋转角度,创建单值专题图,设置符号风格,勾选旋转角度,选择该字段。
问题67:【iDesktopX】如何将面内点的属性赋值给面 ?
【解决办法】可以使用【类型转换】-“点属性->面属性”,将被面包含的点的属性转给面。
问题68:【iDesktopX】标签专题图如何设置字段间以分数的形式显示?
【解决办法】SQL表达式中使用“字段表达式1 [/] 字段表达式2”来设置。
问题69:【iDesktopX】矢量面的边缘有锯齿状怎么解决?
【解决办法】地图属性勾选线性反走样,图层属性勾选反走样显示。
问题70:【iDesktopX】3ds Max插件导出模型加载到桌面端,为什么烘焙的纹理没了?
【解决办法】
1、新版本的插件支持导出两个纹理。通过在插件面板勾选“导出第二重纹理”选项,即可将烘培材质中的纹理贴图一起导出。
2、或者在制作壳材质的过程中,将烘培结果去壳。在“渲染到纹理”选项框中找到“清除外壳材质”命令,点击“保留烘焙材质”选项,渲染后得出来的模型就是一份烘焙在源上的文件,另存该文件并进行导出。具体操作步骤可参考:https://blog.csdn.net/supermapsupport/article/details/68928384
问题71:【iDesktopX】三维标签专题图的标签怎么设置贴地显示?
【解决办法】在专题图属性面板中,布告板模式选择“贴地旋转”即可
问题72:【iDesktopX】没有显卡的设备怎么倾斜入库?
【解决办法】倾斜入库重建LOD的时候需要用到显卡,无显卡设备不支持倾斜入库
问题73:【iDesktopX】怎么在场景的目标区域中构建房屋并进行通视分析?
【解决办法】
1、在工作空间管理器中右键单击“数据源”,打开包含2D/3D面数据集的数据源,将面数据集添加到场景中,并定位到该图层;
2、在“三维地理设计”选项卡下的“规则建模”组中单击“构建房屋”按钮,弹出“构建房屋”对话框,设置房屋高度、材质等参数之后,点击“应用”按钮即可完成房屋的构建;
3、在“三维分析”选项卡上的“空间分析”组中,单击“通视分析” 按钮,即可进行通视分析,具体流程可参考:https://help.supermap.com/iDesktopX/1101/zh/tutorial/SceneOperation/RealspaceSpatialAnalyst/VisibilityAnalyst3D
问题74:【iDesktop】为什么无法用独占方式打开PostGIS数据库型数据源?
【问题原因】 PostGIS数据库里的数据缺失sm开头的系统表,缺失sm系统表的情况下,10i版本只能以只读方式打开
【解决办法】
1、在iDesktop中新建PostGIS数据库型数据源,将数据导入之后可正常打开编辑;
2、换用11i版本的iDesktop,11i版本做了调整,PostGIS数据库型数据源可以不需要sm开头的表,打开能够直接编辑
问题75:【iDesktop】桌面端怎么计算七参数?
【解决办法】使用【转换模型参数计算】功能,具体可参考:https://help.supermap.com/iDesktop/zh/tutorial/DataProcessing/Projection/TransformationParaStep
问题76:【iDesktopX】iDesktopX是否支持对已经切好的栅格瓦片进行裁剪?
【解决办法】可以通过【擦除边界外瓦片】功能进行瓦片裁剪,具体功能介绍可以参考博客:https://blog.csdn.net/supermapsupport/article/details/130879400
问题77:【iDesktopX】iDesktopX打开瀚高数据库无法新建数据集,如何解决?
【问题原因】数据库以只读方式打开,所以无法新建数据集。
【解决办法】第一次连接数据库需要使用【新建数据库型数据源】打开,新建完成后即为独占打开,可以新建数据集。
问题78:【iDesktopX】iDesktopX的标签专题图如何在UDBX数据源的数值字段前添加自定义文本,例如:面积:面积字段?
【解决办法】设置标签表达式为:‘面积:’ ||SmArea即可。
问题79:【iDesktopX】如何获取到数据集名称并将其更新为属性表字段的值?
【解决办法】使用更新列功能修改,运算表达式要设置为:‘%input.sourceDataset#name%’,设置表达式见如下贴图:
问题80:【iDesktop】如果不用插件怎么把revit文件导入到idesktop中呢?
【解决办法】可以在revit中将模型导出为ifc等其他格式后,在idesktop导入到数据源中
问题81:【iDesktopX】fbx模型如何生成s3mb的数据?
【解决办法】首先将模型导入数据源,生成模型缓存即可
问题82:【iDesktopX】切地图瓦片的时候可以把地图背景设置为透明的吗?
【解决办法】切瓦片时可以在瓦片格式右侧勾选透明即可
问题83:【iDesktopX】iDesktopX的数据迁移功能,需要什么类型的许可?
【解决办法】11.1.0及之前版本需iDesktopX高级版许可,11.1.1版本及以后版本需iDesktopX标准版。
问题84:【iDesktopX】三维缓存生成DSM数据时,得出的地形高度结果和实际偏差过大
【解决办法】 相机高度最好设置为采集数据时飞机的航线高度,如果不知道高度,至少需要保证不能低于实际高程
问题85:【iDesktopX】打开PostGIS类型数据库数据源失败
【问题原因】没有PostGIS扩展
【解决办法】需要先通过create extension postgis命令创建扩展
问题86:【iDesktopX】如何局部更新倾斜摄影?
【解决办法】
1.将大的那份倾斜摄影进行正常的倾斜摄影入库
2.使用“倾斜数据更新”功能,用小的OSGB原始倾斜摄影更新大的入库后S3MB倾斜摄影
3.将更新后的数据加载在场景中,图层右键中选择“编辑历史”进行查看历史数据更新正常
问题87:【iDesktopX】如何得到航线穿过山体和模型的部分?
【解决办法】
1.将三维线数据放样或者缓冲成细线柱
2.模型布尔运算、地形布尔运算,分别求差求交得到线与模型、地形相交和不相交的两部分数据
三、SuperMap GIS基础产品三维GIS-FAQ集锦
问题1:【WebGL】分层分户示例中,引用的supermap.include.js是什么呢? 哪里可以看到介绍文档?
【解决方法】引用的库是iClient 8C二维产品中的内容,8C产品已超出生命周期, 此js库内容可以在8C的产品文档中找到相应介绍,API文档链接如下:https://iclient.supermap.io/web/libs/iclient8c/apidoc/files/SuperMap/Map-js.html。
问题2:【WebGL】tin叠加海洋的效果能保存到webgl吗?
【解决办法】可以的。tin叠加海洋目前的效果是海洋会跟着地形走,应用场景是:主要想表达河流的落差,所以是贴地形的。如果本身就是一个平面的,就不要用这个
在iDesktop生成的tin地形缓存,需要使用tin叠加海洋水体功能,指定水面的矢量面范围。
SuperMapTerrainProvider添加地形时设置requestWaterMask为true即可。
问题3:【WebGL】entity圆实体ellipse,修改了position的高度后,位置仍然没有改变
【解决办法】entity圆实体ellipse的高度需要通过height高度来调整,不能通过position中的z值调整。
问题4:【iDesktopX】b3md的数据桌面能加载吗?
【解决办法】b3md是3dtiles格式的数据,需要转成s3m才能在桌面查看,使用3dtiles转s3m工具即可。
或者iserver能直接发布3dtiles缓存,也可以直接在前端发布调用
问题5:【Cesium】如何将三维点数据在iClient3D for Cesium上显示建筑物标签
【解决办法】
1.在iDesktopX中新建场景,添加三维点图层,创建标签专题图,配置好标签样式
2. 保存配置好的场景,选中场景右键“生成场景缓存”。
3. 生成的缓存结果文件夹中有工作空间,将其发布到iServer,勾选REST-三维服务。
4. 使用iClient3D for Cesium 加载发布好的三维服务场景,设置标签图层为关闭避让s3mTileLayer.isOverlapDisplayed=true;
问题6:【webgl】SuperMap iClient3D for Cesium如何加载rest子图层?
【解决办法】
viewer.imageryLayers.addImageryProvider(new Cesium.SuperMapImageryProvider({
url : url,//rest服务地址
layersID:[0:0]//rest子图层id
}));
问题7:【webgl】SuperMap iClient3D for Cesium如何开启相机在室内的碰撞检测?
【解决办法】代码中设置viewer.scene.screenSpaceCameraController.enableIndoorColliDetection = true
问题8:【webgl】SuperMap iClient3D for Cesium如何设置动态水面颜色?
【解决办法】
//查找水面图层
var waterLayer =scene.layers.find('水面@vector');
//设置水面颜色为蓝色
waterLayer.waterColor = Cesium.Color.BLUE;
问题9:【webgl】SuperMap iClient3D for Cesium如何替换球面默认影像?
【解决办法】使用同名文件Build/Cesium/Assets/Textures/目录下的GlobalBkLayer.jpg,注意:图片尺寸要为2048*1024
问题10:【WebGL】for WebGL加载桌面制作的标签专题图缩放部分标签不显示了
【问题原因】前端加载标签专题图的时候默认开启了标签避让,重叠的标签只会显示一个
【解决办法】代码中关闭标签避让即可
iconlayer.isOverlapDisplayed = true;//关闭避让
问题11:【WebGL】for WebGL如何设置选中图元对象不变色
【解决办法】设置 layer.selectedColor = new Cesium.Color(1, 1, 1,1)
问题12:【WebGL】for WebGL不想要选中实现的绿色边框怎么办
【解决办法】初始化viewer的时候设置 selectionIndicator: false
问题13:【WebGL】for WebGL中如何设置标绘随图缩放
【解决办法】设置代码如下: plottingLayer._geoGraphicObjects[0].sizeInMeters = true
问题14:【webgl】设置三维线缓存特效线样式,线宽度和颜色无效
【问题原因】三维线需要加载到场景中开启特效再切场景缓存,发布工作空间,scene.open来加载,比如示例代码:
var promise = scene.open('http://localhost:8090/iserver/services/3D-YouYanSeDeTeXiaoXian/rest/realspace');
Cesium.when(promise, function(layers) {
var layer = scene.layers.find('MGX_TX@NewDatasource');
var s3mpolylineEffect = layer.effect;
var EffectSetting = s3mpolylineEffect.getEffectSetting();
s3mpolylineEffect.setValue('PolylineType', 1);//间断线效果
s3mpolylineEffect.setValue('Width', 15);//线宽
s3mpolylineEffect.setValue('Color', Cesium.Color.AQUAMARINE);
})
问题15:【WebGL】用primitive添加的视频在Google浏览器可以自动播放,但是在Microsoft Edge浏览器上不自动播放,请问是什么原因?该怎么设置?
【问题原因】谷歌浏览器默认自动播放网站上的音频和视频,而Microsoft Edge浏览器默认不自动播放,需要设置。
【解决办法】在浏览器的【设置】页面,有个Cookie和网站权限,将【控制是否自动播放网站上的音频和视频】的设置改为【允许】,如图所示:贴图
问题16:【Cesium】怎样代码设置使MVT的默认立起来的标签平躺贴地?
【解决办法】代码如下:
mvtMap = scene.addVectorTilesMap({
url: url,
canvasWidth: 512,
name: 'testMVT',
viewer: viewer,
billboardMode:Cesium.BillboardMode.FixedXYZ
});
问题17:【Cesium】场景中添加全球剖分层级格网代码怎样写?
【解决办法】
var tile_lay = new Cesium.TileCoordinatesImageryProvider({});
imageryLayers.addImageryProvider(tile_lay);
问题18:【Cesium】将35305版本的Cesium替换为39040版本的Cesium后,场景中加载的动态地图服务缩放时会有很多杂乱闪的那种效果,视觉体验不好以及场景中的动态地图调用的级别感觉小了一级,请问是什么原因?
【问题原因】在以前版本我们没支持自定义比例尺,默认是要我们规定的比例尺加载。现在我们支持了以自定义比例尺加载的地图数据。但是客户这个数据的自定义比例尺不符合规范,上下级比例尺不是二倍关系。
【解决办法】有两个:
一是用我们规定的比例尺;
二是传入符合二倍关系的标准的自定义比例尺。
问题19:【WebGL】通过scene.open打开的地形怎样通过viewer.terrainProvider.visible = false;来控制显隐?
【解决办法】需要在open的时候设置参数{invisibility:true};
代码如下:
viewer.scene.open("http://www.supermapol.com/realspace/services/3D-dixingyingxiang/rest/realspace",undefined,{invisibility:true});
问题20:【Cesium】删除绿色球皮是怎么处理?通过接口可以控制么?
【解决办法】
viewer.imageryLayers.remove(viewer.imageryLayers._layers[0]); //去除基础球皮
viewer.scene.globe.baseColor = Cesium.Color.RED; //设置地球基础颜色
问题21:【WebGL】我们加载超图资源的时候,有一堆请求license.json的请求,如贴图,这些是干啥用的?能屏蔽吗?
【解决办法】这个是许可验证,针对的是iServer。每次加载数据的时候就会发这个请求,您的服务加载的越多,这个许可验证请求也就越多,必不可少。
问题22:【WebGL】前端车流修改颜色代码怎么设置?
【解决办法】可以设置DynamicObjectState.color属性
问题23:【WebGL】加载岛洞多边形,如何区分岛和洞?
【问题原因】前端获取岛洞多边形对象,会得到多个数组坐标
【解决办法】获取岛洞多边形有两种方式,一种是通过iServer数据服务查询,返回结果中会有标识,其中1表示岛,-1表示洞;第二种是通过GeoJson文件方式添加,该方式获取的坐标数组中,第一个数组表示岛,后续的数组都表示洞
问题24:【Unity】如何通过代码实现相机定位到指定坐标?
【解决办法】通过scene.Fly()方法飞行定位到指定相机姿态,示例代码:
CameraState state = new CameraState(114, 39, 4000, 0, 0, 0);
SupermapGIS.Instance.Realspace.SceneControl.Scene.Fly(state, 4000);
问题25:【Unity】如何通过代码添加各种图层?
【解决办法】s3m图层、影像图层、在线服务可通过Scene.Layers.Add进行添加;地形图层通过Scene.TerrainLayers.Add进行添加,详细代码如下截图:
问题26:【WebGL】加载倾斜摄影,数据一移除屏幕再移动回来,数据会重新加载,如何避免?
【问题原因】会自动释放掉屏幕外的数据,这是一种渲染机制,防止浏览器加载数据量过大导致崩溃
【解决办法】1、建议保留缓存根节点layer.indexedDBSetting.isGeoTilesRootNodeSave = true;
2、如果机器性能非常好,可以设置缓存大小,并开启图层不释放内存:
SuperMap3D.MemoryManager.setCacheSize(512);
SuperMap3D.when.all ([promise],function (layers){
layers[0].forEach ((layer)=>{
layer.clearMemoryImmediately = false
})
问题27:【WebGL】iClinet3D for WebGL如何设置水面的颜色呢?
【解决办法】直接修改水面S3M图层的waterParameter属性的颜色即可,参考如下代码进行修改:
waterLayer.waterParameter.color = new SuperMap3D.Color(0 / 255, 85 / 255, 238 / 255, 1.0)
问题28:【iDesktopX】请问没有显卡的服务器倾斜入库失败是因为什么呢?
【问题原因】设备没有显卡导致的,倾斜摄影入库对显卡硬件的支持情况:
1.上方三维数据页卡中的倾斜摄影入库,必须要有显卡的设备
2.自动化工具箱中倾斜摄影入库,必须要有显卡的设备
3.Java组件的OSGBCacheBuilder倾斜摄影入库,必须要有显卡的设备
【解决办法】使用带有显卡的电脑进行倾斜入库即可
问题29:【iDesktopX】模型数据集怎样导出为模型数据
【解决办法】将模型数据集加载到场景然后选中需要导出的模型,右键菜单点击导出模型,然后选择需要导出的模型数据格式后即可导出为模型数据
问题30:【WebGL】iClient3D for Cesium如何加载带有安全认证的三维服务
【解决办法】可以参考官网示例http://support.supermap.com.cn:8090/webgl/Cesium/examples/webgl/editor.html#tokenCredential
进行安全认证代码参考如下:
Cesium.Credential.CREDENTIAL = new Cesium.Credential(“iServer生成的token”);
问题31:【iDesktopX】带有模型文件的KML数据如何导入为模型数据集并生成三维缓存
【解决办法】先数据源右键-导入数据,选择kml文件导入,导入之后为三维点数据,然后用点外挂的方式导入模型文件夹,关联字段在三维点数据集导入的时候就在属性表中,这样就可以kml数据导入为了模型数据集,然后右键模型数据集生成缓存即可生成三维缓存
问题32:【iDesktopX】max模型使用插件导出为udb后,在iDesktopX打开发现模型材质纹理丢失了
【问题原因】max模型使用了v-ray插件制作的烘培纹理
【解决办法】需要3ds Max 本身安装有 V Ray 渲染器,然后勾选导出第二重纹理,即可导出材质中的漫反射颜色及贴图,自发光颜色及贴图
问题33:【iDesktopoX】三维切片缓存scp文件里面的dataType有哪些类型?
【解决办法】scp配置文件的地理空间数据的类型取值范围:{‘ArtificialModel’,‘RealityMesh’, ‘PointCloud’,‘BIM’,‘Vector’,‘Network’,‘InstanceModel’}
分别对应:人工模型,倾斜摄影三维模型,点云,BIM,矢量数据,网络数据和外挂模型
问题34:【WebGL】如何成倍放大地形?
【解决办法】设置globe的terrainExaggeration即可,比如2倍,代码如下:scene.globe.terrainExaggeration = 2
问题35:【WebGL】如何将影像图层贴在倾斜图层上?
【解决办法】设置倾斜图层S3mtileLayer的coverImage为影像图层即可
问题36:【iPortal】如何修改iPortal默认的session会话时长?
【解决办法】修改iPortal解压目录的conf下面的web.xml里面的session-timeout即可
问题37:【WebGL】SuperMap iClient3D for Webgl 如何使当前的动画停止?
【解决方法】
let viewModel = viewer.animation.viewModel;
viewModel.pauseViewModel.command()
问题38:【WebGL】同时开启场景透明度(Alpha:true)以及环境光遮罩(ambientOcclusion)后,整个场景变白应该如何处理?
【问题原因】
环境光遮罩会受到dom元素的背景颜色影响,默认dom元素的背景颜色为白色,且不透明。所以会导致场景变白。
【解决方法】
解决方法有如下两种。
1.关闭场景颜色的Alpha通道。
2.修改Cesium场景所在的dom元素的css背景颜色样式即可。
#cesiumContainer{
background-color: rgba(37, 84, 185, 1.0);
}
问题39:【WebGL】矢量瓦片中标签与图标不能同时显示应该如何处理?
【解决方法】
开启矢量瓦片标签避让后可以解决该问题。设置方法如下
mvtMap.isOverlapDisplayed = true;
问题40:【WebGL】如何将矢量瓦片的文字/图标深度检测功能开启?
【解决方法】
矢量瓦片文字/图标默认加载方式为关闭深度检测的,如需开启需要在加载时设置参数labelDepthTestEnabled。设置方法如下
var mvtMap = scene.addVectorTilesMap({
url: url,
canvasWidth: 512,
name: 'testMVT',
viewer: viewer
labelDepthTestEnabled:true,
});
问题41:【WebGL】倾斜摄影模型亮度在iClient3D for Webgl 中效果没有iDesktop中亮应该如何处理?
【问题原因】
网页端没有保留客户端中场景图层的亮度,对比度色调的参数。前端需要再重新调整。
【解决方法】
参考示例重新配置图层亮度即可。(http://support.supermap.com.cn:8090/webgl/Cesium/examples/webgl/editor.html#S3MTiles_suofeiya)
问题42:【WebGL】iClient3D for Webgl 中场景加载Geojson数据如何设置为贴对象?
【解决方法】
通过GeoJsonDataSource.load方式加载数据后,如果需要设置为贴对象需要设置以下两个参数
line.polyline.classificationType = SuperMap3D.ClassificationType.S3M_TILE
line.polyline.clampToGround=true
问题43:【WebGL】在iClient3D for Webgl 中如何清除鼠标绑定事件?
【解决方法】
在iClient3D for Webgl 中如果绑定了鼠标事件,并希望清除所有绑定的鼠标事件,可以通过
var handler =new SuperMap3D.ScreenSpaceEventHandler(scene.canvas);
handler.removeAll();
进行清除。
如果希望清除指定类型的鼠标事件,可以使用以下方法
handler.removeInputAction(SuperMap3D.ScreenSpaceEventType.LEFT_CLICK);
问题44:【WebGL】iClient3D for Webgl 中场景加载Geojson数据如何设置可见距离?
【解决方法】
通过GeoJsonDataSource.load
方式加载数据后,如果需要为对象设置可见距离需要在加载后设置distanceDisplayCondition
即可实现
line.polyline.distanceDisplayCondition = new SuperMap3D.DistanceDisplayCondition(0,11150000)
问题45:【WebGL】在iClient3D for Webgl 中GLTF的方向与Blender中模型的方向是如何对应的?
【解决方法】
在Blender中X轴的负方向与iClient3D for Webgl 中正南方向是一致的,如果模型需要调整到正北方向则可在Blender中旋转模型至X轴正方向再导出GLTF文件。
问题46:【WebGL】在iClient3D for Webgl 中如何加载KML数据?
【解决方法】在iClient3D for Webgl 中可以使用KmlDataSource方法读取KML数据进行加载,实现代码参考下方代码
viewer.dataSources.add(SuperMap3D.KmlDataSource.load('./demo.kml',{
camera : viewer.scene.camera,
canvas : viewer.scene.canvas,
clampToGround: true
})).then(function(dataSource){});
问题47:【WebGL】iClient for Cesium选中实体的绿色框能够修改吗?
【解决办法】该框是通过css样式写的,可以在cesium/widgets/selectionindicator/selectionindicator.css中修改
问题48:【WebGL】iClient for Cesium如何默认定位到s3m图层?
【解决办法】1、在cesium.when场景异步加载中获取到s3m图层,可以通过layer=viewer.scene.layers.find(“图层名称”),然后使用viewer.flyTo(layer)定位
2、使用viewer.scene.camera.setView直接输入视角参数定位
问题49:【WebGL】iClient for Cesium粒子效果制作烟雾怎么改颜色调哪个参数?
【解决办法】调整startColor和endColor的值,当一个粒子被发射时,它的颜色将从startColor逐渐变为endColor
问题50:【WebGL】多个服务器发布的带有token的服务一起加载,为什么只能加载出最后一个服务器的服务?
【问题原因】token安全认证被覆盖了
【解决办法】参考文章实现加载多token服务https://blog.csdn.net/supermapsupport/article/details/121210572
问题51:【WebGL】WebGL添加模型里面的参数availibity是干什么用的?
【解决办法】availability属性来指定模型在哪些时间段内是可见的,这个属性允许您指定一个时间间隔,表示该实体在该时间段内是可用的
问题52:【WebGL】iClient for Cesium滚轮事件怎么监听?
【解决办法】监听滚轮事件的代码如下:
var handler = new Cesium.ScreenSpaceEventHandler(scene.canvas);
// 监听鼠标滚轮事件
handler.setInputAction(function (wheelEvent) {
// 获取鼠标滚轮的 deltaY 属性,表示滚轮滚动的方向和速度
var deltaY = wheelEvent.deltaY;
// 调整摄像机的高度,根据滚轮滚动的方向和速度进行缩放
var zoomAmount = deltaY > 0 ? -100000.0 : 100000.0; // 设置缩放的步长
scene.camera.zoomIn(zoomAmount);
}, Cesium.ScreenSpaceEventType.WHEEL);
问题53:【WebGL】怎么获取当前点选元素的信息
【解决办法】通过以下代码实现:
viewer.screenSpaceEventHandler.setInputAction(function onLeftClick(movement) {
var pickedObject = viewer.scene.pick(movement.position);
if (Cesium.defined(pickedObject)) {
var id = pickedObject.id;
console.log(pickedObject)
console.log(id)
// 这里可以访问选中元素的属性并进行相应操作
}
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
问题54:【WebGL】鼠标点击事件获取的坐标系不是笛卡尔坐标怎么办?
【解决办法】在鼠标点击事件注册时,绑定转换获取笛卡尔坐标:
var handler = new SuperMap3D.ScreenSpaceEventHandler(scene.canvas);
handler.setInputAction(function (e) {
scene.pickPositionAsync(e.position).then((position) => {
console.log(position);
})
}, SuperMap3D.ScreenSpaceEventType.LEFT_CLICK);
问题55:【WebGL】如何去掉鼠标选中模型时的高亮效果?
【解决办法】
方案一:设置该图层不可选中S3MTilesLayer.selectEnabled
方案二:把选中高亮的颜色模式S3MTilesLayer.SelectColorType设为混合模式,原颜色和高亮颜色混合,再将高亮颜色S3MTilesLayer.selectedColor设成影响较小的颜色。
问题56:【WebGL】在老版本谷歌浏览器中访问直接黑屏或白屏,无法看到地球和数据是为什么?
【解决办法】iClient3D for Cesium作为三维产品,本身对浏览器内核是有最低配置需求的,建议升级浏览器Chrome内核最低90版本及以上。
http://support.supermap.com.cn:8090/webgl/Cesium/web/introduction/intro_3DWebgl.html#license
四、SuperMap GIS基础产品组件GIS-FAQ集锦
问题1:【iObjects Java】【11.1.1】 请问 iObjects Java 组件提供的 Map.pixelToMap 接口,传不同的参数返回的结果都相同是什么原因呢?
【问题原因】 Map 对象是通过 new 的方式构建的,没有基于 MapControl 获取,所以接口使用时会存在异常。
【解决办法】 从 MapControl 对象中获取 Map 对象,再调用 pixelToMap 接口可返回正确的结果。
问题2:【iObjects Java】【11.1.1】 请问 iObjects Java 组件如何修改工作空间中保存的地图名称?
【解决办法】 iObjects Java 组件的 Maps 类提供了 rename 接口可以修改地图名称。
问题3:【iObject Java】面数据集中,如何根据属性值去除其中指定的一个面?
【解决方法】类 DatasetVector中使用query通过设置查询条件对矢量数据集进行查询,该方法默认查询空间信息与属性信息。 查询到指定记录集后,类 Recordset中使用delete() 方法删除数据集中的当前记录,成功则返回 true。
问题4:【iObject .NET】布局中设置指北针的旋转角度后没有效果,怎么处理?
【问题原因】指北针的方向和地图的方向一致,地图的旋转角度变了后,指北针的旋转角度才会修改。
【解决办法】需要通过修改 geoMap.MapAngle地图角度,指北针的角度就会自动旋转。
注意:在初始化第一次加geoMap的时候elements.AddNew(geoMap),geoMap的MapAngle角度为0.
如要旋转的话,需要初始化完成后,使用elements.SeekID(m_mapID)把当前布局元素指针,定位于该布局元素,然后使用elements.SetGeometry(geoMap1)方法进行替换
示例代码如下:
elements.AddNew(geoMap);
GeoMap geoMap1 = elements.GetGeometry() as GeoMap;
geoMap1.MapAngle = 180;
m_mapID = elements.GetID();
elements.SeekID(m_mapID);//当前布局元素指针,定位于该布局元素
elements.SetGeometry(geoMap1);//更新地图对象
elements.Refresh();
问题5:【iObjects .NET】图层管理器中怎么新增图层组?
【解决办法】
Layers layers = mapControl.Map.Layers;
LayerGroup layergroup = new LayerGroup("newlayersgroup");
layers.Add(layergroup);
问题6:【iObjects .NET】3dmax2020安装插件,使用安装版提示目录名语法不正确怎么解决?
【问题原因】Autodesk 3ds Max 2020的系统环境变量包含多个变量值导致无法识别正确路径;
【解决方法】本机设置-系统属性-环境变量中的ADSK_3DSMAX_x64_2020变量删除冗余变量值,只保留一个本地Autodesk 3ds Max 2020软件正确路径。
问题7:【iObjects Java】SuperMap iObjects Java遍历recordset获取GeoModel3D崩溃。
【问题原因】GeoModel3D在底层每次都是new 出来的,而且在使用时并没有及时去释放,所以会有内存泄漏问题。
【解决办法】每次循环结束时调用GeoModel3D.dispose()方法释放GeoModel3D即可。
问题8:【iObjects Java】SuperMap iObjects Java在使用Recordset 对象何时需要释放?
【解决办法】函数里局部使用的 Recordset 对象,在不用的时候一定要调用一下其 dispose 方法。
问题9:【UE】打包过后场景中的影像不显示
【问题原因】UE插件包未设置环境变量原因导致
【解决办法】将打包文件里面的Win64设置环境变量置顶。
设置环境变量的方法:电脑-属性-高级系统设置-环境变量-Path,将插件\Source\ThirdParty\SuperMapLibrary\Win64 所在的路径,设置为环境变量的首位。
问题10:【UE】将UE对象移动到指定经纬度、高度的位置。
【解决办法】
1.在使用前需在控件面板,打开编辑模式,之后设置地理原点,保证后续放置的对象朝向正确;
2.使用 Georeference 组件,可以将 UE 对象移动到指定经纬度、高度的位置。具体参考帮助文档6.1章节。
注:UE还没有支持地下场景,需要把高程设置为0或者正数。
问题11:【UE】使用unreal插件,在游戏引擎中对模型做美化,替换材质保存时报错导出材质后,文件夹中只有json文件,没有材质图片
【问题原因】UE插件包未设置环境变量原因导致
【解决办法】将UE插件包设置环境变量后可以正常导出纹理。
设置环境变量的方法:电脑-属性-高级系统设置-环境变量-Path,将插件\Source\ThirdParty\SuperMapLibrary\Win64 所在的路径,设置为环境变量的首位。
问题12:【UE】UE云渲染怎么配置多实例
【解决办法】设置多用户对应多像素流程序,就需要启动多组UE像素流程序和对应的信令服务器,设置不同的端口号,需要用到Pixel Streaming的Matchmaker来自动分配端口。
问题13:【UE】进行UE云渲染,一台电脑支持几个实例呢?
【解决办法】目前市场上民用的N卡的像素流程序只能开启3个,到第4个的时候就会报错,由于像素流需要借助显卡的硬件H264编码,家用游戏显卡同时能编码H264的路数是有限的,民用级别的最大上限是3路,而商用级别的可以无限开启,3路上限并不是硬件限制而是在驱动中进行的限制,如需解决该限制参考博客:https://blog.csdn.net/TracelessLe/article/details/113755792。
问题14:【iObjects Java】object去获取数据源的时候,中文名称的数据源或者是udb的存放路径中中文的时候,数据源会打开失败,请问这个该怎么解决
【问题原因】客户使用的字符集是zh_CN_utf8而不是zh_CN_utf-8,zh_CN_utf-8是标准中文字符集
问题15:【iObjects Java】使用CoordSysTransform.execute方法转换后返回true,结果未改变
【问题原因】客户原数据是cad数据,导入后原始坐标系为平面无投影坐标系
【解决办法】重设数据集坐标系后再进行投影转换
问题16:【iDesktopX】使用机器学习二元分类预测结果加载到地图显示为黑色,是什么原因?
【解决办法】二元分类的结果栅格数据集只有两个像元值0和1,可以将数据集添加到地图窗口,然后对数据做一个单值专题图,然后将影像添加进来做对比。
问题17:【iObject Java】用Java组件生成新地图,将新地图输出为图片失败
【解决办法】将图层添加到地图中后,可以通过设置图层全幅显示来修改map的显示范围,代码如下:
Map map = new Map(workspace);
Layer layer = map.getLayers().add(dataset, layerSettingVector, true);
map.refresh();
map.ensureVisible(layer);
map.setLineAntialias(true);
workspace.getMaps().remove("name");
workspace.getMaps().add("name", map.toXML());
workspace.save();
map.outputMapToFile(filePath, ImageType.PNG, 96, dataset.getBounds(), true);
问题18:【iObjects Java】【11.1.1】我有一份DEM高程数据和一份点数据集,请问可以通过组件批量获取点数据集对应的高程数据吗
【解决办法】 可以通过插值分析获取,使用 Interpolator.interpolate方法,详情参考:http://support.supermap.com.cn/DataWarehouse/WebDocHelp/iObjectsJava/index.html。
问题19:【iObjects Java】组件启动时报错NoclassDefFoundError: javax/xml/bind/DatatypeConverter
【问题原因】jdk1.8以后的jdk版本,弃用了jaxb-api-2.3.1.jar
【解决办法】修改环境变量,使用jdk1.8版本启动组件或者下载jaxb-api-2.3.1.jar并添加至环境变量
问题20:【iObject .NET】如何获取用户在MapControl中使用SelectRegion绘制的多边形坐标?
【解决办法】MapControl方法的GeometryAdded的事件是添加空间对象后触发,
注册该事件,在该事件的几何对象编辑事件参数类对象GeometryEventArgs e获取
问题21:【iObject JAVA】如何查询Geometry与数据集是否有重叠,并且返回重叠面积?
【解决办法】使用叠加分析OverlayAnalyst下的相交算子intersect,即可得到相交部分,结果是否有几何对象可判定是否重合,取结果面对象GeoRegion的area面积之和,即可得到重叠面积。
五、SuperMap GIS基础产品WebGIS-FAQ集锦
问题1:【WebGL】加载wmts时,控制台无报错,但是网络请求304 Not Modified是为什么?
【问题原因】参数填写不完整;
【解决方法】参考以下代码进行设置:
let aa = viewer.imageryLayers.addImageryProvider(new SuperMap3D.WebMapTileServiceImageryProvider({
url: 'http://localhost:8090/iserver/services/imageservice-test/wmts100',
layer: 'test',
format: "image/png",
style: 'default',
tileMatrixSetID: "Custom_test",
rectangle: SuperMap3D.Rectangle.fromDegrees(117.2362946671,3.0564468145,117.245993518,3.0701983988),
tilingScheme: new SuperMap3D.GeographicTilingScheme({
ellipsoid: SuperMap3D.Ellipsoid.WGS84,
numberOfLevelZeroTilesX: 1,
numberOfLevelZeroTilesY: 1,
scaleDenominators: [5.590822640287176E8,2.795411320143588E8,1.397705660071794E8,6.98852830035897E7,3.494264150179485E7,1.7471320750897426E7,8735660.375448713,4367830.187724357,2183915.0938621783,1091957.5469310891,545978.7734655446,272989.3867327723,136494.69336638614,68247.34668319307,34123.673341596535,17061.836670798268,8530.918335399134,4265.459167699567,2132.7295838497835,1066.3647919248917,533.1823959624459,266.59119798122293,133.29559899061147,66.64779949530573],
customDPI:new SuperMap3D.Cartesian2(90.7142857142857,90.7142857142857)
}),
}));
问题2:【iClient】前端使用iclient for classic进行叠加分析,报错: operateDatasetFields undefined
【解决办法】a,DatasetOverlayAnalystParameters没有创建成功,查看文档相关参数设置,检查代码
b,其中与 operateDataset 和operateRegions参数互斥
c,参数参考如下:
parmsGeo = new SuperMap.REST.DatasetOverlayAnalystParameters({
sourceDataset: '省@SiChuan',
sourceDatasetFields: ["SmUserID", "NAME"],
sourceDatasetFilter: new SuperMap.REST.FilterParameter({ attributeFilter: 'SmUserID > 0' }),
operateDataset: '水域@SiChuan',
operateDatasetFields: ["SmUserID", "GB", "HYDC", "NAME"],
operateDatasetFilter: new SuperMap.REST.FilterParameter({ attributeFilter: 'SmUserID > 0' }),
operation: 'INTERSECT',
tolerance: 0,
resultSetting: new SuperMap.REST.DataReturnOption({dataset: 'overlayresult', deleteExistResultDataset: true })
})
问题3:【iClient】前端如何实现对WFS服务进行数据查询
【解决办法】a,wfs100:http://xxx:8090/iserver/services/data-CHEN/wfs100/utf-8?service=WFS&version=1.0.0&request=Getfeature&typename=CHEN:NewDataset&outputformat=json
b,wfs200:http://xxx:8090/iserver/services/data-CHEN/wfs200/utf-8?service=WFS&version=2.0.0&request=Getfeature&typenames=CHEN:NewDataset&outputformat=json
c,wfs200需要使用typenames
问题4:【iClient for Javascript MapboxGL】矢量地图查询不给出对象系统字段的值
【解决方法】使用mapboxgl. queryRenderedFeatures方法实例如下
mapboxgl.map.on('click', (e) =>{
features =map.queryRenderedFeatures([e.lngLat.lat,e.lngLat.lng]);
console.log(e.lngLat.lat,'----------',e.lngLat.lng);
console.log(features);
})
问题5:【iClient 】使用ol地物编辑功能,接口调用报错400
【问题原因】传参的feature对象异常
【解决办法】可以通过features: (new ol.format.GeoJSON()).readFeatures(serviceResult.result.features),将查询结果转成features对象
问题6:【iClient】Vue+vite中引入mapbox的enhance插件后,一些方法报错找不到
【问题原因】报错的方法是enhance插件中的,引入是引入的原生mapbox
【解决办法】在vite.config.js中配置:
viteExternalsPlugin({
'mapbox-gl': 'mapboxgl'
})
问题7:【iClient】几何查询查询到几何范围外的数据?
【问题原因】数据集容限设置较大。
【解决办法】桌面打开数据,右键数据集-属性,在矢量-数据集容限设置为默认。
问题8:【iClient】iClient for Leaflet加载WMTS服务会有偏移?
【问题原因】没有正确设置CRS。
var map = L.map('map', {
center: [0, 0],
maxZoom: 18,
zoom: 0,
crs: L.CRS.EPSG4326
});
【**解决办法**】设置CRS示例代码如下:
var resolutions = [1.4062500000020313, 0.7041106029170705, 0.35205530145853525,
0.17602765074115156, 0.08801382537057578, 0.04400691267340393,
0.02200345634858593, 0.011001728174292964, 0.005500864087146482, 0.0027504320316892785];
var map = L.map('map', {
preferCanvas: true,
crs: new L.supermap.Proj.CRS("EPSG:4326",
{
origin: [-180, 90],
resolutions: resolutions,
bounds: L.bounds([-180.0 - 90.0], [180.0, 90.0])
}),
center: [20, 100],
maxZoom: 18,
zoom: 3
});
问题9:【iClient】iClient for Leaflet中marker图标如何设置旋转方向?
【解决办法】需要引用外部包:leaflet-rotatedmarker,
示例代码如下:
L.marker([48.8631169, 2.3708919], {
rotationAngle: 45
}).addTo(map);
问题10:【iClient】iClient for MapboxGL加载UGCV5瓦片发布的地图服务空白,如何解决?
【问题原因】客户瓦片数据坐标系为4326,使用zxyTileImage资源出图。因为zxyTileImage资源为3857坐标系出图,瓦片发布的地图服务不支持动态投影,所以zxyTileImage资源加载白图。
【解决办法】更换tileImage资源进行出图即可,具体可以参考博客:https://blog.csdn.net/supermapsupport/article/details/135290657
问题11:【iClient】UGCV5(MVT)瓦片发布的地图服务如何在iClient for MapboxGL加载?
【解决办法】使用tileFeature资源进行出图即可,具体可以参考博客:https://blog.csdn.net/supermapsupport/article/details/135290657
问题12:【iClient】iClient for MapboxGL如何加载没有EPSG的地方坐标系地图服务呢?
【解决办法】在地图服务的prjCoordSys资源获取wkt坐标系信息,获取位置如图:贴图
获取完成后通过wkt在MapboxGL加载,需要引入mapbox-gl-enhance:
示例代码如下:
var WKT = 'PROJCS["CGCS2000_3_Degree_GK_CM_116E",GEOGCS["GCS_China_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101,AUTHORITY["EPSG","7044"]]],PRIMEM["Greenwich",0.0,AUTHORITY["EPSG","8901"]],UNIT["DEGREE",0.017453292519943295],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator",AUTHORITY["EPSG","9807"]],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",116.0],PARAMETER["Latitude_Of_Origin",0.0],PARAMETER["Scale_Factor",1.0],UNIT["METER",1.0],AUTHORITY["EPSG","4490"]]'
var map = new mapboxgl.Map({
container: 'map',
style: 'http://localhost:8090/iserver/services/map-mvt-City1/rest/maps/City1/tileFeature/vectorstyles.json?type=MapBox_GL&styleonly=true&tileURLTemplate=ZXY',
// mapboxgl.CRS(name,wkt,extent);
// name:坐标系名称,必填
// wkt:坐标系的WKT或者Proj4表述,必填。
// extent: 当前坐标系范围,[左,下,右,上]
crs: new mapboxgl.CRS('2000地方', WKT, [-3258341.95 , 700013.44, 1909139.08 , 5962850.53]),
center: [104.29411212318577,29.941653923532186],
zoom: 3,
renderWorldCopies: false,
});
map.addControl(new mapboxgl.NavigationControl());
问题13:【iClient】iDesktopX中为标签设置了流动显示,在Leaflet中加载地图服务没有流动显示效果
【解决办法】可以使用代码在前端制作基于工作空间中的数据的标签专题图,设置专题图属性,设置标签的流动显示。在iServer端通过tileImage出图不支持流动显示,可以考虑使用ImageMapLayer出图,会保留部分流动显示效果,查看API文档:https://iclient.supermap.io/docs/leaflet/ImageMapLayer.html
问题14:【iClient】MapboxGL如何实现只加载指定的图层,还有可以控制某个图层的显示和隐藏。
【解决办法】可以通过修改矢量瓦片的vectorstyles,实现图层的显隐。例如示例服务,从“https://iserver.supermap.io/iserver/services/map-mvt-China/rest/maps/China/tileFeature/vectorstyles?type=MapBox_GL”获取到矢量风格,找到需要隐藏的图层,修改参数"visibility":“visible”,再使style加载修改过后的vectorstyles
问题15:【iPortal】iPortal"三维地理设计WebApp"模块是否需要iServer端也配置"三维地理设计服务扩展模块"?
【解决办法】使用三维地理设计之前,您除了拥有 SuperMap iPortal 用户数许可之外,还需拥有 SuperMap iPortal 三维地理设计扩展模块许可,无需SuperMap iServer三维地理设计服务扩展模块 。
问题16:【iServer】低版本iServer(10.2.0以下),如何更换不同类型的许可?
【解决办法】更换不同许可类型时,需要将 iserver-system.xml(位于【SuperMap iServer 安装目录】\webapps\iserver\WEB-INF目录中)文件中的…节点和…节点中的内容删掉,然后重启 iServer,再次配置许可即可生效。
问题17:【iServer】已有iServer专业版许可,许可模块中显示处理自动化可用,但GPA自定义的模型执行失败是什么原因呢?
【问题原因】GPA中栅格分析等功能,需要iServer许可+分析等扩展模块许可。
【解决办法】根据GPA模型中使用的算子,选择扩展模块许可
问题18:【iClient】官网示例的点密度专题图中,设置了markerSymbolID没有显示预期标注
【问题原因】每个工作空间的符号库是独立的,官网示例的符号库和本地桌面的符号库不一致
【解决办法】通过iServer发布并使用本地桌面工作空间制作的地图服务
六、SuperMap GIS基础产品其他-FAQ集锦
问题1:【UE】使用UE5.3.2导入UE插件报错?
【问题原因】官网提供的11.1.1的版本还未支持UE5.3.2
【解决办法】推荐使用5.0.3的版本
问题2:【许可】Windows许可中心打开提示“请以管理员身份运行”,如何解决?
【解决办法】鼠标右键,以管理员身份启动许可中心,操作如下:贴图
问题3:【许可】Windows许可中心更新许可时,提示“许可文件不匹配,请重新获取许可文件”如何解决?
【问题原因】电脑修改了计算机名,导致与文件型许可匹配不上,因此许可不可用。
【解决办法】根据正确的计算机名重新申请许可或者修改计算机名与许可匹配。
问题4:【许可】Windows安装许可中心时,老是循环提示让安装,怎么解决?
【解决办法】1.检查 Windows 系统服务里面是否已经存在 Sentinel LDK License Manager 名称的服务,且该服务是否处于“正在运行“状态,若已存在但未运行,将其启动;
2.在 Sentinel LDK License Manager 服务启动后,打开系统浏览器输入 http://localhost:1947/ 进入 Sentinel Admin Control Center 管理页面;
3.点击左侧菜单栏的“更新/依附”切换到许可更新页面;
4. 选择 SuperMap LicenseCenter\Tools 目录下的 SuperMap_Trial_License.v2c文件进行更新;
5.更新成功后重新打开许可中心即可。
问题5:【许可】当使用云许可时报错“1425null”,什么原因导致的?该如何解决?
【问题原因】该报错是由于该许可账号未正常注销(即在其他端未正常退出)导致
【解决办法】您可以通过Online页面–>许可管理,一键退出
问题6:【许可】Web许可中心如何开启“回收许可”功能?
【解决办法】打开【Web许可中心安装包】/bin/application.properties文件,添加manual.enabled=true设置,重启Web许可中心服务,即可看到下图中【回收】操作。贴图
问题7:【许可】Web许可中心能导入多个许可文件吗?会追加还是覆盖?
【解决办法】11i(2023)及以前版本不支持识别多个许可,建议联系流程信息中心将多许可整合为一个许可。
七、SuperMap GIS基础产品移动GIS-FAQ集锦
问题1:【iMobile】移动端能否支持在三维场景中加载gltf格式模型数据?
【解决办法】目前只能通过在iDesktopX软件中添加KML图层,然后在kml图层中添加gltf对象,再去移动端加载这个kml图层。
问题2:【iMobile】iMobile运行报错“ 数据集的工作空间应该与Map的工作空间相同。”该如何解决?
【解决办法】需要使用Map.setWorkspace()关联当前打开的工作空间。
问题3:【iDesktopX】UDB数据源里面的存储的数据集表名不超过多少字符?
【解决办法】目前所有数据源的表名字符不超过17位。
问题4:【iMobile】使用iMobile对地图设置中心点不起效,该如何解决?
【解决办法】需要对地图同时设置中心点坐标和比例尺才起效。