首页 / 浏览问题 / 移动GIS / 问题详情
mMap!!.pan(offsetX, offsetY)平移有时无效
76EXP 2022年11月03日
各位大佬,我在使用mMap!!.pan(offsetX, offsetY)平移时(根据需要定位的点和中心点坐标计算的偏移量),有时候无效,需要触摸下地图才会移动到相应的位置,一般情况就是距离较近时有时候会无效,至于为啥用mMap!!.pan(offsetX, offsetY),是因为,使用map.refresh会使地图大面积刷新,当做定位时会先出现一大片空白后才显示出地图。

1个回答

您好,

1.请问您加载的是在线地图吗,看您的描述是移动到部分未绘制的地图区域会先有空白再绘制地图,如果是加载速度的问题,建议您使用iMobile 11.0及以上版本,因为在11i中新增了map.setMapDownLoadThreadNum(int num),该方法可以设置网络下载线程数 需在添加或打开地图前调用,参数:num - 线程数量,默认值5,最小为1,最大为10,如果超过10设置为10个线程 ;

2.至于平移无效需要点击才生效,请问您使用的是哪个版本呢,出现平移不立即生效的频率大概是多少呢,麻烦您展示下平移的代码这边看下呢
3,415EXP 2022年11月04日

使用的是离线地图,使用的版本是10i,平移不立即生效的一般是平移前和平移后的两个点距离较近的情况,一般是根据两个点计算偏移量的时候,两个点之间切换着显示一两次后,再次平移切换时就不生效需要点击屏幕。平移代码如下:

val centerP=points.getItem(0)//此出坐标可以理解成是一个geometry的中心点
val centerPoint = getCenter()//此处是屏幕中心点坐标转的地理坐标
val offsetX = centerPoint.x - centerP.x
val offsetY = centerPoint.y - centerP.y
mMap!!.scale = 0.001

mMap!!.pan(offsetX, offsetY)
一般不生效的情况是中心点和需要定位的点距离较近,且在两点之前频繁切换定位,其他情况也是,如果三个点之间是相邻的三个点,点1和点2切换时可以平移,但是点2到点3时有时候就需要点下屏幕

就比如这个,这三个图斑之间切换时,地图无法平移,需要点击

感觉应该是平移了,因为重复点击时获取到的偏移量为0,但是地图并没有移动到正确的位置。
map.panto方法生效的,只是距离太近不明显
...