首页 / 浏览问题 / 云GIS / 问题详情
拖拽地图 vector消失 缩放后又重新显示
20EXP 2017年03月23日
在同一图层上加载vector和geotext,拖拽地图时vector小时,但是geotext正常,缩放后又正常显示了。有一个人遇到和我一样的问题,回复的建议是分两个图层分别画,用canvas渲染。但是遇到不支持canvas的浏览器就不行了。不知道他后来怎么解决了。

拖拽时要素会消失,但是实际上要素还在该图层内,也没有被移除,为什么不显示了?是渲染机制问题还是什么?我想知道原因,以便想想规避的办法。

1个回答

请问使用什么版本iClient?
我这边并没有出现这种情况,使用以下示例,在控制台输入
http://support.supermap.com.cn:8090/iserver/iClient/forJavaScript/examples/themeLabelLayer.html
var drawPolygon = new SuperMap.Control.DrawFeature(vectorLayer, SuperMap.Handler.Polygon);
map.addControl(drawPolygon)
drawPolygon.activate()
绘制多边形,和GeoTExt在同一个图层,拖拽和缩放都没有你说的问题

所以请先确认下:
1.iClient for JavaScript版本(2位小数)
2.渲染方式是Canvas2(某些iClient js小版本可能存在颜色渐变问题等,但也没有你描述的情况)么?
3.有没有其他操作?比如监视地图拖拽等事件,里面做了操作
4.检查是否Feature对象重复引用指针混乱,JavaScript的对象都是引用型,通过别的变量改变或引用一个对象,最终在内存都是指向同一存储块,混乱的引用可能会造成绘制不出来等的问题,使用时需要注意;另iClient JavaScript的对象基本都提供了clone()方法来克隆一个对象。

1,780EXP 2017年03月24日

5.map设置了minZoommaxZoom,可能会造成部分丢失,但不会要素都不显示,这是个已知问题,已经修复,但还未在正式版本中发布

client版本是supermap_iclient_for_JavaScript_712_12428_1122,渲染方式是canvas2,同一个vector图层加载有point和geotext要素,缩放地图时显示没问题,拖拽时鼠标弹起,点就不显示了,再次缩放重新显示。我现在改用canvas渲染,拖拽不显示点的问题倒是没有了,但是又有一个新问题:要素画的不全,会丢点
我先试下这个版本
712_12428确实有这个问题,抱歉,我没注意到这个问题,只是在找了个示例试了下,然后没问题,嗯,最新版的
两种办法:

1.分别放不同图层
2.换8C就好了,比如8.1.1,换8C向下兼容没问题,对接iServer的部分不使用iServer的新功能都行
...