查看原文
其他

超实用!SuperMap热门技术问答,一键收藏

917大学GIS学院 超图集团 2022-07-16


“倾斜摄影模型发布成三维服务的操作流程是什么?
SuperMap iClient3D for WebGL产品中
何修改地下颜色?
在SuperMap iDesktop中导入影像数据集
如何去除影像的黑边?
如何迁移SuperMap iServer服务到另一台机器......”

想必各位GISer在使用SuperMap GIS产品过程中
可能会碰到如上的一些问题
为了帮助GISer们更方便地
研究和使用超图的技术和产品
小编整理了关于三维、二维、服务器
三个部分的热门技术问答

祝GISer们在新的一年里
学富五车、才高八斗、平步青云、扶摇直上
十八般武艺样样精通!


关于“三维


1、 SuperMap iDesktop加载多个模型图层添加到场景中,随着鼠标缩放面出现一闪一闪的现象,造成这种现象的原因是什么?

答:这种现象有两种可能性。

(1)存在重复面。解决办法是通过桌面软件去除重复面,操作步骤:三维数据—模型工具—移除重复面。

(2)共面闪烁。模型图层与地面或者其他图层模型对象存在重叠共面,可以通过抬高模型图层底部高程或者设置模型多边形偏移来解决(图层属性面板-多边形偏移)。

2、在3ds Max模型导入SuperMap iDesktop后发现模型纹理明显变暗,是否有办法优化?

答:可能存在三个因素的影响,请逐一确认并参照修改:

(1)光照时间影响:关闭场景中的太阳特效或者设置太阳时间为中午。

(2)材质颜色影响:在“三维数据-模型工具-修改材质颜色”功能中将模型材质颜色修改为白色。

(3)顶点颜色影响:在3ds Max中将模型顶点颜色设置为白色。

3、SuperMap iClient3D for WebGL地表设置半透明后怎么把地下网格给关掉?

答:可以设置viewer.scene.terrainProvider.isCreateSkirt = false即可关闭网格。

4、在SuperMap iDesktop中添加模型到场景中,定位到图层时不显示,可能的原因有哪些?

答:(1)模型高度比较高或者比较低,在地下或在天上。

解决方案:使用三维数据—模型工具—属性提取—提取底部高程。提取后在数据表中查看提取的数值。数值为负值,则为地下数据,打开场景的地下模式即可。若数值较大,则模型高度较高,在风格设置—底部高程将底部高程降低,数值为提取的高度值。

(2)提供的数据范围跨度大,定位后相机高度太高,模型显示得小,因此看不到。

解决方案:打开模型编辑,再打开模型图层的关联属性表,选中一个对象,场景中会出现选择框,使用鼠标缩放至选择框即可看到。

(3)模型数据范围不正确。

解决方案:在属性表中查看模型的bounds范围,进行降序或者升序排列,删除范围错误的数据,再重新计算数据集范围。

5、模型在SuperMap iServer发布三维服务之后预览不显示,可能是哪些原因?

答:(1) 模型数据没有切s3m缓存,SuperMap iDesktop中先切缓存之后再发布。

(2) 检查iDesktop与iServer是否版本保持一致。

(3) 检查工作空间中数据路径是否正确且为相对路径。

6、倾斜摄影模型发布成三维服务的操作流程是什么?

答:(1)使用桌面软件对倾斜摄影模型数据(osgb格式)生成配置文件。

(2)使用桌面软件倾斜入库功能生成s3m(s3mb)缓存。

(3)将生成后的缓存scp配置文件添加到新球面场景并定位到该模型处,保存场景,保存工作空间。

(4)在iServer里用上一步保存的工作空间发布三维服务。

详细流程可参考技术专题http://support.supermap.com.cn:8090/webgl/examples/TopicDOC/LoadObliqueModel_OperateTopic.html。

7、SuperMap iClient3D for WebGL产品中加载三维影像缓存有白边有什么办法解决?

答:以下两种方案均能解决,推荐使用第一种方案。

(1) 在SuperMap iDesktop中保存成地图,对地图切三维缓存并设置背景透明。

(2) 在WebGL前端设置影像图层透明色为白色 ,参考代码如下imagerylayer.transparentBackColor=new Cesium.Color(1,1,1);

Imagerylayer.transparentBackColorTolerance=0.2;

8、SuperMap iClient3D for WebGL产品中场景中的白模怎样设置绚丽的渐变色?

答:可通过对白模图层分层设色实现,主要接口为S3MTilesLayer.hypsometricSetting,参考范例为http://support.supermap.com.cn:8090/webgl/examples/webgl/editor.html#flood。

9、 SuperMap iClient3D for WebGL产品中如何修改地下颜色?

答:开启地下之后设置scene.underGlobe.baseColor参数。

10、SuperMap iClient3D for WebGL产品中scene.open()打开场景时,如何设置自定义请求头?

答:在打开场景之前设置

scene.customRequestHeaders={

    'token':"dfvdgdfg..."

         }

11、SuperMap iClient3D for WebGL产品中如何修改mvt标签的底部高程?

答:针对mvt矢量图层设置mvtlayer.style3D.bottomAltitude为想要的其他高度值。

12、SuperMap iClient3D for WebGL产品中圆环状扫描线怎样确定半径?

答:可通过调整ScanEffect中运行周期(period)和速度(speed)来修改半径,半径(m)=运行周期(s)X 速度(m/s),这两个参数越大,扫描线半径越大。

13、3ds Max模型导入到SuperMap iDesktop后模型边缘不够平滑是否有办法优化?

答:在SuperMap iDesktop“文件-选项-环境”中开启【场景反走样】,并可适当调整反走样值。

14、在SuperMap iDesktop中对三维面设置半透明前景色,生成三维切片缓存后,面内出现三角网线框,如何解决?

答:生成缓存之前,在风格设置中将填充模式由“填充与轮廓”改为“填充”再生成缓存,或者在生成缓存后,将缓存图层填充模式设置为“填充”。

15、在SuperMap iDesktop中TIN地形镶嵌之后接边处出现类似断崖现象,如何平滑处理?

答:在进行TIN地形镶嵌时设置缓坡宽度,此参数值越大地形接边处越平滑。

16、三维切片缓存的对象ID默认为SmID字段,能否改为自定义字段?

答:通过数据集右键菜单生成缓存和批量生成模型缓存时,在生成缓存界面中选择指定自定义字段作为对象ID字段,所选择字段需为数值型字段。

17、在SuperMap iDesktop中导入3DS/SGM格式模型符号,再对三维点设置符号时,符号颜色不正确,如何解决?

答:颜色的问题是由于模型本身的纹理颜色和点的前景色混合导致,将三维点的颜色设置成白色即可。

18、3ds Max插件中插入点的参数意义?

答:(1)导出为平面坐标系时,插入点是模型数据导入udb数据源的偏移量,导入udb数据源之后的模型坐标为3ds Max模型坐标加上插入点坐标。

(2)导出为球面坐标时,插入点是模型数据的原点(0,0)对应的经纬度位置。

通常数据生产应用时一般还是选择投影坐标系,但是投影坐标系一般坐标值比较大,为了保证数据精度,生产过程中往往会减去一个偏移值,这个偏移值就是导出平面坐标系的插入点坐标。

19、SuperMap  iClient3D for WebGL中打开场景,如何关闭自动飞行定位,保持视口不变?

答:在打开场景时设置autoSetView参数为false

var promise = scene.open(url,undefined,{

     autoSetView : false //相机位置不变

          }

             );

20、SuperMap  iClient3D for WebGL中如何解决平面场景相机定位不准问题?

答:通过修改相机convert参数为false来解决,具体如下

scene.camera.setView({

     destination: new Cesium.Cartesian3(x, y, z),

          convert: false//平面坐标

               })

21、在scp中如何查看在倾斜摄影数据的瓦片边长?

答:用记事本打开scp,搜索FileName标签下包围球半径Radius标签,瓦片边长大约为该半径值的1.4142倍。

22、模型缓存里的LOD层级和简化率是什么含义?

答:LOD层级表示粗糙层的层数,其中0层代表次精细层。简化率代表简化百分比,0代表不简化。


关于“二维

1. 问:SuperMap iDesktopX中打开数据库型数据源,新建的数据集名称和数据库中存的表名不一致,如何保持一致?

答:iDesktopX默认数据集名称与对应表名不一致,此举是为了保证数据集名称可自定义的情况下同时还能满足数据库表名约束。在iDesktopX中的选项卡【文件】-【选项】-【环境】中勾选“表名与数据集名称保持一致”选项,后续新建的数据集名称将和表名保持一致。

2. 问:在SuperMap iDesktop中导入一份CAD数据集,想对数据集转换坐标系。但是投影转换按钮为灰色不可用,该如何解决?

答:CAD数据集通常是不带坐标系的,导入默认为平面无投影,投影转换需要原始数据带有坐标系,所以需要先对CAD数据集设置对应的坐标系,然后再进行投影转换。

3. 问:在SuperMap iDesktop中打开MySQL数据库型数据源,创建中文名称的数据集失败,是什么原因?

答:此问题是由于数据库默认字符集不匹配造成,可在MySQL安装目录中找到my.ini文件,设置默认的字符集编码:default-character-set=utf8,然后重启MySQL服务即可。

4. 问:在SuperMap iDesktop中导入影像数据集,如何去除影像的黑边?

答:可以通过以下三种方式去除黑边:

(1)使用【地图裁剪】-【选中对象裁剪】功能,选择影像边界进行裁剪。

(2)将影像数据集添加到地图窗口,右键图层--图层属性,在弹出框中设置图层背景透明。

(2)也可以新建一个面数据集,绘制需要显示的区域面,然后在影像数据集属性菜单中设置数据显示范围。

5. 问:在SuperMap iDesktopX中可以保存MySQL工作空间,但打开却报错"MySQL Got a packet bigger than 'max_allowed_packet' bytes"?

答:这是由于MySQL中max_allowed_packet值太小数据传输失败,在my.ini中增加或者修改max_allowed_packet=16M即可(根据实际情况设置)。

6. 问:安装许可驱动时报错”hasplmv.exe file(null) processing error”

答:这个一般是有杀毒软件或者安防软件拦截了hasplmv.exe这个文件的安装,建议先关闭杀毒或者安防软件再进行安装。

7. 问:在SuperMap iDesktop中将镶嵌数据集添加到地图窗口,缩小地图后影像突然消失

答:以下两个原因导致的问题:

(1)镶嵌数据集没有构建概视图,可以右键镶嵌数据集--构建概视图。

(2)镶嵌数据集构建了概视图,但是在构建概视图时设置的最大高度和最大宽度不合适,可以适当调整这两个参数的大小,如在构建概视图时设置的高度和宽度为5120,可以修改为2560。

8. 问:在SuperMap iDesktop中连接PostGIS数据库时,使用非管理员账号是否也可以创建数据源?

答:非管理员账号也可以新建PostGIS数据源,但是需要先对数据库创建PostGIS扩展,Create extension postgis,创建扩展后就可以在iDesktop中用非管理员账号创建数据源。

9. 问:在SuperMap iDesktop中制作标签专题图,需要同时显示两个字段的内容,并且字段内容之间实现换行,sql语句应该如何写?

答:UDB、MySQL和Oracle引擎 :字段A||char(10)||字段B ;PostGIS和PostgreSQL数据引擎:字段A||chr(10)||字段B。

10. 问:在SuperMap iDesktop中可以实现分层导出CAD数据吗?

答:CAD分层导出是可以实现的,需要在数据集中新建一个名称为Layer的宽字符类型字段,然后设置对应的字段值,该字段存储的值就是图层名,然后导出即可。

11. 问:在SuperMap iDesktop中在地图中如何将点的图标设置为本地图标,并且没有出现拉伸变形?

答:首先将图片导入到符号库,然后设置点图层风格为上一步导入的符号,将符号大小设置为0,即使用图标本身的像素大小。

12. 问:现有一个点数据集和面数据集,想要统计每个面中包含的点数量,如何实现?

答:将点数据集中的SmuserID值全部设置为1,在面数据集中新建一个名称为Count的整型字段;然后使用“属性更新”功能,将提供属性的数据集设置为点数据集,目标数据集为面数据集,空间关系选择“被包含”,取值方式为“求和”,字段设置为SmuserID更新Count字段,统计结果会保存在面数据集的Count字段中。

13. 问:在SuperMap iDesktop地图比较卡有什么办法优化吗? 

答: 点击菜单栏【地图】-【制图】中【性能诊断】按钮,浏览地图,性能诊断窗口会以柱状图展示每个图层的查询/绘制耗时,将鼠标放在耗时较长的柱状图上,可获取较慢图层的名称、查询、绘制耗时,同时可根据【输出窗口】中绘制耗时优化文档和查询耗时优化文档对数据进行优化。

14. 问:在SuperMap iDesktop中如何通过输入坐标点来绘制点?

答:可以根据如下步骤进行操作:

(1)在数据源里新建一个点数据集,将点数据集添加到地图窗口,右键图层--开启可编辑,点击对象操作——对象绘制——点。

(2)在绘制设置里选中参数化设置。

(3)键盘按Tab键进行输入坐标值,x坐标值输完继续按Tab键输入y坐标值,输完回车即可。

15. 问:在SuperMap iDesktop中将一个数据集添加到地图窗口,当有多个数据对象部分重叠时,能否根据属性来设置对象的显示顺序?

答:可以在图层管理器中右键选择图层属性,在对象显示顺序中选择相应字段。

16. 问:在SuperMap iDesktop中将影像数据添加到地图窗口,影像显示为黑色,如何解决?

答:一般情况下,黑色是因为图像显示有一定的拉伸策略,可在图层属性中设置影像的拉伸方式,若不确定拉伸方式,推荐优先选择最值拉伸。

17. 问:在SuperMap iDesktop中能否将多个mongo瓦片合并成一个瓦片?

答:新建一个地图窗口,在“地图”选项卡“数据”组中,点击“瓦片管理”按钮。在地图窗口右侧弹出“瓦片管理”面板。点击合并添加需要合并的瓦片即可。此功能需要瓦片数据的坐标系、瓦片块大小、索引范围、图片类型需要保持一致。

18. 问:现在有两份栅格数据集,需要将高分辨率的栅格数据更新到低分辨率的栅格数据上,该如何操作?

答:可以使用数据更新功能,此功能需要满足的条件是两个栅格数据集的像素格式和坐标系一致,同时范围上有重叠。

19. 问:在SuperMap iDesktop中是否可以制作像百度地图一样有立体效果的二维地图?

答:使用在“数据”选项卡“数据处理”组中,单击“地图制图”下拉按钮,选择“平面立体地图”,设置合适的偏移量,将平面立体地图可以将原来简单显示的平面地图变成有立体感的地图,结合最大最小比例尺,放大地图到一定的比例尺范围,就显示到该区域建筑的立体效果。

20. 问:在SuperMap iDesktop中怎么把空间对象转为geojson或wkt?

答:可以在地图窗口中选择需要转换的对象,鼠标右键--导出为文件,即可选择导出为geojson或wkt格式。



关于“服务器

1、Windows上启动SuperMap iServer黑窗口闪退?

答:请检查当前机器SuperMap iServer默认端口8090、8015是否被占用,如果这两个端口被占用则无法正常启动服务。可以通过以下两种方式解决:

(1)关闭占用端口的应用程序,然后重新启动SuperMap iServer。

(2)修改SuperMap iServer产品包中的默认端口号。修改%SuperMap iServer安装目录%\conf\server.xml中8090和8015为其它未占用端口,保存修改后的文件重新启动SuperMap iServer。

2、数据库型数据源在SuperMap iDesktop中打开并更新了数据,但是SuperMap iServer端没有更新?

答:将%SuperMap iServer安装目录%\webapps\iserver\WEB-INF\iserver-system.xml 文件中refreshDatasource设为true(默认为false未开启同步更新),重启SuperMap iServer。当SuperMap iDesktop中更新数据时,SuperMap iServer中的数据会在设定的时间内同步更新。

3、SuperMap iPortal注册服务后没有代理的地址?

答:SuperMap iPortal 10.1之前的版本默认没有开启服务代理,10.1及之后的版本默认开启了服务代理的。开启服务代理请参照iPortal帮助文档“开始 > 管理 iPortal > 站点配置 > 代理配置 > 服务代理 > 内置服务代理的配置”进行开启。

4、SuperMap iClient JavaScript在进行数据集SQL查询时,设置toIndex为-1,但是最多只能返回1000条记录?

答:数据集SQL查询默认maxFeatures最大返回数量是1000,如果需要返回更多,可以将maxFeatures属性值设大。

5、SuperMap iClient JavaScript加载地图,字体偏小或者显示模糊,可SuperMap iServer预览正常?

答:iClient代码对接的时候,需设置相应的比例尺或者分辨率,对应的设置参考各地图库的API接口,例如iClient for Leaflet设置地图的比例尺或分辨率是在L.Proj.CRS接口中设置:

6、SuperMap iClient JavaScript数据区域以外有很多不透明的白色区域?

答:原因在于图层未设置背景透明。设置图层transparent属性为true即可,例如SuperMap iClient for Leaflet中使用L.supermap.tiledMapLayer对接地图,可以将对接参数设置为L.supermap.tiledMapLayer(url, {transparent: true}).addTo(map)。

7、SuperMap iClient JavaScript能否控制某一个子图层上的要素按条件显示?

答:可以。将子图层显示参数类SuperMap.LayerStatus中的displayFilter属性设置SQL过滤条件,即可按条件显示。

8、SuperMap iClient for Leaflet进行几何查询时无法查询到数据?

答:如果是通过Leaflet绘制插件得到的几何对象去查询图层,请检查原始数据集本身是否为地理坐标系,如果不是则需要通过L.Util.transform方法进行坐标转换,将前端构造的几何对象转为投影坐标系再进行查,最后将返回的结果通过投影转换,转为地理坐标系的对象最终在前端显示。

9、SuperMap iClient for Leaflet如何对接带Key的iPortal服务?

答:通过“url?key=keyvalue”的方式访问。例如URL地址可以是:http://support.supermap.com.cn:8099/ywutslmu/iserver/services/map-china400/rest/maps/China_4326?key= CBIrkfXEAjydLrfp364qgM3P

10、SuperMap iServer如何通过HTTPS加密通信?

答:按照帮助文档步骤进行配置(开始 > 云端一体化 > GIS系统与安全 > SuperMap GIS 系统安全机制 > 保护系统安全 > HTTPS 加密通信)。在线访问地址如下:http://support.supermap.com.cn/DataWarehouse/WebDocHelp/iServer/Subject_introduce/Security/systemSecurity/HTTPS/HTTPS.htm

11、如何迁移SuperMap iServer服务到另一台机器?

答:如果数据均在共享磁盘(如nas存储),则无需考虑数据。若需将数据与iServer一同迁移,请保证数据文件与原服务器完整路径一致(数据库类型数据需要保证新机器能正常连通数据库服务器),具体方法:

(1) 在旧机器中,使用SuperMap iServer管理页面->备份与恢复功能,进行备份。

(2) 将旧机器备份后的文件拷贝到新机器,在新机器SuperMap iServer管理页面->备份与恢复中进行恢复。

12、SuperMap iClient for Leaflet如何控制图层顺序?

答:可使用Map pane来进行控制,具体代码如下示例:

(文档地址:https://leafletjs.com/reference-1.7.1.html#map-pane)

13、为什么在 Linux 系统上启动SuperMap iServer 服务时,报如下类似错误:“Unable to set localhost. This prevents creation of a GUID”?

答:出现这种现象时,请在 /etc/hosts 文件中,配置主机名对应的 IP 地址,即将主机名映射到具体的 IP 地址。如加上下面最后一行,表示将机器名 linux-3z6l 映射到192.168.112.213。

14、如果忘记 SuperMap iServer 初始化时创建的管理员账户密码怎么办?

答:在SuperMap iServer 的%SuperMap iServer安装目录%\bin 目录下有个 passwordreset.bat/passwordreset.sh 文件,专门用来处理用户忘记系统初始化时的管理员账户密码问题。如果忘记系统初始化时的管理员账户密码,可以通过以下操作重新创建管理员账户:

(1) 停止 SuperMap iServer 服务,即执行 %SuperMap iServer安装目录%\bin 目录下的  shutdown.bat /shutdown.sh 文件。

(2) 执行 passwordreset.bat/passwordreset.sh 文件 。

(3) 重启 SuperMap iServer 服务,即执行 startup.bat/startup.sh 文件。服务启动后访问 SuperMap iServer 首页时,系统会自动跳转到创建管理员账户界面,此时只需重新创建管理员账户即可。

15、如何调整SuperMap iServer中数据库检查的频率?

答:SuperMap iServer 支持调整数据库检查的频率,即检查“数据库型 工作空间”是否改变或“数据库型数据源”是否断开的时间间隔。解决方法是:修改系统配置文件%SuperMap iServer安装目录%\webapps\iserver\WEB-INF\iserver-system.xml 中的 <checkDatasourceConnectionInterval> 参数值,修改完成后保存文件并重新启动SuperMap iServer即可生效。

16、SuperMap iServer运行时catalina.log日志文件中出现较多条INFO级别的异常信息,例如“java.io.IOException: 断开的管道”,或“java.io.IOException: 您的主机中的软件中止了一个已建立的连接”。应该如何解决?

答:产生原因是服务端正在处理浏览器发过来的请求,未等服务端响应,浏览器关闭,从而导致服务端处理完后结果无法返回给浏览器产生异常信息,这一类信息一般不影响使用,建议将日志等级提高,通过SuperMap iServer内置Tomcat文件中的日志级别修改为WARNING(默认为FINE)即可,具体修改方法为:

(1) 用文本编辑器打开%SuperMap iServer安装目录%/conf/logging.properties文件

(2) 修改1catalina.org.apache.juli.AsyncFileHandler.level = FINE为:1catalina.org.apache.juli.AsyncFileHandler.level = WARNING

17、SuperMap iClient for Leaflet通过地物编辑接口更新数据之后,如何刷新地图?

答:调用图层的redraw方法刷新地图,例如:layer=L.supermap.tiledMapLayer(url,{cacheEnabled:false}); layer.redraw();

18、SuperMap iClient for Leaflet通过动态投影的方式对接地图,所有的地图参数都配置正确了还是不出图是什么原因?

答:对接动态投影除了配置地图的基本参数外还需要设置一个关键参数prjCoordSys,比如将4326的地图动态投影到3857需要在图层参数类中这样设置:L.supermap.tiledMapLayer(url,{prjCoordSys:{"epsgCode":3857}}).addTo(map);

19、SuperMap iServer浏览地图时,为什么会出现同一标签字体不同的情况?

答:因为部署SuperMap iServer服务的系统中不存在该标签所使用的字体库。

解决方法是:在该系统中,安装该标签所使用的字体库。例如:Linux下字体库的安装目录为 %SuperMap iServer安装目录%/support/fonts,将缺失字体放到该目录下,重启SuperMap iServer即可生效。

20、使用SuperMap iServer服务管理器中的“快速发布服务”向导发布文件型工作空间时,为什么“本地浏览”按钮不可用?

答:可能存在如下两种情况:

(1) SuperMap iServer服务不在本地,可以使用“远程浏览”进行选择。

(2) IE9、IE10、Chrome、Safari 下,由于浏览器的安全控制,无法获取欲发布工作空间的准确路径,可以使用“远程浏览”进行选择。







以上就是2020年大家问得比较多的问题,更多技术问题请点击文末「阅读原文」




欢迎转载~


都点一下,天天好心情!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存