android地图旋转监听,android百度地图:地图缩放、旋转、俯视角度以及屏幕像素与经纬度的转换Projection...
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...相关推荐
- android地图旋转监听,android 百度地图 监听事件
1.一般事件监听 在初始化地图Activity时,注册一般事件监听,并实现MKGeneralListener的接口处理相应事件,将mBMapMan.init("我的Key", nu ...
- android 键盘隐藏监听,Android监听键盘显示和隐藏
问题概况:横板cocos2dx游戏,点击输入框弹出键盘时,界面要求跟随网上平易,不能挡住输入框.这种问题只出现在非全屏键盘到情况下. 方案1:mainActivity重写onconfiguration ...
- android 界面切换监听,Android切换页面--setContentView
setContentView 一般切换页面,通过Intent,startActivity可以实现,但系统创建Activity是非常耗时的,如果对切换画面时间有要求,只能用setContentView在 ...
- android edittext 光标监听,Android EditText监听器,用于光标位置更改
我有一个EditText对话框. EditText在创建时已经填充.当用户将光标放置在文本的特定部分或其附近时,Toast将弹出. 我的问题是监听光标位置的变化.另一个post提出同样的问题,并且接受 ...
- android底层按键监听,Android应用中Back键的监听及处理实例
MainActivity如下: package cn.testnbackpressed; import android.os.Bundle; import android.view.KeyEvent; ...
- android edittext的监听,android editText 监听事件
在软键盘中注意 在监听的 edittext中 使用android:imeOptions属性的时候,一定要对EditText设置 android:inputType 或者 设置 android:sing ...
- android触摸滑动监听,Android 滑动监听的实例详解
Android 滑动监听的实例详解 摘要: ScollBy,ScollTo是对内容的移动,view.ScollyBy是对view的内容的移动 view,ScollTo是对内容的移动(移动到指定位置), ...
- android gridview滑动监听,Android GridView 滑动条设置一直显示状态(推荐)
Android GridView 滑动条设置一直显示状态(推荐) 模拟GridView控件: android:id="@+id/picture_grid" android:layo ...
- android view可见性监听,Android检测View的可见性
Android中我们经常会用到判断View的可见行,当然有人会说View.VISIBLE就可以了,但是有时候这个真是满足不了,有时候我们为了优化,在View滚到得不可见的时候或者由于滚到只显示了部分内 ...
最新文章
- 刚入行的软件测试工程师如何自学软件测试?0 基础该怎么学习软件测试
- 【⛔拒绝内卷,学会shell,走遍天下都不怕⛔】shell编程基础
- HDU 1874 SPFA算法Dijkstra算法
- mysql添加映射模块_iis7.5中让html与shtml一样支持include功能(添加模块映射)
- react控制组件中元素_React Interview问题:浏览器,组件或元素中呈现了什么?
- map集合——阅读理解(洛谷 P3879)
- 使用ASP的优势和劣势
- 来看一下:构造函数的小秘密详解
- (day 42 - 字符翻转 ) 剑指 Offer 58 - II. 左旋转字符串
- elasticsearch与kibana踩过的坑
- 电脑输入法变成繁体中文如何改回来
- 关于 Windows 不断报 脚本错误 当前页面的脚本发生错误 警告窗口的解决办法
- Euclid算法和拓展欧几里得算法
- php创建菜单_php实现微信公众号创建自定义菜单
- 12306用户名密码泄露,这回貌似是躺枪
- 【xyplorer】通过右键新建word文件
- 无法访问此网站 localhost 拒绝了我们的连接请求。
- 计算机每年学硕和专硕数量,重磅:2019年研究生招生数据报告,专硕报考人数超过学硕?...
- 计算机无法访问苹果相册,iPhone与电脑连接后找不到照片怎么办?掌握这三个技巧,烦恼问题轻松解决!...
- 为什么E-GREEDY算法中e越小,性能会更好
热门文章
- 【每日早报】2019/07/26
- C语言实现:分钟转换为时、分
- 学习笔记(01):程序员的数学:线性代数-矩阵的加法、乘法、转置
- 六年前埋雷 佛山照明悲剧隐现外资控股阳谋--宇通客车可参考
- html中斜体样式怎么写,CSS font-style斜体字体倾斜体样式
- 当无法打开eclipse可能的解决方法
- Paxos Made Simple【中文翻译注解】
- 用Echarts2画饼图配置 itemStyle
- mysql优化type要到什么程度,mysql优化explan关键字之type
- Java游戏开局农民_我的世界:开局5钻石!你的java版种子到了,请查收