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

浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。
绘制3d模型
下载开发文档
绘制3d模型简介

since 6.4.0起ios地图sdk支持3d模型(bmk3dmodeloverlay)绘制,用于在地图上展示3d模型,目前支持.obj .mtl文件格式和.gltf模型加载。since 6.5.7起ios地图sdk支持.gltf .bin模型加载,并支持动画播放参数控制。

3d模型绘制
1. 添加3d模型覆盖物数据
bmk3dmodeloption*option =[[bmk3dmodeloption alloc] init];
option.modelname= @"among_us";
option.scale=1;
option.modelpath=[nsstring stringwithformat:@"%@/model3d",[nsbundle mainbundle].bundlepath];
_modeloverlay =[bmk3dmodeloverlay modeloverlaywithcentercoordinate:cllocationcoordinate2dmake(39.914838,116.40299) option:option];
bmk3dmodeloption*option =[[bmk3dmodeloption alloc] init];
option.scale=100;
option.modelname= @"batman";
option.zoomfixed=yes;
option.modelpath=[nsstring stringwithformat:@"%@/model3d",[nsbundle mainbundle].bundlepath];
_modelbatmanoverlay =[bmk3dmodeloverlay modeloverlaywithcentercoordinate:cllocationcoordinate2dmake(39.914838,116.40499) option:option];
/**
向地图view添加overlay,需要实现bmkmapviewdelegate的-mapview:viewforoverlay:方法
来生成标注对应的view
@param overlay 要添加的overlay
*/
[_mapview addoverlays:@[self.modeloverlay, self.modelbatmanoverlay]];
2. 实现代理方法生成对应的view(bmk3dmodeloverlayview)
#pragma mark -bmkmapviewdelegate
/**
根据overlay生成对应的bmkoverlayview
@param mapview 地图view
@param overlay 指定的overlay
@return 生成的覆盖物view
*/
-(bmkoverlayview*)mapview:(bmkmapview*)mapview viewforoverlay:(id<bmkoverlay>)overlay {
if([overlay iskindofclass:[bmk3dmodeloverlayclass]]){
//初始化一个overlay并返回相应的bmk3dmodeloverlayview的实例
bmk3dmodeloverlayview*modeloverlayview =[[bmk3dmodeloverlayview alloc] initwith3dmodeloverlay:overlay];
return modeloverlayview;
}
return nil;
}
3. 动画控制
/// 以下只支持带有animations标签的gltf模型
/// 模型动画是否可用,默认为no:添加后不执行动画,值为yes时添加后立即按照配置参数执行动画,since 6.5.7
@property(nonatomic, assign)bool animationisenable;
/// 模型动画重复执行次数,默认0:动画将一直执行动画,since 6.5.7
@property(nonatomic, assign)nsinteger animationrepeatcount;
/// 当前模型动画索引值,since 6.5.7
@property(nonatomic, assign)nsinteger animationindex;
/// 模型动画倍速,默认:1.0,since 6.5.7
@property(nonatomic, assign)cgfloat animationspeed;
bmk3dmodeloption*option =[[bmk3dmodeloption alloc] init];
option.scale=2;
option.modelname= @"scenes";
option.type=bmk3dmodeltypegltf;
option.zoomfixed=yes;
option.rotatex=90;
option.animationisenable=yes;
option.animationindex=0;
option.animationspeed=1;
option.animationrepeatcount=0;
option.modelpath=[nsstring stringwithformat:@"%@/model3d",[nsbundle mainbundle].bundlepath];
4. 运行程序

效果如下:

上一篇

绘制海量点

下一篇

绘制动态轨迹

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

网站地图