高德地图优化问题,辛苦指点!

来源:3-6 高频事件防抖【解救页面卡顿的秘药】

十丈红尘

2020-08-15

老师我这边有一个关于性能优化的问题:

  1. 地图渲染类的需求,需要在地图上绘制2万个左右的点;
  2. 地图服务使用的是高德的API,主要是Canvas实现的;
  3. 请求频率每15秒刷新一次,主要更新车辆的位置信息;
  4. 高德地图API:https://lbs.amap.com/api/javascript-api/guide/overlays/massmarker

现在主要的问题是每次刷新浏览器都会卡顿3-5秒左右,如果要优化的话我应该从什么地方下手辛苦老师能指点一下吗?给个思路也可以

写回答

1回答

Mr_Max

2020-08-16

同学你好!

虽然高德文档说『十万以内的点......较好的性能表现』,但较好没有具体的量化说明,还要以你实际测试为准。

1)可以先看一下API调用,返回的数据量多大?耗时多久?

2)2万个点是一个非常大的量了,一次全部渲染出来肯定消耗很高,3-5秒感觉是可以接受的。但你的刷新频率很高,效果就不是很好了。同时渲染2万个点这个需求是否合理呢?就是为了看一个密密麻麻的全局地图吗?给用户传递怎样的有效信息呢?文档里下面的markerCluster是不是能更好的传递信息,同时性能好很多呢?毕竟渲染的数量减少很多。

3)可以参考一下这个文章中提到的关闭动画:https://blog.csdn.net/sflf36995800/article/details/106393077。但是感觉其实这是高德这边本身的性能问题,你从使用者的角度能做的非常有限。

1
3
十丈红尘
回复
Mr_Max
好的谢谢老师,我准备从canvas的角度去看看能不能优化
2020-08-18
共3条回复

前端性能优化企业级解决方案 6大角度+大厂视野

只要项目还在线,性能优化永远是时刻要关注的问题

1109 学习 · 226 问题

查看课程