@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); } }