2018 SuperMap 移动端 常见问题解答集锦(一)

本文解答了SuperMap移动开发中常见的问题,包括地图显示、数据服务、三维场景加载、许可管理等关键方面,提供了详细的解决方案和技术指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问:在移动端打开MVT矢量瓦片设置全幅显示不出图,是怎么回事?
答:由于在切图的时候是选择了切的比例尺级别,在全幅显示的时候的比例尺可能不是切的比例尺级别。最好的是在打开数据的时候设置比例尺和中心点

问:SuperMap iMobile for Android中如何创建一个新的工作空间?
答:首先new一个工作空间workspace,然后获取工作空间连接参数:workspace.getConnectionInfo();设置工作空间连接参数,然后保存工作空间。

问:移动端osgb图层里的对象可以进行显示或隐藏的控制吗?
答:可以啊。用接口layer3DOSGBFile. setObjectsVisible(int[] ids,boolean value)即可控制。注如果ids是空数组,value是false,就代表全部显示。

问:在Android端三维量算监听的回调函数里执行移除跟踪图层要素(TrackingLayer3D.remove(id)),会导致线程堵塞,程序执行不过去,这是怎么回事?
答:跟踪图层上移除要素,相当于是更新UI,需要在主线程里执行,代码如下:
new Activity().runOnUiThread(new Runnable() {
@Override
public void run() {
TrackingLayer3D.remove(id)
}
});"

问:移动端的在线服务支持要素的交互吗?
答:只有WFS要素服务才支持要素的交互,但其属性也仅限于只读,不支持编辑。

问:三个影像数据集单独切地图缓存,然后将缓存叠加上,在桌面显示正常,在移动端显示不正确,不同比例尺下有缓存有一定的错位现象以及显示的图不完整,这是什么原因啊?
答: 在移动端叠加的地图缓存,需要保持索引范围一致,故检查下三个地图缓存的索引范围是否一致即可。

问:下载数据服务中的数据集支持下载什么类型的数据集?
答: 目前移动端只支持UDB数据源发布的数据服务,并且只能下载点、线、面。

问:iMobile如何判断线与圆相交,点在圆内?
答:用几何运行类Geometrist进行相交关系或包含关系的运算,如相交判断 Geometrist.hasIntersection()。

问:移动端三维场景加载了在线三维服务,服务里有桥模型数据,拉近相机后发现桥的护栏有些三角面缺块的现象,是什么原因导致的啊?
答: 同样的相机角度,在桌面软件里查看场景缓存桥模型数据是否也有三角面缺块现象。这种现象一般是由于lod层级导致的,可以在桌面或者移动端将lod设置小一些,这样模型的精细程度越高,但同时也会带来性能损耗,可以适当调整lod值。

问:在SuperMap iMobile for Android中加载多个在线数据源失败
答: 加载多个在线数据源时需要设置不同的数据源别名。

问:移动端支持换行标签专题图吗?
答:目前移动端暂不支持换行标签专题图,但是可以在桌面配置好换行标签专题图,将其转换为CAD数据集,然后配置地图,在移动端可以达到换行标签效果。

问:Android 端以经纬度84坐标系天地图作为底图,接收的gps点也为wgs84坐标系,但是叠在底图上偏移量很大,同样的数据在桌面叠加上去是正确的。
答:桌面端打开天地图采用的dpi是96,故在移动端打开时需要加入dpi=96的参数,前提时已经删除了移动端天地图的缓存,当然也可以修改sci文件中的CoordRatio参数为3.779527559055118。

问:如何根据模型属性查找OSGB模型并设置选中高亮?
答:通过Layer3DOSGBFile.getFeatrues()遍历Feature3D对象查找对应属性,并获取SMID的值,再通过Layer3D.getSelection().add(SmID)可以设置选中对象。

问:如何查看iServer服务中发布的三维数据类型?
答:进入发布的数据服务,查看对应的数据集的页面,数据集页面中提供了数据类型。

问:移动端设备不能联外网,但是可以连内网,有什么办法可以打开天地图服务啊?
答:可以在外网装一个iServer产品,将天地图服务切缓存,然后将缓存拷贝到内网中,用iServer将其发布为rest服务,这样移动就可以打开内网的rest服务。

问:线的沿线标注太稀疏或太密,该如何处理?
答:修改专题图
1.参数设置:高级 -> 周期间距单位和沿线周期间距
此处间距是屏幕间距,使用单位0.1mm, 间距400,可根据需要修改
2.绘制类型:选择整行绘制较好
3.特殊区域较密集: 设置避让距离调整较密集的区域"

问:Service模块是否支持同时查询多个图层?
答:QueryService不支持一次查询多个图层,但可以通过创建几个QuerService和ResponeCallBack同时分别对不同的图层进行查询。

问:影像数据集可以直接切三维影像缓存吗?
答:可以用ImageCacheBuilder类实现,得用buildWithoutConfigFile() 方法才可生成三维的SCI3D 影像缓存

问:场景中OSGB模型被选中后,如何获取模型的属性?
答:参考示例:OSGB属性查询OSGBLayerAttributeQuery, 获取FieldInfos,
String[] Layer3DOSGBFile.getAllFieldValueOfLastSelectedObject()"

问:模型数据已经按类别生成了多个模型数据集,并批量生成了一个SCP缓存,在移动端怎么获取某个类别的ID数组呢?
答:移动端有个新增的接口可以获取到所有模型类别的名称列表,以及每种类别对应的起始id和终止id,示例代码:
ArrayList startIds = new ArrayList<>();//每种类型的起始id。
ArrayList endIds = new ArrayList<>();//每种模型类型的终止id。
ArrayList typeNames = layer3DOSGBFile.getDatasetInfos(startIds, endIds);//所有类型的名称列表

问:Android程序编译没有问题,运行时报错提示初始化控件失败,Caused by android.view.InflateException Binary XML file line 20 Attempt to invoke virtual method boolean java.lang.String.equals java.lang.Object on a null object reference。
答:这是因为布局文件xml编写的类名不对,可能是view写为小写了,也可能只写了MyView,而是需要加包名com.sm.yb. MyView这样才可行

问:为什么导入shp数据后,数据集的投影类型为-1?
答:因为.prj中提供的坐标系不是产品中预定义的类型,导入时未能识别,可自定义一个坐标系类型,给数据重新设置坐标系即可。

问:在AndroidStudio项目中有多个abi的so库,运行时iMobile报so版本和jar的不匹配,该如何处理?
答:iMobile只提供了一个abi的so库,当apk中存在多个abi库时,系统会选择其支持的最高版本的abi库。
方法1:在app的build.gradle文件中,找到defaultConfig,在其中增加以下代码,指定需要的abi
ndk{
abiFilters ““armeabi”” // armeabi为iMobile提供的库
}
方法2:项目中删除不包含iMobile的so库的abi目录"

问:归还式许可是否可以支持同时在线和循环使用
答:9D的归还式许可在激活后可以归还,归还后可以被其他设备使用或是本身再次申请。应用中可以在启动时激活许可,退出时归还许可,以达到多设备循环使用的目的。

问:移动端中可以对地图设置背景色吗?
答: 可以的,在Map接口中有setBackgroundStyle(GeoStyle style) 设置当前地图的背景风格。

问:在桌面中切的场景缓存如何在supermap iearth这个app上进行显示?
答: 在桌面切Android纹理的缓存,然后将文件拷贝到设备的/SuperMap/Data下面即可。在app上点击场景然后选中本地场景就可以看到刚添加进去的场景然后点击添加

问:Android lite版中想要将wmts和rest两个地图服务叠加在一个mapview中,有什么需要注意的?
答:两个服务的地图比例尺有可能不一致,故需要在代码中做设置,将地图比例尺开启,以其中一个服务的比例尺和分比率为基准统一。
mapView.fixedLevelsEnabled = true;
restLayerView.setScales(wmtsLayerView.getScales());
restLayerView.setResolutions(wmtsLayerView.getResolutions());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值