百度地图之3D图层

毕业论文是基于百度地图 android SDK v2.1.1,这个是目前百度提供最新的。这几天有空会陆续贴出,这里只讲一些应用功能的开发,至于如何获取百度KEY或实现地图层等就不说了,大家看百度官网的DEMO就可以了。今天先讲一下图层的状态变化。

1、先定义一下图层样式

          //定义图层样式
        mMapView = (MapView)findViewById(R.id.mylocate_bmapView);
        mMapView.setBuiltInZoomControls(true);//可缩放
        mMapView.setLongClickable(true);//可长按
          //定义图层控制样式
        mMapController=mMapView.getController();
        GeoPoint point =new GeoPoint((int)(25.800* 1E6),(int)(114.894* 1E6));//初始的地图中心为赣南师范学院
    	mMapController.setCenter(point); //设置地图中心点
    	mMapController.setZoom(17);      //设置地图zoom级别
    	mMapController.enableClick(true);//设置可单击

2、显示卫星图

mMapView.setSatellite(true);//打开卫星图

3、显示3D图(其实就是设置俯视角度,这个范围是-45至0)

mMapView.getController().setOverlooking(-45);//打开3D图

4、下面我把我工程程序中的代码段贴出来,参考一下,单击图层按钮弹出窗体:选择图层。

4.1 定义一个窗体:

// 创建PopupWindow对象  
        LayoutInflater inflater = LayoutInflater.from(this);  
        View view = inflater.inflate(R.layout.popmenu_location, null); // 引入窗口配置文件   
        pop = new PopupWindow(view, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, false);  
        ColorDrawable cd = new ColorDrawable(-0000);
        pop.setBackgroundDrawable(cd);//设置窗体的背景,这样窗体外单击触摸才会消失
        pop.setFocusable(true);       //窗体获得焦点,否则无法点击  
        pop.setOutsideTouchable(true);//窗体外单击触摸消失
至于layout中popmenu_location.xml,就大家自已写一个吧,就显示三张图片

4.2 定义各个按钮的单击事件

  //选择图层单击事件
    	layer.setOnClickListener(new OnClickListener(){
			@Override //弹出图层窗体
			public void onClick(View arg0) { 
				pop.showAsDropDown(layer, 160, -10);
				Log.i(TAG,"layer.setOnClick");
				popisshow=true;
			}
    	});
    	plain=(ImageButton)view.findViewById(R.id.plain);        //定义平面图组件
    	satellite=(ImageButton)view.findViewById(R.id.satellite);//定义卫星图组件
    	three_d=(ImageButton)view.findViewById(R.id.three_d);    //定义3D图组件
    	//平面图单击事件
    	plain.setOnClickListener(new OnClickListener(){
    		@Override
			public void onClick(View v) {
				Log.i(TAG,"plain clicked");
				if(satelliteisshow==true ||threedisshow==true){
					mMapView.setSatellite(false);//关闭卫星图
					Log.i(TAG,"satellite is closed!");
					satelliteisshow=false;
					satellite.setBackgroundResource(R.drawable.main_map_mode_satellite_normal);
					
					mMapView.getController().setOverlooking(0);//关闭3D图
					Log.i(TAG,"three_d is closed!");
					threedisshow=false;
					three_d.setBackgroundResource(R.drawable.main_map_mode_3d_normal);
				}
				plain.setBackgroundResource(R.drawable.main_map_mode_plain_selected);
				//pop.dismiss();
			}
    		
    	});
    	//卫星图层单击事件
    	satellite.setOnClickListener(new OnClickListener(){
			@Override
			public void onClick(View v) {
				Log.i(TAG,"satellite clicked");
				if(satelliteisshow==false){
					mMapView.setSatellite(true);//打开卫星图
					Log.i(TAG,"satellite is showed!");
					satelliteisshow=true;
					plain.setBackgroundResource(R.drawable.main_map_mode_plain_normal);
					satellite.setBackgroundResource(R.drawable.main_map_mode_satellite_selected);
				}
				//pop.dismiss();
			}
    	});
    	//3D图层单击事件
		three_d.setOnClickListener( new OnClickListener(){
			@Override
			public void onClick(View v) {
				Log.i(TAG,"three_d clicked");
				if(threedisshow==false){
					mMapView.getController().setOverlooking(-45);//打开3D图
					Log.i(TAG,"three_d is showed!");
					threedisshow=true;
					plain.setBackgroundResource(R.drawable.main_map_mode_plain_normal);
					three_d.setBackgroundResource(R.drawable.main_map_mode_3d_selected);
				}
				//pop.dismiss();
			}
			
		});

效果图如:                            

       

我的新浪博客:http://blog.sina.com.cn/yanyuanfen09

安卓市场:http://apk.hiapk.com/html/2013/05/1468059.html?module=256&info=IWjtVg9cqVJLYg%3D%3D
N多市场:http://www.nduoa.com/apk/detail/553415

360手机助手:http://zhushou.360.cn/search/index/?kw=%E6%A0%A1%E5%9B%AD%E5%B0%8F%E5%8A%A9%E6%89%8B

百度应用:http://as.baidu.com/a/item?docid=3101724&pre=web_am_se

优亿市场(eoe):http://www.eoemarket.com/search/apps/?keyword=%E6%A0%A1%E5%9B%AD%E5%B0%8F%E5%8A%A9%E6%89%8B


  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Cesium是一个基于Web的地理数据可视化引擎,可以实现类似百度地图2D和3D小组件的功能。 首先,我们可以使用Cesium通过加载地图瓦片进行2D地图的展示。地图瓦片可以由百度地图提供的地图切片服务获得。使用Cesium提供的ImageryLayer可以将地图瓦片部署到地图上,并可以设置加载时的缩放级别、地图范围等参数。通过这种方式,我们可以在Cesium中实现类似百度地图的2D地图显示。 其次,Cesium提供了强大的3D地理数据可视化功能。我们可以将百度地图提供的地理数据转换为Cesium支持的数据格式,如GeoJSON或KML等。然后,使用Cesium的Entity和Primitive等功能可以将这些数据呈现在3D场景中。例如,我们可以将建筑物、道路等地理要素以3D模型或纹理贴图的形式展示出来,实现类似于百度地图3D视觉效果。同时,Cesium还支持添加图层叠加效果,可以将地形、影像等各种维度的地理数据叠加在一起展示,提供更丰富的地理信息。 除此之外,Cesium还提供了丰富的交互功能,如平移、缩放、旋转、视角切换等。这些功能可以让用户自由浏览地图,获取感兴趣的地理信息。同时,我们还可以通过添加标注、信息窗口等方式实现地点的查询和展示功能,使用户能够通过点击地图获取具体的地点信息。 综上所述,Cesium作为一个强大的地理可视化引擎,可以通过加载地图瓦片和支持的地理数据格式,实现类似于百度地图2D和3D小组件的功能。同时,通过丰富的交互和数据展示方式,能够提供更好的用户体验和地理信息的展示效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值