package com.mutu.maplite;
import com.android.gis.Workspace;
import com.mutu.mapapi.util.GeoPoint;
import com.mutu.mapapi.views.MapView;
import com.mutu.mapapi.views.overlay.ScaleBarOverlay;
import com.mutu.mapapi.views.overlay.SimpleLocationOverlay;
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.util.DisplayMetrics;
import android.view.Menu;
import android.view.MenuItem;
public class MapActivity extends Activity {
MapView mapview = null;
private static final int MENU_LAST_ID = Menu.FIRST + 1; // Always set to last unused id
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map);
mapview = (MapView)findViewById(R.id.mapview);
mapview.setMultiTouchControls(true);
mapview.setBuiltInZoomControls(true);
mapview.getController().setZoom(6);//39°54′57″N 116°23′26″E
mapview.getController().setCenter(new GeoPoint(39.85, 116.35));
SimpleLocationOverlay simpleLocationOverlay = new SimpleLocationOverlay(this);
simpleLocationOverlay.setLocation(new GeoPoint(25.041667, 102.705));
mapview.getOverlayManager().add(simpleLocationOverlay);
{
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);
}
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));
//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);
}
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
//getMenuInflater().inflate(R.menu.map, 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);
}
}