MapControlDemo.java

通过MapController设置缩放、旋转、俯视角度private void perfomZoom(){

EditText t = (EditText) findViewById(R.id.zoomlevel);

try{

float zoomLevel = Float.parseFloat(t.getText().toString());

mMapController.setZoom(zoomLevel);

}catch(NumberFormatException e){

Toast.makeText(this,

"请输入正确的缩放级别", Toast.LENGTH_SHORT)

.show();

}

}

/**

* 处理旋转

* 旋转角范围: -180 ~ 180 , 单位:度 逆时针旋转

*/

private void perfomRotate(){

EditText t = (EditText) findViewById(R.id.rotateangle);

try{

int rotateAngle = Integer.parseInt(t.getText().toString());

mMapController.setRotation(rotateAngle);

}catch(NumberFormatException e){

Toast.makeText(this,

"请输入正确的旋转角度", Toast.LENGTH_SHORT)

.show();

}

}

/**

* 处理俯视

* 俯角范围: -45 ~ 0 , 单位: 度

*/

private void perfomOverlook(){

EditText t = (EditText) findViewById(R.id.overlookangle);

try{

int overlookAngle = Integer.parseInt(t.getText().toString());

mMapController.setOverlooking(overlookAngle);

}catch(NumberFormatException e){

Toast.makeText(this,

"请输入正确的俯角", Toast.LENGTH_SHORT)

.show();

}

}

调用mapview.getCurrentMap()截图@Override

public void onGetCurrentMap(Bitmap b) {

/**

* 当调用过 mMapView.getCurrentMap()后,此回调会被触发

* 可在此保存截图至存储设备

*/

File file = new File("/mnt/sdcard/test.png");

FileOutputStream out;

try{

out = new FileOutputStream(file);

if(b.compress(Bitmap.CompressFormat.PNG, 70, out))

{

out.flush();

out.close();

}

Toast.makeText(MapControlDemo.this,

"屏幕截图成功,图片存在: "+file.toString(),

Toast.LENGTH_SHORT)

.show();

}

catch (FileNotFoundException e)

{

e.printStackTrace();

}

catch (IOException e)

{

e.printStackTrace();

}

}前面说过,只要调用mMapView.getCurrentMap() 就可触发MKMapViewListener的上述方法。

监听手势所在的屏幕坐标转换为经纬度listener = new OnTouchListener(){

@Override

public boolean onTouch(View arg0, MotionEvent arg1) {

/**

* Projection 用于将屏幕坐标转换为地理位置坐标

*/

int x = (int)arg1.getX();

int y = (int)arg1.getY();

currentPt = mMapView.getProjection().fromPixels(x , y);

updateMapState();

/**

* 传递点击事件给MapView,sdk会自己处理缩放,平移等手势操作

*/

return false;

}

};

mMapView.setOnTouchListener(listener);MapView调用getProjection返回的自然是Projection对象,Projection有3个方法:

1 GeoPoint fromPixels(int x, int y) 根据屏幕像素坐标返回GeoPoint对象。

2 Point toPixels(GeoPoint in, Point out)把给定的GeoPoint变换到当前MapView的屏幕像素坐标,Point out 是一个预先输入的对象,如         果为空,将返回一个新分配的像素点。(其实我对out的理解有些模糊,api里说的很不明确。不知道它的作用明确是什么,它与in的关系是什         么,与返回的Point对象有什么关系,在使用这个方法的时候是不是out的值默认为null)。根据我自己的代码的测试,out的值与输出数据并         无直接关系。可以在上述代码中添加以下代码验证我的结论:

Point point1 = new Point(200,900);

Point point= mMapView.getProjection().toPixels(p, point1);

Point point= mMapView.getProjection().toPixels(p, null);

System.out.println("point:"+point.x+","+point.y);

3 float metersToEquatorPixels(float meters)。该方法把以米为计量单位的距离(沿赤道)在当前缩放水平下转换到一个以像素(水平)为计量单位的距离。 在默认的Mercator投影变换下,对于给定的距离,当远离赤道时,变换后确切的像素数量会增加。 参数: meters - 以米为单位的距离 返回: 相对给定距离的像素数量。在当前的缩放水平,如果沿赤道测量,返回值可能是个近似值

android地图旋转监听,android百度地图:地图缩放、旋转、俯视角度以及屏幕像素与经纬度的转换Projection...相关推荐

  1. android地图旋转监听,android 百度地图  监听事件

    1.一般事件监听 在初始化地图Activity时,注册一般事件监听,并实现MKGeneralListener的接口处理相应事件,将mBMapMan.init("我的Key", nu ...

  2. android 键盘隐藏监听,Android监听键盘显示和隐藏

    问题概况:横板cocos2dx游戏,点击输入框弹出键盘时,界面要求跟随网上平易,不能挡住输入框.这种问题只出现在非全屏键盘到情况下. 方案1:mainActivity重写onconfiguration ...

  3. android 界面切换监听,Android切换页面--setContentView

    setContentView 一般切换页面,通过Intent,startActivity可以实现,但系统创建Activity是非常耗时的,如果对切换画面时间有要求,只能用setContentView在 ...

  4. android edittext 光标监听,Android EditText监听器,用于光标位置更改

    我有一个EditText对话框. EditText在创建时已经填充.当用户将光标放置在文本的特定部分或其附近时,Toast将弹出. 我的问题是监听光标位置的变化.另一个post提出同样的问题,并且接受 ...

  5. android底层按键监听,Android应用中Back键的监听及处理实例

    MainActivity如下: package cn.testnbackpressed; import android.os.Bundle; import android.view.KeyEvent; ...

  6. android edittext的监听,android editText 监听事件

    在软键盘中注意 在监听的 edittext中 使用android:imeOptions属性的时候,一定要对EditText设置 android:inputType 或者 设置 android:sing ...

  7. android触摸滑动监听,Android 滑动监听的实例详解

    Android 滑动监听的实例详解 摘要: ScollBy,ScollTo是对内容的移动,view.ScollyBy是对view的内容的移动 view,ScollTo是对内容的移动(移动到指定位置), ...

  8. android gridview滑动监听,Android GridView 滑动条设置一直显示状态(推荐)

    Android GridView 滑动条设置一直显示状态(推荐) 模拟GridView控件: android:id="@+id/picture_grid" android:layo ...

  9. android view可见性监听,Android检测View的可见性

    Android中我们经常会用到判断View的可见行,当然有人会说View.VISIBLE就可以了,但是有时候这个真是满足不了,有时候我们为了优化,在View滚到得不可见的时候或者由于滚到只显示了部分内 ...

最新文章

  1. 刚入行的软件测试工程师如何自学软件测试?0 基础该怎么学习软件测试
  2. 【⛔拒绝内卷,学会shell,走遍天下都不怕⛔】shell编程基础
  3. HDU 1874 SPFA算法Dijkstra算法
  4. mysql添加映射模块_iis7.5中让html与shtml一样支持include功能(添加模块映射)
  5. react控制组件中元素_React Interview问题:浏览器,组件或元素中呈现了什么?
  6. map集合——阅读理解(洛谷 P3879)
  7. 使用ASP的优势和劣势
  8. 来看一下:构造函数的小秘密详解
  9. (day 42 - 字符翻转 ) 剑指 Offer 58 - II. 左旋转字符串
  10. elasticsearch与kibana踩过的坑
  11. 电脑输入法变成繁体中文如何改回来
  12. 关于 Windows 不断报 脚本错误 当前页面的脚本发生错误 警告窗口的解决办法
  13. Euclid算法和拓展欧几里得算法
  14. php创建菜单_php实现微信公众号创建自定义菜单
  15. 12306用户名密码泄露,这回貌似是躺枪
  16. 【xyplorer】通过右键新建word文件
  17. 无法访问此网站 localhost 拒绝了我们的连接请求。
  18. 计算机每年学硕和专硕数量,重磅:2019年研究生招生数据报告,专硕报考人数超过学硕?...
  19. 计算机无法访问苹果相册,iPhone与电脑连接后找不到照片怎么办?掌握这三个技巧,烦恼问题轻松解决!...
  20. 为什么E-GREEDY算法中e越小,性能会更好

热门文章

  1. 【每日早报】2019/07/26
  2. C语言实现:分钟转换为时、分
  3. 学习笔记(01):程序员的数学:线性代数-矩阵的加法、乘法、转置
  4. 六年前埋雷 佛山照明悲剧隐现外资控股阳谋--宇通客车可参考
  5. html中斜体样式怎么写,CSS font-style斜体字体倾斜体样式
  6. 当无法打开eclipse可能的解决方法
  7. Paxos Made Simple【中文翻译注解】
  8. 用Echarts2画饼图配置 itemStyle
  9. mysql优化type要到什么程度,mysql优化explan关键字之type
  10. Java游戏开局农民_我的世界:开局5钻石!你的java版种子到了,请查收