毕业论文是基于百度地图 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