在android地图开发过程中,我们常常会有这样一种需求:当点击或长按地图时,然后做一些事。比如:当我长按地图某一处时,为该处添加给图标
说下思路,首先创建一个图层,该图层继承overlay,然后在该图层中实现onLongPress接口,然后再把该图层添加到mapview中。
好了废话到此为止了,先来个效果图吧。当长按地图时添加一个marker:
现在说说代码吧,创建一个层叫MapEventsOverlay:
- private class MapEventsOverlay extends Overlay{
- @Override
- public boolean onLongPress(MotionEvent e,MapView mv){
- Projection proj = mapView.getProjection();//获得投影对象
- GeoPoint gp = (GeoPoint) proj.fromPixels(e.getX(), e.getY());//坐标转换
- /**********自己写你要做的事咯,自己YY吧***********/
- mapView.invalidate();//重绘地图
- return true;
- }
- @Override
- protected void draw(Canvas c, MapView osmv, boolean shadow) {
- }
- public MapEventsOverlay(Context ctx) {
- super(ctx);
- }
- }
然后再把该层添加到mapview中:
MapEventsOverlay mo = new MapEventsOverlay(context);
mapView.getOverlayManager().add(mo);
好了,这就完事了
转载自:http://blog.youkuaiyun.com/zfz1214/article/details/8855263