@Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    DemoApplication app = (DemoApplication) this.getApplication();
    if (app.mBMapManager == null) {
      app.mBMapManager = new BMapManager(this);
      app.mBMapManager.init(DemoApplication.strKey, new DemoApplication.MyGeneralListener());
    }
    setContentView(R.layout.activity_itemizedoverlay);
    mMapView = (MapView) findViewById(R.id.bmapView);
    mMapController = mMapView.getController();
    initMapView();
    mMapView.getController().setZoom(13);
    mMapView.getController().enableClick(true);
    mMapView.setBuiltInZoomControls(true);
    testItemButton = (Button) findViewById(R.id.button1);
    removeItemButton = (Button) findViewById(R.id.button2);
    removeAllItemButton = (Button) findViewById(R.id.button3);

    Drawable marker = ItemizedOverlayDemo.this.getResources().getDrawable(R.drawable.icon_marka);
    mMapView.getOverlays().clear();
    ov = new OverlayTest(marker, this, mMapView);
    mMapView.getOverlays().add(ov);

    OnClickListener clickListener =
        new OnClickListener() {
          public void onClick(View v) {
            testItemClick();
          }
        };
    OnClickListener removeListener =
        new OnClickListener() {
          public void onClick(View v) {
            testRemoveItemClick();
          }
        };
    OnClickListener removeAllListener =
        new OnClickListener() {
          public void onClick(View v) {
            testRemoveAllItemClick();
          }
        };

    testItemButton.setOnClickListener(clickListener);
    removeItemButton.setOnClickListener(removeListener);
    removeAllItemButton.setOnClickListener(removeAllListener);
    mMapListener =
        new MKMapViewListener() {

          @Override
          public void onMapMoveFinish() {
            // TODO Auto-generated method stub

          }

          @Override
          public void onClickMapPoi(MapPoi mapPoiInfo) {
            // TODO Auto-generated method stub
            String title = "";
            if (mapPoiInfo != null) {
              title = mapPoiInfo.strText;
              Toast.makeText(ItemizedOverlayDemo.this, title, Toast.LENGTH_SHORT).show();
            }
          }

          @Override
          public void onGetCurrentMap(Bitmap b) {}

          @Override
          public void onMapAnimationFinish() {
            // TODO Auto-generated method stub

          }
        };
    mMapView.regMapViewListener(DemoApplication.getInstance().mBMapManager, mMapListener);

    res.add(getResources().getDrawable(R.drawable.icon_marka));
    res.add(getResources().getDrawable(R.drawable.icon_markb));
    res.add(getResources().getDrawable(R.drawable.icon_markc));
    res.add(getResources().getDrawable(R.drawable.icon_markd));
    res.add(getResources().getDrawable(R.drawable.icon_markf));
    res.add(getResources().getDrawable(R.drawable.icon_markg));
    res.add(getResources().getDrawable(R.drawable.icon_markh));
    res.add(getResources().getDrawable(R.drawable.icon_marki));

    // overlay 数量
    int iSize = 9;
    double pi = 3.1415926;
    // overlay半径
    int r = 50000;
    // 准备overlay 数据
    for (int i = 0; i < iSize; i++) {
      int lat = (int) (cLat + r * Math.cos(2 * i * pi / iSize));
      int lon = (int) (cLon + r * Math.sin(2 * i * pi / iSize));
      OverlayItem item = new OverlayItem(new GeoPoint(lat, lon), "item" + i, "item" + i);
      item.setMarker(res.get(i % (res.size())));
      mGeoList.add(item);
    }
  }