android地图sdk | 百度地图api sdk-凯发k8官方旗舰厅

浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。
绘制动态轨迹
下载开发文档

android 7.4.0 起支持动态轨迹绘制,开发者可以提供轨迹数据,来动态展示轨迹。支持监听轨迹绘制状态。

绘制动态轨迹
1、通过traceoptions类来设置轨迹的属性。

示例代码如下:

traceoptions traceoptions =newtraceoptions();
traceoptions.animationtime(5000);
traceoptions.animate(true);
traceoptions.animationtype(traceoptions.traceanimatetype.traceoverlayanimationeasingcurvelinear);
traceoptions.color(0xaaff0000);
traceoptions.width(10);
traceoptions.points(gettracelocation());
2、绘制动态轨迹并监听轨迹绘制状态。

示例代码如下:

mbaidumap.addtraceoverlay(traceoptions,newtraceanimationlistener(){
@override
publicvoidontraceanimationupdate(int percent){
// 轨迹动画更新进度回调
}
@override
publicvoidontraceupdateposition(latlng position){
// 轨迹动画更新的当前位置点回调
}
@override
publicvoidontraceanimationfinish(){
// 轨迹动画结束回调
}
});

绘制效果如图:

动态轨迹
3、绘制轨迹动画图标。

自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)方法才能看到轨迹动画图标
绘制效果如图:

4、渐变轨迹线

自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,
};

效果如图:

模拟轨迹点
5、轨迹线类发光效果

动态轨迹支持轨迹线的发光效果,开发者可通过traceoptions的来settrackbloom方法来开启,并可通过setbloomspeed来控制轨迹的发光宽度。
代码如下:

/**
* 设置轨迹线发光
* @param istrackbloom
* @return
*/
publictraceoptionssettrackbloom(boolean istrackbloom)
/**
* 轨迹发光参数 (1.0f~10.0f 默认5.0f)
* @param bloomspeed
* @return
*/
publictraceoptionssetbloomspeed(float bloomspeed)

效果如图:

轨迹线发光
6、动态轨迹终点支持使用模型

开发者可通过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;
}

效果如下:

7、动态轨迹支持暂停

开发者可以通过traceoverlay的pause()方法暂停轨迹,resume()方法恢复轨迹播放

效果如下:

上一篇

绘制3d模型

下一篇

绘制3d动态轨迹

本篇文章对您是否有帮助?

网站地图