地图怎么可以缺少指示图标呢?实现这个功能是通过override default Overlay来实现的。
基于上篇的CityMap,在MapView中获取一个OverlayController:
java 代码
- OverlayController oc = myMapView.createOverlayController();
然后加入你自己的Overlay实现
java 代码
- public class KusoIconOverlay extends Overlay {
基本上你要实现Overlay里面draw()method:
java 代码
- //既然是手机app,就不强调OO了。。。
- Bitmap bitmap;
- Point p;
- @Override
- public void draw(Canvas canvas, PixelCalculator calculator, boolean shadow) {
- super.draw(canvas, calculator, shadow);
- int[] xyCoordinates = new int[2];
- calculator.getPointXY(p, xyCoordinates);
- canvas.drawBitmap(bitmap, xyCoordinates[0], xyCoordinates[1], new Paint());
- }
通过PixelCalculator把经度维度转换成地图上面的XY坐标。
通过canvas来画个bitmap,也就是偶华丽的kuso头像。。。
回到MapView中,创建kuso overlay:
java 代码
- KusoIconOverlay overlay = new KusoIconOverlay();
- overlay.bitmap = kuso;
- overlay.p = p;
在先前得到的OverlayController中加入kuso overlay:
java 代码
- oc.add(overlay, true);
这样就大功告成了!
接下来的挑战是实现模拟GPS移动。。。让偶的头像真正的动起了。。。