blob: bdc355432fbc22a34fe321ae54bcbbce0dc1593c (
plain) (
tree)
|
|
package com.macaroon.piztor;
import java.util.ArrayList;
import java.util.Timer;
import java.util.TimerTask;
import java.util.Vector;
import android.util.Log;
import android.util.AttributeSet;
import android.annotation.SuppressLint;
import android.location.Location;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.app.Activity;
import android.content.Context;
import android.content.res.Configuration;
import android.graphics.drawable.Drawable;
import android.widget.FrameLayout;
import android.widget.Toast;
import android.view.View.OnClickListener;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.mapapi.map.LocationData;
import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.MKGeneralListener;
import com.baidu.mapapi.map.ItemizedOverlay;
import com.baidu.mapapi.map.MKMapViewListener;
import com.baidu.mapapi.map.MapController;
import com.baidu.mapapi.map.MapPoi;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.MyLocationOverlay;
import com.baidu.mapapi.map.OverlayItem;
import com.baidu.mapapi.map.PopupOverlay;
import com.baidu.platform.comapi.basestruct.GeoPoint;
public class MapMaker extends Activity{
private MapView mMapView = null;
private MapController mMapController = null;
private static GeoPoint sjtuCenter = new GeoPoint((int)(31.032247 * 1E6), (int)(121.445937 * 1E6));
private MyOverlay mOverlay = null;
private MapView.LayoutParams layoutParam = null;
private OverlayItem curItem = null;
private ArrayList<OverlayItem> mItems = null;
private LocationOverlay mLocationOverlay;
private Context context;
public MapMaker(MapView mapView, Context c) {
mMapView = mapView;
mMapController = mMapView.getController();
mMapController.setCenter(sjtuCenter);
mMapController.setZoom(17);
mMapController.setRotation(-22);
mMapController.enableClick(true);
context = c;
mLocationOverlay = null;
mOverlay = null;
}
public class LocationOverlay extends MyLocationOverlay {
public LocationOverlay(MapView mapView) {
super(mapView);
}
}
public class MyOverlay extends ItemizedOverlay {
public MyOverlay(Drawable defaultMarker, MapView mapView) {
super(defaultMarker, mapView);
}
}
public void UpdateLocationOverlay(LocationData locationData, boolean hasAnimation) {
/**
* Update only location overlay
*/
mLocationOverlay.setData(locationData);
mMapView.refresh();
if (hasAnimation) {
mMapController.animateTo(new GeoPoint((int)(locationData.latitude * 1E6), (int)(locationData.longitude * 1E6)));
}
}
public void InitMap() {
Log.d("GPS", "init");
mLocationOverlay = new LocationOverlay(mMapView);
//mLocationOverlay.setMarker(context.getResources().getDrawable(R.drawable.marker1));
LocationData locationData = new LocationData();
mLocationOverlay.setData(locationData);
mMapView.getOverlays().add(mLocationOverlay);
mLocationOverlay.enableCompass();
mMapView.refresh();
}
public void UpdateMap(MapInfo mapInfo) {
/**
* Update Location Overlay
*/
GeoPoint location = mapInfo.getMyInfo().getLocation();
LocationData locationData = new LocationData();
locationData.latitude = location.getLatitudeE6() / 1e6;
locationData.longitude = location.getLongitudeE6() / 1e6;
mLocationOverlay.setData(locationData);
mMapView.refresh();
/**
* Update location of others
*/
mOverlay.removeAll();
//mMapView.refresh();
GeoPoint p;
Vector<UserInfo> allUsers = mapInfo.getVector();
for(int i = 0; i < allUsers.size(); i++) {
p = new GeoPoint((int)(allUsers.get(i).getLatitude() * 1E6)
,(int)(allUsers.get(i).getLongitude() * 1E6));
curItem = new OverlayItem(p, "^_^", "");
curItem.setMarker(context.getResources().getDrawable(R.drawable.marka));
mOverlay.addItem(curItem);
}
mItems = new ArrayList<OverlayItem>();
mItems.addAll(mOverlay.getAllItem());
mMapView.getOverlays().add(mOverlay);
mMapView.refresh();
}
public void clearOverlay(View view) {
mOverlay.removeAll();
mMapView.refresh();
}
public void resetOverlay(View view) {
clearOverlay(null);
mOverlay.addItem(mItems);
mMapView.refresh();
}
@Override
protected void onPause() {
mMapView.onPause();
}
@Override
protected void onResume() {
mMapView.onResume();
}
@Override
protected void onDestroy() {
mMapView.destroy();
}
}
|