百度地图中的controller

来源:互联网 发布:网络设备网管软件 编辑:程序博客网 时间:2024/05/19 22:27
                  百度地图中的controller
MapController类的实例化是通过MapView类中的 getController( )方法
例如:Mapcontroller mapcontroller =MapView类的对象 . getController( ); 
这个Controller就是一个控制器,可以实现放大,缩小,平移,旋转,倾斜五种
功能。
1.放大
非常简单,直接用Controller的方法
    setZoomIn() 
mapcontroller.zoomIn();
2.缩小
同上所述,依然很简单,直接调用Controller的方法
seZoomOut()
mapcontroller.zoomOut();
3.平移
之前需要定义一个点GeoPoint (int(X*1E6),int(Y*1E6));
       X,Y是经纬度 (精确到小数点后6位)。
GeoPoint point = new GeoPoint (int(X*1E6),int(Y*1E6));
4.旋转
旋转之前需要使用int rotation=MapView.getRotation( );
这个rotation就是当前的度数,之后我们应该做一个递增,就是
totation+=30;这样写出来每一次都会旋转30度
5.倾斜
做倾斜操作之前也是要先获得当前的倾斜度,使用方法依然是
getOverLooking( )方法,之后在做递减即可。


以上所列举的5点内容可以用switch case语句实现,也可以用if else 语句
实现,比如如下使用if else方法,再加上按键输入来实现:

onKeyDown( )方法就是针对按键这个事件所产生的方法

public Boolean onKeyDown(int KeyCode,KeyEvent event)
if    (KeyCode==KeyEvent.KEYCODE_1)//KeyEvent是类,KEYCODE_1是一个常量
mapcontrollor.setzoomIn();
else if(KeyCode==KeyEvent.KEYCODE_2)
mapcontrollor.setzoomOut();
else if(KeyCode==KeyEvent.KEYCODE_3)
{mapcontroller.animateTo(point);
//Log.i(ACTIVITY_SERVICE, "one");
}
else if(KeyCode==KeyEvent.KEYCODE_4)
  int rotation =mapcontrollor.getRotation();
rotation+=5;
mapcontrollor.setRotation();
else if(KeyCode==KeyEvent.KEYCODE_5)
int overlooking=mapcontrollor.getOverLooking(); 
overlooking-=5;
mapcontrollor.setOverLooking();
return true;


然后我们就可以在onCreate onResume等周期中将onKeyDown()调用即可
0 0
原创粉丝点击