Android中Map应用开发进阶
来源:互联网 发布:ajax后台获取前端数据 编辑:程序博客网 时间:2024/06/07 07:08
最近在写一个GoogleMap的应用,发现网上关于GoogleMap的文章大多数只是简单的设置MapView教程,实际上有关Map应用还有很多可以挖掘。
很常用的是在地图上设置很多GeoPoint,然后用图片标识出来,这个也有专门的一个overlay可以做,叫做ItemizedOverlay。它保管着许多OverlayItem,每一个对应一个GeoPoint。你可以重写这个类,将drawable的图标标志传给它,重写createItem方法(这好像AdapterView的方式)和size方法。注意点如下:
1. 你可以写一个添加新标志的方法,但是注意每次添加数据后,在其他代码运行之前要马上运行populate()方法。
或者你可以在构造方法当中将所有的OverlayItem加入ItemizedOverlay维护的list中,然后运行populate()方法。
2. 重写onTap(int i)方法,注意参数是(int i)的那个,这样你就可以在点击某一标志时得到响应,比如弹出气泡等等。
比如最常见的是设置自己的位置,通常要手动去拿GPS服务然后调getLastKnownLocation等等,其实完全不用写这么多代码,maps包里有一个overlay叫MyLocationOverLay,专门用来显示当前位置,默认的效果不错,自己也可以override它的onLocationChanged,drawMyLocation等方法实现自定义,很方便。需要注意的是,当重载了draw方法后,默认的图标显示不出来了,即使没有做任何修改。初始化代码如下:
MyLocationOverlay myLocationOverlay = new SelfLocationOverlay(
this, mapView);
myLocationOverlay.enableMyLocation();
myLocationOverlay.disableCompass();
mapView.getOverlays().add(myLocationOverlay);
以上两种overlay都是maps.jar里面的,很实用很方便,应用的实际代码网上都有,就不贴出来了。需要说明的是使用的时候需要在androidmanifest.xml中加上<uses-library android:name="com.google.android.maps" />。
另外有一个常见的问题,就是AVD开启不了GPS,DDMS向模拟器发送gps时候AVD会重启,解决方法如下,请从上到下尝试:
1. 在AVD的setting中打开GPS,或者开启AVD自身的map,看状态栏是否开启了GPS图标。
2. 新建AVD,在hardware中加上GPS support。
3. 使用2.1的platform而不是2.2,2.3。
今天就收获这么多,跟大家分享一下!
- Android中Map应用开发进阶
- 在Eclipse中开发android的google map应用
- Android开发进阶&优秀开源应用
- Android Google Map应用开发详解
- 开发基于 Google Map 的 Android 应用
- 使用Android Google Map开发LBS应用
- Android Google Map 应用开发小议
- 开发基于 Google Map 的 Android 应用
- 开发基于Google Map的Android应用
- 开发基于Google Map的Android应用
- 开发基于 Google Map 的 Android 应用
- android应用类开发小结--android google map小应用
- CloudTest进阶开发应用
- Android应用开发进阶篇-场景文字识别
- Android技术专题]应用开发进阶必经之路之性能优化
- Android开发中,google map 获取google map密钥
- [转]Android开发中调用Google Map或Baidu Map
- Android Map API与Android Location API 开发应用
- android课程笔记之Hello Android!
- oracle 分析函数之 over 用法
- 软考复习体会
- OpenCV学习笔记(十四)——图像结构分析与形状描述ImgProc
- 用PB内部函数更改PB自带Toolbar的字体
- Android中Map应用开发进阶
- 对构造器的认识
- GetWindowRect与GetClientRect
- powerdesigner 常用快捷键
- IO(Input Output)流
- 数据结构:队列的实现
- iTextSharp读取PDF(二)
- linux编码查看转换:vim-enca-iconv-enconv-convmv
- Unix/Linux C++应用开发-Linux下目录管理