android 7.4.0 起支持动态轨迹绘制,开发者可以提供轨迹数据,来动态展示轨迹。支持监听轨迹绘制状态。
示例代码如下:
traceoptions traceoptions =newtraceoptions();traceoptions.animationtime(5000);traceoptions.animate(true);traceoptions.animationtype(traceoptions.traceanimatetype.traceoverlayanimationeasingcurvelinear);traceoptions.color(0xaaff0000);traceoptions.width(10);traceoptions.points(gettracelocation());
示例代码如下:
mbaidumap.addtraceoverlay(traceoptions,newtraceanimationlistener(){@overridepublicvoidontraceanimationupdate(int percent){// 轨迹动画更新进度回调}@overridepublicvoidontraceupdateposition(latlng position){// 轨迹动画更新的当前位置点回调}@overridepublicvoidontraceanimationfinish(){// 轨迹动画结束回调}});
绘制效果如图:
自v7.5.4起,支持轨迹动画图标。开发者可自定义动画图标,图标跟随动态轨迹平滑移动。
示例代码如下:
// 创建轨迹对象traceoptions traceoptions =inittraceoptions();// 创建图标bitmapdescriptor bitmap =bitmapdescriptorfactory.fromresource(r.drawable.marker_blue);// 设置轨迹动画图标并让图标平滑移动traceoptions.icon(bitmap).setpointmove(true);// 添加轨迹动画mtraceoverlay = mbaidumap.addtraceoverlay(traceoptions,this);
注:必须调用setpointmove(true)方法才能看到轨迹动画图标
绘制效果如图:
自v7.5.7版本起,动态轨迹支持为每个轨迹点配置颜色来实现渐变轨迹效果。通过traceoptions的来usecolorarray方法来开启,传入int类型十六进制的颜色数组。(例如 0xff0000ff 代表透明度为255的蓝色 ,从左至右,每两位分别代表argb)
注:开启渐变效果后关闭轨迹线的抽稀和平滑效果。
代码如下:
traceoptions traceoptions =inittraceoptions();...traceoptions.usecolorarray(true);traceoptions.colors(arrcolor);/*** 模拟轨迹点*/privatestatic final latlng[] latlngs =newlatlng[]{newlatlng(40.055826,116.307917),newlatlng(40.055916,116.308455),newlatlng(40.055967,116.308549),newlatlng(40.056014,116.308574),newlatlng(40.056440,116.308485),newlatlng(40.056816,116.308352),newlatlng(40.057997,116.307725),newlatlng(40.058022,116.307693),newlatlng(40.058029,116.307590),newlatlng(40.057913,116.307119),newlatlng(40.057850,116.306945),newlatlng(40.057756,116.306915),newlatlng(40.057225,116.307164),newlatlng(40.056134,116.307546),newlatlng(40.055879,116.307636),newlatlng(40.055826,116.307697),};/*** 每个元素对应一个轨迹点的颜色* 注:轨迹点和颜色的数量必须保持一致*/privatestatic final int[] arrcolor =newint[]{0xaa0000ff,0xaa00ff00,0xaaff0000,0xaa0000ff,0xaa00ff00,0xaaff0000,0xaa0000ff,0xaa00ff00,0xaaff0000,0xaa0000ff,0xaa00ff00,0xaaff0000,0xaa0000ff,0xaa0000ff,0xaa00ff00,0xaaff0000,};
效果如图:
动态轨迹支持轨迹线的发光效果,开发者可通过traceoptions的来settrackbloom方法来开启,并可通过setbloomspeed来控制轨迹的发光宽度。
代码如下:
/*** 设置轨迹线发光* @param istrackbloom* @return*/publictraceoptionssettrackbloom(boolean istrackbloom)/*** 轨迹发光参数 (1.0f~10.0f 默认5.0f)* @param bloomspeed* @return*/publictraceoptionssetbloomspeed(float bloomspeed)
效果如图:
开发者可通过traceoptions的来icon3d方法来开启。目前支持.obj和.gltf的模型。同时,.gltf模型支持播放动画。
代码如下:
traceoptions traceoptions =inittraceoptions();...traceoptions.setpointmove(true);traceoptions.icon3d(init3dmodeloptions());/*** 配置3d模型参数.暂时只支持.obj/.gltf格式*/privatebm3dmodeloptionsinit3dmodeloptions(){//3d模型轨迹点只支持如下设置bm3dmodeloptions bm3dmodeloptions =newbm3dmodeloptions();///路径和名称为必填项bm3dmodeloptions.setmodelpath(parentpath "/model3d");bm3dmodeloptions.setscale(20.0f);// bm3dmodeloptions.setzoomfixed(false);//文件后缀名也需要一起传入bm3dmodeloptions.setmodelname("cesiumman.gltf");bm3dmodeloptions.setbm3dmodeltype(bm3dmodeloptions.bm3dmodeltype.bm3dmodeltypegltf);bm3dmodeloptions.setskeletonanimationenable(true);bm3dmodeloptions.animationspeed(2.0f);bm3dmodeloptions.animationrepeatcount(0);//调整模型位置bm3dmodeloptions.setyawaxis(bm3dmodeloptions.modelyawaxis.z);bm3dmodeloptions.setrotate(0f,0f,0.0f);bm3dmodeloptions.setoffset(0.0f,0.0f,-100.0f);return bm3dmodeloptions;}
效果如下:
开发者可以通过traceoverlay的pause()方法暂停轨迹,resume()方法恢复轨迹播放
效果如下:
上一篇
下一篇
本篇文章对您是否有帮助?