自v7.5.4起,百度地图SDK新增3D建筑物动画功能,支持开发者对特定建筑物进行单体动画控制。
自v7.5.7起,百度地图SDK新增3D建筑物的楼层动画功能,支持开发者自定义建筑物中楼层的绘制效果,包括:楼层高度、楼层颜色、楼层纹理、楼层动画类型等。
开发者通过BuildingSearchOption检索指定坐标点对应的建筑物楼块信息,根据楼块信息创建建筑物选项BuildingOptions,开发者也可通过BuildingOptions设置3D建筑物的属性,然后将3D建筑物绘制到地图上。
开发者可设置BaiduMap::setOn3DBuildingListener(Building3DListener listener)方法,用以监听建筑物楼层动画结束回调消息。 绘制BuildingOptions,并监听楼层动画的代码如下:
// 3D建筑物对象Building mBuildingPrism;// 创建检索建筑物的选项BuildingSearchOption buildingSearchOption = new BuildingSearchOption();// 设置检索的坐标点buildingSearchOption.setLatLng(requestLatlng);// 创建检索建筑物的对象mBuildingSearch = BuildingSearch.newInstance();// 开始检索mBuildingSearch.requestBuilding(buildingSearchOption);// 在检索成功的回调中绘制建筑物mBuildingSearch.setOnGetBuildingSearchResultListener(new OnGetBuildingSearchResultListener() {@Overridepublic void onGetBuildingResult(BuildingResult result) {if (null == result || result.error != SearchResult.ERRORNO.NO_ERROR) {return;}// 获取建筑物的各个楼面for (int i = 0; i < result.getBuildingList().size(); i++) {BuildingInfo buildingInfo = result.getBuildingList().get(i);// 创建3D建筑物选项BuildingOptions buildingOptions = new BuildingOptions();// 设置建筑物信息buildingOptions.setBuildingInfo(buildingInfo);// 设置建筑物侧面颜色buildingOptions.setSideFaceColor(0xAAFF0000);// 设置建筑物顶部颜色buildingOptions.setTopFaceColor(0xAA00FF00);// 设置楼层动画类型(慢速、快速、正常)buildingOptions.setBuildingFloorAnimateType(Prism.AnimateType.AnimateSlow);// 设置楼层初始高度buildingOptions.setFloorHeight(buildingInfo.getHeight());buildingOptions.setFloorColor(0xFF0000AA);// 设置是否打开建筑物立楼动画buildingOptions.setAnimation(true);// 设置建筑物开始显示层级buildingOptions.setShowLevel(16);// 向地图添加3D建筑物mBuildingPrism = (Building) mBaiduMap.addOverlay(buildingOptions);}// 设置楼层动画监听mBaiduMap.setOn3DBuildingListener(new Building3DListener() {@Overridepublic void onBuildingFloorAnimationStop(Building buildings) {Log.d("Building3DPrismDemo ", "setPrismCallBack() ::onBuildingFloorAnimationStop");}});}});
Building的属性如下:
属性名 | 备注 |
---|---|
buildingInfo | 建筑物楼块信息 |
floorHeight | 楼层高度 |
floorColor | 楼层颜色 |
floorSideTextureImage | 楼层纹理 |
showLevel | 建筑物显示的层级 |
isAnimation | 建筑物是否有生长动画 |
效果如下:
上一篇
下一篇
本篇文章对您是否有帮助?