百度地图之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();
			}
			
		});

效果图如:百度地图之3D图层_第1张图片                            

       

我的新浪博客: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


你可能感兴趣的:(android,android,百度,手机,百度地图,PopupWindo)