package com.mutu.maplite; import java.util.ArrayList; import java.util.List; import com.android.gis.Workspace; import com.mutu.mapapi.api.IGeoPoint; import com.mutu.mapapi.events.MapListener; import com.mutu.mapapi.events.ScrollEvent; import com.mutu.mapapi.events.ZoomEvent; import com.mutu.mapapi.tileprovider.MapTileProviderBasic; import com.mutu.mapapi.tileprovider.tilesource.ITileSource; import com.mutu.mapapi.tileprovider.tilesource.TileSourceFactory; import com.mutu.mapapi.tileprovider.util.SimpleInvalidationHandler; import com.mutu.mapapi.tilesystem.MercatorTileSystem; import com.mutu.mapapi.tilesystem.TileSystem; import com.mutu.mapapi.tilesystem.TileSystemFactory; import com.mutu.mapapi.util.GeoPoint; import com.mutu.mapapi.views.MapView; import com.mutu.mapapi.views.overlay.DirectedLocationOverlay; import com.mutu.mapapi.views.overlay.ItemizedIconOverlay; import com.mutu.mapapi.views.overlay.MinimapOverlay; import com.mutu.mapapi.views.overlay.OverlayItem; import com.mutu.mapapi.views.overlay.ScaleBarOverlay; import com.mutu.mapapi.views.overlay.SimpleLocationOverlay; import com.mutu.mapapi.views.overlay.TilesOverlay; import com.mutu.mapapi.views.overlay.compass.CompassOverlay; import com.mutu.mapapi.views.overlay.compass.InternalCompassOrientationProvider; import com.mutu.mapapi.views.overlay.egis.EGISOverlay; import com.mutu.mapapi.views.overlay.mylocation.GpsMyLocationProvider; import com.mutu.mapapi.views.overlay.mylocation.MyLocationNewOverlay; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.graphics.Point; import android.graphics.drawable.Drawable; import android.util.DisplayMetrics; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListAdapter; import android.widget.ListView; import android.widget.AdapterView.OnItemClickListener; public class MainActivity extends Activity implements MapListener{ ListView mListView = null; String mStrDemos[] = { "MapActivity", "CompareActivity", // "PoiSearchDemo", // "RoutePlanDemo", // "Overlaytest", // "MyLocationDemo", // "GeoCoderDemo", // "OfflineDemo", // "BusLineSearchDemo", // "ReleaseEngine" }; Class<?> mActivities[] = { MapActivity.class, CompareActivity.class, // PoiSearch.class, // RoutePlan.class, // LocationOverlay.class, // MyLocation.class, // GeoCoder.class, // OfflineDemo.class, // BusLineSearch.class }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mListView = (ListView)findViewById(R.id.listView); List<String> data = new ArrayList<String>(); for (int i = 0; i < mStrDemos.length; i++) { data.add(mStrDemos[i]); } mListView.setAdapter((ListAdapter) new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,data)); mListView.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> arg0, View v, int index, long arg3) { onListItemClick(index); } }); // mapview1 = (MapView)findViewById(R.id.mapview1); // mapview1.setMultiTouchControls(true); // mapview1.setBuiltInZoomControls(true); // // mapview2 = (MapView)findViewById(R.id.mapview2); // mapview2.setMultiTouchControls(true); // mapview2.setBuiltInZoomControls(true); //EGIS // { // Workspace mWorkspace = new Workspace(); // boolean opened = mWorkspace.open("/sdcard/jingjin/jingjin.smwu"); // if(opened && mWorkspace.getMapCount()!=0){ // String mapname = mWorkspace.getMapNameAt(0); // com.android.gis.MapView mMapView = new com.android.gis.MapView(this); // mMapView.AttachWorkspace(mWorkspace); // if(mMapView.Open(mapname)){ // EGISOverlay egisOverlay = new EGISOverlay(this,mMapView); // this.mapview.getOverlays().add(egisOverlay); // } // } // } // if(mapview.getTileProvider().getTileSource().equals(TileSourceFactory.getTileSource("tianditu_vec"))){ // final ITileSource tileSource = TileSourceFactory.TIANDITU_CVA; // MapTileProviderBasic tileProvider = new MapTileProviderBasic(this, tileSource); // TilesOverlay mapOverlay = new TilesOverlay(tileProvider, this); // mapview.getOverlayManager().add(mapOverlay); // tileProvider.setTileRequestCompleteHandler(new SimpleInvalidationHandler( // mapview)); // } // if(mapview.getTileProvider().getTileSource().equals(TileSourceFactory.getTileSource("tianditu_img"))){ // final ITileSource tileSource = TileSourceFactory.TIANDITU_CIA; // MapTileProviderBasic tileProvider = new MapTileProviderBasic(this, tileSource); // TilesOverlay mapOverlay = new TilesOverlay(tileProvider, this); // mapview.getOverlayManager().add(mapOverlay); // tileProvider.setTileRequestCompleteHandler(new SimpleInvalidationHandler( // mapview)); // } // { // final ITileSource tileSource = TileSourceFactory.YUNNAN_BASICMAP; // MapTileProviderBasic tileProvider = new MapTileProviderBasic(this, tileSource); // TilesOverlay mapOverlay = new TilesOverlay(tileProvider, this); // mapview.getOverlayManager().add(mapOverlay); // tileProvider.setTileRequestCompleteHandler(new SimpleInvalidationHandler( // mapview)); // } // { // final ITileSource tileSource = TileSourceFactory.YUNNAN_BASICLABEL; // MapTileProviderBasic tileProvider = new MapTileProviderBasic(this, tileSource); // TilesOverlay mapOverlay = new TilesOverlay(tileProvider, this); // mapview.getOverlayManager().add(mapOverlay); // tileProvider.setTileRequestCompleteHandler(new SimpleInvalidationHandler( // mapview)); // } // { // final ITileSource tileSource = TileSourceFactory.YUNNAN_YNYXMAP; // MapTileProviderBasic tileProvider = new MapTileProviderBasic(this, tileSource); // TilesOverlay mapOverlay = new TilesOverlay(tileProvider, this); // mapview.getOverlayManager().add(mapOverlay); // tileProvider.setTileRequestCompleteHandler(new SimpleInvalidationHandler( // mapview)); // } // // { // final ITileSource tileSource = TileSourceFactory.YUNNAN_IMAGEVECTOR; // MapTileProviderBasic tileProvider = new MapTileProviderBasic(this, tileSource); // TilesOverlay mapOverlay = new TilesOverlay(tileProvider, this); // mapview.getOverlayManager().add(mapOverlay); // tileProvider.setTileRequestCompleteHandler(new SimpleInvalidationHandler( // mapview)); // } // // { // final ITileSource tileSource = TileSourceFactory.YUNNAN_IMAGELABEL; // MapTileProviderBasic tileProvider = new MapTileProviderBasic(this, tileSource); // TilesOverlay mapOverlay = new TilesOverlay(tileProvider, this); // mapview.getOverlayManager().add(mapOverlay); // tileProvider.setTileRequestCompleteHandler(new SimpleInvalidationHandler( // mapview)); // } // SimpleLocationOverlay simpleLocationOverlay = new SimpleLocationOverlay(this); // simpleLocationOverlay.setLocation(new GeoPoint(25.041667, 102.705)); // mapview.getOverlayManager().add(simpleLocationOverlay); // // MyLocationNewOverlay locationOverlay = new MyLocationNewOverlay(this, new GpsMyLocationProvider(this), // mapview); // mapview.getOverlayManager().add(locationOverlay); // // CompassOverlay compassOverlay = new CompassOverlay(this, new InternalCompassOrientationProvider(this), // mapview); // // mapview.getOverlayManager().add(compassOverlay); // // locationOverlay.enableMyLocation(new GpsMyLocationProvider(this)); // compassOverlay.enableCompass(new InternalCompassOrientationProvider(this)); // // // { // final DisplayMetrics dm = this.getResources().getDisplayMetrics(); // ScaleBarOverlay scaleBarOverlay = new ScaleBarOverlay(this); // scaleBarOverlay.setCentred(true); // scaleBarOverlay.setScaleBarOffset(dm.widthPixels / 2, 10); // this.mapview.getOverlays().add(scaleBarOverlay); // } // // /* MiniMap */ // { // final ITileSource tileSource = mapview.getTileProvider().getTileSource(); // MapTileProviderBasic tileProvider = new MapTileProviderBasic(this, tileSource); // MinimapOverlay miniMapOverlay = new MinimapOverlay(this, // mapview.getTileRequestCompleteHandler(),tileProvider); // this.mapview.getOverlays().add(miniMapOverlay); // } // mapview1.getController().setZoom(6); // mapview1.getController().setCenter(new GeoPoint(25.041667, 102.705)); // mapview2.getController().setZoom(6); // mapview2.getController().setCenter(new GeoPoint(25.041667, 102.705)); // mapview1.setMapListener(this); // mapview2.setMapListener(this); // PoiSearch poiSearch = new PoiSearch(); // ArrayList<PoiInfo> poi = poiSearch.poiSearchInCity(""); // // final ArrayList<OverlayItem> items = new ArrayList<OverlayItem>(); // PoiOverlay poiOverlay = new PoiOverlay(){}; // Drawable drawable1 = this.getResources().getDrawable(R.drawable.ic_launcher); // final ArrayList<OverlayItem> items = new ArrayList<OverlayItem>(); // OverlayItem oitem1 = new OverlayItem("item1", "item1 info", new GeoPoint(25.041667, 102.705)); // // oitem1.setMarker(drawable1);//设置overlayitem图片 // items.add(oitem1); // // //自定义图层的使用 // ItemizedIconOverlay mMyLocationOverlay = new ItemizedIconOverlay<OverlayItem>(this,items, // //重载点击overlayitem的反应 // new ItemizedIconOverlay.OnItemGestureListener<OverlayItem>(){ // @Override // public boolean onItemSingleTapUp(final int index, final OverlayItem item) // { // return true; // } // // @Override // public boolean onItemLongPress(final int index,final OverlayItem item) { // return true; // } // }); // //添加相关的图层 // mapview.getOverlays().add(mMyLocationOverlay); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. //getMenuInflater().inflate(R.menu.main, menu); // Put overlay items first //mapview.getOverlayManager().onCreateOptionsMenu(menu, MENU_LAST_ID, mapview); return true; } @Override public boolean onPrepareOptionsMenu(final Menu pMenu) { //mapview.getOverlayManager().onPrepareOptionsMenu(pMenu, MENU_LAST_ID, mapview); return super.onPrepareOptionsMenu(pMenu); } @Override public boolean onOptionsItemSelected(MenuItem item) { // if (mapview.getOverlayManager().onOptionsItemSelected(item, MENU_LAST_ID, mapview)) // return true; return super.onOptionsItemSelected(item); } @Override public boolean onScroll(ScrollEvent event) { // TODO Auto-generated method stub // if(event.getSource() == mapview1){ // mapview2.setMapListener(null); // mapview2.scrollTo(event.getX(), event.getY()); // mapview2.setMapListener(this); // }else{ // mapview1.setMapListener(null); // mapview1.scrollTo(event.getX(), event.getY()); // mapview1.setMapListener(this); // } return true; } @Override public boolean onZoom(ZoomEvent event) { // TODO Auto-generated method stub // if(event.getSource() == mapview1){ // mapview2.setMapListener(null); // mapview2.getController().setCenter(event.getSource().getMapCenter()); // mapview2.getController().setZoom(event.getZoomLevel()); // mapview2.setMapListener(this); // }else{ // mapview1.setMapListener(null); // mapview1.getController().setCenter(event.getSource().getMapCenter()); // mapview1.getController().setZoom(event.getZoomLevel()); // mapview1.setMapListener(this); // } return true; } void onListItemClick(int index) { if (index < 0 || index >= mActivities.length+1) return; Intent intent = null; intent = new Intent(this, mActivities[index]); this.startActivity(intent); } }