SuperMap GIS基础产品移动GIS FAQ集锦(1)

SuperMap GIS基础产品移动GIS FAQ集锦(1)

【iMobile】【11.0.1】对记录集recordset添加记录时报错添加失败

【问题原因】这是因为对记录集开启编辑或者记录为只读状态
【解决办法】1.在新增记录的时候,不能对记录集进行锁定并编辑(edit)2.确保数据源为非只读状态并且获取记录集时游标类型为动态游标

【iMobile】【11.0.1】数据集为属性表数据,如何给属性表添加记录

【解决办法】addNew(Geometry geometry, java.util.Map<java.lang.String,java.lang.Object> values) 方法中Geometry参数为空,Map对象中存储需要传入的字段和字段值即可

【iMobile】【11.0.1】如何打开多个在线地图服务

【解决办法】打开多个在线地图服务需要实例化多个数据源连接参数类DatasourceConnectionInfo,分别设置每个在线地图服务的参数
【注意】数据源连接参数中别名需要不一致,一个数据源连接对应一个别名

【iMobile】【11.0.0】使用正式许可初始化环境时报错Didnot findclass "com.supermap.bslicense.Bslicense"on path: DexPathList …

【问题原因】这是由于找不到BSLicense类,缺失库导致的。
【解决办法】需要将产品包中的slf4j-api-1.7.26.jar、slf4j-log4j12-1.7.26.jar引用到工程里面

【iMobile】【11.0.0】使用华为设备申请许可时获取deviceID会发生变化

【问题原因】华为手机WiFii模块默认使用随机mac地址,随机mac地址是根据WiFi信息生成的所以会发生变化的情况
【解决办法】先去手机根目录下面/SuperMap/data/把SuperMapKey.ogg文件删除,再把手机WiFi打开,在WiFi高级设置里面选择使用设备mac地址,再次获取设备id

【iMobile】【11.0.0】找到手机的“设备序列号”后拿去申请正式文件许可,结果发现文件许可不可用

【问题原因】这里的“设备序列号”不是手机系统上面显示的mac地址或者IMEI,不能用于申请许可
【解决办法】随便运行一个imobile范例程序,在onCreate方法里面的Environment.initialization方法调用之后执行方法Environment.getDeviceID,该方法会返回一个16位的字符串,可以用于申请正式文件型许可

【iMobile】【11.0.0】初始化时崩溃,提示找不到许可,或者“so库与jar包版本不匹配”

【问题原因】客户项目gradle里面配置的sdk版本过高,自sdk29之后,安卓用户隐私保护策略禁止应用访问除了应用之外的自定义文件夹,所以读取不到许可 【解决办法】1.把工程的gradle.build里面sdk最高版本改为28;
2.在配置下面加上ndk,表明使用的abi名称是32位还是64位即可。img

【iMobile】【11.0.0】如何在地图中画出一个几何面对象询到当前面内所有的对象

【问题原因】.现有datasetvector.qurey方法不论用几何查询还是设置查询条件查询只能从单个数据集查询,但是一张地图往往矢量图层不止一张,有没有一个接口能一下查出几何面内所有的目标对象
【解决办法】1.没有这样的接口能直接从map中查询所有图层上的目标几何对象;
2.可以遍历图层,再用layer.getdataset获取每一个矢量图层的矢量数据集,再用datasetvector.query从数据集中获取当前图层中的目标对象记录集类;
3.用recordset.getgeometry与recordset.movenext获取到记录集里面的每一个几何对象即可

【iMobile】【11.0.1】打开墨卡托天地图地图不可见,是白茫茫的一片

【问题原因】墨卡托投影坐标的天地图打开后本地缓存中的sci文件中的IndexBounds(索引范围)参数中的上、下和左、右的值反了导致无法渲染瓦片
【解决办法】删除手机目录下SuperMap/data/WMTS下面的错误缓存,在墨卡托天地图的url后面加上’&topleftcornerexchange=1"再次加载

【iMobile】【11.0.1】imobile点击地图获取坐标

【解决办法】1.设置手势监听器,可以用长按或者双击等方式,获取到屏幕坐标;
2.用map.pixelToMap(Point point)把屏幕点转为地图坐标点;代码如下img

【iMoblie】【11.0.1】激活许可序列码的active方法返回true,但是有激活报错回调提示‘module not exist’,激活还是失败

【问题原因】
1.许可序列码出错了,有可能出成了归还式许可,移动端归还式许可跟云许可走的两套id号,如果用归还式许可查询到的结果模块id又是云许可会导致激活失败 2. 模块没有设置对,比如许可模块里面有Core_Runtime与Realspace_Runtime结果模块列表里面添加了Core_Dev
【解决办法】可以从以下几个方面排查 1.使用recycleLicense范例程序,激活许可后调用RecycleLicenseManager.query方法,查看回调方法返回的moduleList里面有哪些模块2.检查query方法回调的结果模块,看是结果否在com.supermap.data.Module里面有对应的枚举 3.激活后调用RecycleLicenseManager.queryLicenseCount,回调方法返回许可模块与数量以及激活状态的信息

【iMobile】【11.0.1】场景添加天地图失败,添加天地图的三维图层结果为null

【问题原因】场景添加天地图与地图添加天地图的url形式有些不一样,如果直接把地图添加天地图的url用来在场景中加载就会错误
【解决办法】把url后面再加上参数‘&layername=xxx’,‘xxx’表示图层名称,一般天地图图层名称为‘img’,同时Layer3DType使用WMTS,还要注意图层名称,就像img

【iMobile】【11.0.1】imobile地图动态投影没效果

【问题原因】1.代码的加载顺序有问题;2.移动端不支持对在线地图动态投影;
【解决办法】.在打开地图前调用map.setDynamicProjection(true)或者用map.setDynamicProjection(boolean bDynamic, PrjCoordSys value) 设置地图是否动态投影显示,以及地图的投影坐标系;2.有一张在线地图的情况,先添加在线地图,在开启动态投影,之后添加本地数据;3.当单参数动态投影方法没用时,需要指定地图的投影坐标系开启动态投影,以开启墨卡托天地图的动态投影为例,方法如图img

【iMobile】【11.0.1】如何获取手指点击屏幕处所对应的地图坐标点?

【解决办法】先通过MapControl类下的setGestureDetector()设置用户手势识别器中的短按或长按方法获取触屏位置的屏幕坐标Point,然后使用map.pixelToMap()方法将屏幕点转地图点坐标Point2D。

【iMobile】【11.0.1】如何设置地图的显示范围?

【解决办法】1.通过设置地图中心点坐标map.setCenter(Point2D point)和比例尺map.setScale(double value)来控制地图显示范围
2.直接设置地图显示范围map.setViewBounds(Rectangle2D rect)

【iMobile】【11.0.1】如何另存一个新的工作空间?

【解决办法】1.通过实例化的工作空间或者已经打开的工作空间Workspace获取工作空间连接参数workspace.getConnectionInfo();
2.设置新的工作空间连接参数,比如工作空间类型workspaceConnectionInfo.setType()以及工作空间地址workspaceConnectionInfo.setServer();
3.最后通过workspace.save()方法保存工作空间。

【iMobile】【11.0.1】iMobile下载数据服务中的数据,支持下载什么类型的数据集?

【解决办法】目前iMobile支持下载点、线、面三种类型的数据集,使用类DataDownloadService。

【iMobile】怎么设置地图的背景颜色

【解决方法】使用map.setBackgroundStyle(geoStyle)方法,其中geoStyle需要设置前景色,即geoStyle.setFillForeColor(Color),color构造方法可以有三个rgb值或者再加一个透明度,如下代码即设置地图背景为红色 :

GeoStyle geoStyle = new GeoStyle();
geoStyle.setFillForeColor(new Color(100,12,10,50));
mapControl.getMap().setBackgroundStyle(geoStyle);

【iMobile】行业导航分析失败,分析方法返回false

【问题原因】1.导航分析容限设置小了, 2.网络数据集没有添加到地图中;3.网络数据集有误,如环线等错误数据; 4. 网络数据集坐标系不对,坐标系的单位是米,非经纬度坐标系 ,因为需要进行导航,要能够匹配传入的经纬度坐标系 【解决方法】1.可以用navigation2.setNodeInterval添加分析点选择容限大一点,该方法设置的容限单位为米,且只有容限大于0时才有效,否则使用默认容限分析; 2.分析的网络模型与网络数据集都要被navigation2加载,且同一网络数据集添加到地图中才可以;3.可以在桌面中打开网络数据集进行最佳路径分析,查看分析是否会报错,如果有错误,则桌面会生成错误表,其中记录着有误对象以及错误原因如贴图img
把生成网络数据集的材料线数据集打开,关联浏览属性表找到对应id的几何对象并纠正即可 4.把网络数据集修改为经纬度坐标系如4326等

【iMobile】在线范围查询失败回调提示‘参数 geometry 不能为空’

【问题原因】设置用于分析的几何对象不是geoRegion,该查询方法需要geoRegion才能分析【解决办法】把当前用于范围查询的几何对象转为georegion,比如使用geociecle作为查询范围的几何对象,就要再构造一下gerregion,可以用GeoCircle.converttoGeoregion返回一georegion

【iMobile】怎么加载iserver发布的地形缓存

【解决办法】 1.生成tin缓存时与三维缓存同理,选择纹理为移动端可加载的webp,2.使用scene.getTerrainLayers() 返回三维场景中的地形图层集合,再用TerrainLayer.addIserver(java.lang.String url, java.lang.String layerName) 添加iserver地形图层,其中填入的url地址需要到数据名称截止,layername即为数据名称,如贴图img

【iMobile】怎么通过gps定位

rl, java.lang.String layerName) 添加iserver地形图层,其中填入的url地址需要到数据名称截止,layername即为数据名称,如贴图[外链图片转存中…(img-brurx9Up-1680512358854)]

【iMobile】怎么通过gps定位

【解决办法】imobile范例程序有使用腾讯定位sdk的例子,可以去范例程序track中查看相关使用方法,注意其中关键类分别为Gps、LocateUtil、MyLocationService以及TencentLocTool分别负责承载gps数据、转换加密坐标数据、传输gps数据以及监听获取gps信息,同时注意使用TencentLocationSdk_v7.1.7.jar与libtencentloc.so,还要去申请腾讯地图开发者key填写在manifest的meta-data标签下的TencentMapSDK对应的value中

猜你喜欢

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