百度地图SDK for Android【Demo点击屏幕获取地理坐标】
2013-03-07 16:20
459 查看
通过手指点击屏幕从而获取所点击点的地理坐标是一个在实际应用中较为常见的功能。下面,我将为大家介绍如何实现此功能。
基本原理:通过点击获取屏幕坐标,利用坐标转换的接口,把屏幕坐标转换为地理坐标。
有了以上的基本原理,我们就可以去具体实现了,步骤如下:
第一步,集成MapView,重写onTouchEvent方法。代码如下:
第二步,在布局文件中添加上一步自己定义的MapView。代码如下:
第三步,在主类中定义并初始化MyMapView对象,运行程序,点击屏幕就可以获取点击点的地理坐标了。
注意事项:
1 在自定义并继承MapView的时候需要注意几个几个构造方法,特别是public MyMapView(Context context, AttributeSet set),一定要有,不然会报错。
2 布局文件添加的MapView不再是我们百度为大家提供的MapView,应该添加自定义的那个MyMapView(否则有什么意义呢?)。
3 在使用setContentView方法之前一定要先初始化BMapManager,否则会报错,这个在官方开发指南及本博客的相关章节都有强调,可是还有很多不细心的开发者犯这个小错误。
最后希望通过我们大家共同的努力使百度地图SDK越来越好!
更多详细信息请登录百度地图API官方网站:http://developer.baidu.com/map/
百度地图API论坛:http://bbs.lbsyun.baidu.com/
基本原理:通过点击获取屏幕坐标,利用坐标转换的接口,把屏幕坐标转换为地理坐标。
有了以上的基本原理,我们就可以去具体实现了,步骤如下:
第一步,集成MapView,重写onTouchEvent方法。代码如下:
public class MyMapView extends MapView { public MyMapView(Context context) { super(context); } public MyMapView(Context context, AttributeSet set) { super(context, set); } public MyMapView(Context context, AttributeSet set, int i) { super(context, set, i); } @Override public boolean onTouchEvent(MotionEvent arg0) { // TODO Auto-generated method stub int x = (int)arg0.getX(); int y = (int)arg0.getY(); GeoPoint geoPoint = this.getProjection().fromPixels(x, y); int xx = geoPoint.getLongitudeE6(); int yy = geoPoint.getLatitudeE6(); Log.d("xxxxxxxxxxx", Integer.toString(xx)); Log.d("yyyyyyyyyyy", Integer.toString(yy)); return super.onTouchEvent(arg0); } }
第二步,在布局文件中添加上一步自己定义的MapView。代码如下:
<com.baidumap.basemap.MyMapView android:id="@+id/bmapsView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_below="@+id/button1" android:clickable="true" />
第三步,在主类中定义并初始化MyMapView对象,运行程序,点击屏幕就可以获取点击点的地理坐标了。
注意事项:
1 在自定义并继承MapView的时候需要注意几个几个构造方法,特别是public MyMapView(Context context, AttributeSet set),一定要有,不然会报错。
2 布局文件添加的MapView不再是我们百度为大家提供的MapView,应该添加自定义的那个MyMapView(否则有什么意义呢?)。
3 在使用setContentView方法之前一定要先初始化BMapManager,否则会报错,这个在官方开发指南及本博客的相关章节都有强调,可是还有很多不细心的开发者犯这个小错误。
最后希望通过我们大家共同的努力使百度地图SDK越来越好!
更多详细信息请登录百度地图API官方网站:http://developer.baidu.com/map/
百度地图API论坛:http://bbs.lbsyun.baidu.com/
相关文章推荐
- 百度地图SDK for Android【Demo点击屏幕获取地理坐标】
- 安卓开发获取用户点击屏幕坐标
- iOS开发- 根据表格点击tableviewCell获取在当前屏幕中的坐标值
- 获取鼠标点击的屏幕位置坐标
- ARKit 根据手指点击到屏幕上得点 获取真实空间中的坐标
- Android利用adb shell命令获取屏幕的点击坐标之横屏竖屏的区别
- layer弹出ifream,点击按钮把子页面数据传到父页面,对接高德地图API接口,获取地理位置坐标
- Swift - 获取屏幕点击坐标下所有对象(SpriteKit游戏开发)
- Google Map 2.0 获取当前倍率和当前点击所在地理坐标
- VC 获取鼠标 点击时的屏幕坐标
- 【iOS学习笔记】获取点击屏幕坐标
- Google Map 2.0 获取当前倍率和当前点击所在地理坐标
- Unity中UGUI中获取鼠标点击位置以及UI物体的屏幕坐标
- 安卓开发获取用户点击屏幕坐标
- Android获取点击屏幕的位置坐标
- Android获取点击屏幕的位置坐标
- Unity3d通过射线来实现点击地面,获取点击坐标
- android之View坐标系(view获取自身坐标的方法和点击事件中坐标的获取)
- C#中使用GetCursorPos获取屏幕坐标
- JavaScript 获取鼠标点击位置坐标