elements图层元素太多导致拖动卡顿

0 投票

目前系统主要有两类图层,一类是elements图层,大概有上百个点的信息,包含名称,图片以及属性信息,还有一类是动画图层,因为有速度和时间的原因,分成了10个动态图层,现在拖动地图的话,elements图层就需要重新给定位置,这个时候会很卡,通过排除法,确定只加载elements图层不会卡,加上10个动画图层就会卡顿,请问下有什么优化方法吗?imageimage

图片里红色的箭头是动态的图层,地名点是elements图层

2月 15, 2017 分类:  1253次浏览 | 用户: zhenglijuan 初出茅庐 (28 分)

1个回答

0 投票
你可以将你的数据加载到一个动画图层里面 但是需要优化数据,主要是TIME值的处理
2月 15, 2017 用户: 毛瑞 名扬四海 (1,780 分)
这个需求很复杂的,他要求数据同时开始,速度一样,单条动画线路要是连续的循环,放在一个图层的话,肯定是所有数据都动完了才会重新开始吧,之前询问过支持中心的同事,他们说只能用这种分开很多图层来做的方式
非得用这么多图层没法快...
红底白字可以用GeoText(放vector图层),参考:http://support.supermap.com.cn:8090/iserver/iClient/forJavaScript/examples/examples.html#themePM2_5
如果Elementslayer用的是普通div背景色+字方式渲染的话,换GeoText会快一点
红底白色那块他会有很多站点靠的很近,然后他们想要的效果就是鼠标移动到某个站点时,这个站点会自动浮到最上层显示,所以才使用的elements图层自己写的div解决的

GeoText是Vector要素,也就是它支持各种Vector图层鼠标事件的,鼠标移入移出当然也行的,直接设置SelectFeature控件hover属性会鼠标移入选中要素(选中时置顶并应用选中样式)移出时取消选中(恢复原样式),十个动画图层不变的情况下建议优化这个(目前Vector图层使用Canvas2方式渲染最快,可在Vector图层renderers属性设置)。

另外,GeoText默认隐藏被压盖的标签,要全部显示需要设置GeoText策略类isOverLay属性为false,类参考:
http://support.supermap.com.cn:8090/iserver/iClient/forJavaScript/apidoc/files/SuperMap/Strategy/GeoText-js.html#SuperMap.Strategy.GeoText.isOverLay

geotext只能加文字吧,那请问后期还会加上图例的这种,又要怎么解决呢?谢谢!

嗯,那就没辙了
...