WEB开发网      婵犻潧鍊婚弲顐︽偟椤栨稓闄勯柦妯侯槸閻庤霉濠婂骸浜剧紒杈ㄥ笚閹峰懘鎮╅崹顐ゆ殸婵炴垶鎸撮崑鎾趁归悩鐑橆棄闁搞劌瀛╃粋宥夘敃閿濆柊锕傛煙鐎涙ê鐏f繝濠冨灴閹啴宕熼鍡╀紘婵炲濮惧Λ鍕叏閳哄懎绀夋繛鎴濈-楠炪垽鎮归崶褍妲婚柛銊ュ缁傚秹鏁撻敓锟� ---闂佹寧娲╅幏锟�
开发学院手机开发Android 开发 Android地图上添加图层并可监听图层点击事件 阅读

Android地图上添加图层并可监听图层点击事件

 2012-07-04 17:49:16 来源:WEB开发网 闂侀潧妫撮幏锟�闂佸憡鍨电换鎰版儍椤掑倵鍋撳☉娆嶄沪缂傚稄鎷�婵犫拃鍛粶闁靛洤娲ㄩ埀顒佺⊕閵囩偟绱為敓锟�闂侀潧妫撮幏锟�  闂佺ǹ绻楀▍鏇㈠极閻愬灚瀚梺鍨儏閳ь剙绉归弻銊р偓闈涙啞閻h京鈧敻鍋婇崰鏍х暦閿燂拷
核心提示://绘画需要显示的文本信息 canvas.drawText(locationName, left_point_x+10, bottom_right_y-15, paint); } } @Override public boolean onTap(GeoPoint p_geopoint,MapView ma
      //绘画需要显示的文本信息  
       canvas.drawText(locationName, left_point_x+10, bottom_right_y-15, paint);
    }
   }
  
   @Override
   public boolean onTap(GeoPoint p_geopoint,MapView mapView){    
      Point point = new Point();
      Projection projection = mapView.getProjection();
      projection.toPixels(p_geopoint, point);
    
     int x = point.x;
      int y = point.y;
    //判断当前点击的坐标位置是否在标记图层范围内,如果在则通知外部进行相应操作。
     if((x >= start_x && x <= end_x) && (y>=start_y && y<=end_y)){
         //System.out.println("onTap");
        if(onClickListener!=null){
          onClickListener.OnItemClick(data);
        }
     }
   
    return super.onTap(p_geopoint, mapView);
   }
  
   }
自定义的接口对象
public interface OnMarkItemClickListener {
   public void OnItemClick(Bundle bundle);
}
在MapActivity中添加图层并监听图层是否被单击:
   Bundle data = new Bundle();
   data.putString("locationName",info.name);
   data.putString("locationAddress", info.address);
   Message message = myHandler.obtainMessage(2,info.pt);
   message.setData(data);
   message.sendToTarget();
使用Bundle和Handle来传递数据和添加标记图层
在自定义Handler子类中,向地图添加图层:
    MarkItemOverlay overlay = new MarkItemOverlay((GeoPoint)msg.obj,msg.getData(), onMarkItemClickListener);
    mvSearch.getOverlays().add(overlay);
   //在UI线程中调用invalidate方法刷新界面
   mvSearch.invalidate();

Tags:Android 地图 添加

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接