Newer
Older
dxcgt / app / src / main / java / com / smartdot / cgt / activity / FrmMap.java
wangxitong on 6 Apr 2021 45 KB first commit
package com.smartdot.cgt.activity;

import java.io.BufferedReader;
import java.io.File;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Timer;
import java.util.TimerTask;

import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnCancelListener;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.location.Location;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import android.os.PersistableBundle;
import android.util.SparseIntArray;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.WindowManager.LayoutParams;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

import com.esri.android.map.GraphicsLayer;
import com.esri.android.map.Layer;
import com.esri.android.map.MapView;
import com.esri.android.map.ags.ArcGISDynamicMapServiceLayer;
import com.esri.android.map.ags.ArcGISFeatureLayer;
import com.esri.android.map.ags.ArcGISTiledMapServiceLayer;
import com.esri.android.map.event.OnSingleTapListener;
import com.esri.android.map.event.OnStatusChangedListener;
import com.esri.core.geometry.Envelope;
import com.esri.core.geometry.Geometry;
import com.esri.core.geometry.MultiPath;
import com.esri.core.geometry.Point;
import com.esri.core.geometry.Polygon;
import com.esri.core.map.FeatureSet;
import com.esri.core.map.Graphic;
import com.esri.core.portal.BaseMap;
import com.esri.core.renderer.SimpleRenderer;
import com.esri.core.symbol.PictureMarkerSymbol;
import com.esri.core.tasks.SpatialRelationship;
import com.leador.SelectDialog;
import com.leador.Listener.MapActiveListener;
import com.leador.Listener.OnMapItemListener;
import com.leador.TV.Exception.TrueMapException;
import com.leador.TV.Listeners.ImageCompassListener;
import com.leador.TV.Listeners.ImageGetListener;
import com.leador.TV.Listeners.ImageStateListener;
import com.leador.TV.Listeners.ImageTouchEvent;
import com.leador.TV.Listeners.ImageTouchListener;
import com.leador.TV.Marker.MarkerInfo;
import com.leador.TV.Station.StationInfo;
import com.leador.TV.Station.StationInfoEx;
import com.leador.map.utils.ControlBtn;
import com.leador.tracking.TrackingItem;
import com.leador.types.PointD;
import com.smartdot.cgt.R;
import com.smartdot.cgt.model.CaseModel;
import com.smartdot.cgt.model.DictTypeModel;
import com.smartdot.cgt.model.GraphicSelectItemModel;
import com.smartdot.cgt.model.ResponseResult;
import com.smartdot.cgt.request.Request;
import com.smartdot.cgt.util.ActivityTools;
import com.smartdot.cgt.util.ApplicationMain;
import com.smartdot.cgt.util.BaseThread;
import com.smartdot.cgt.util.GpsManager;
import com.smartdot.cgt.util.HandlerStatus;
import com.smartdot.cgt.util.MapUtil;
import com.smartdot.cgt.util.Msg;
import com.smartdot.cgt.util.MsgCallback;
import com.smartdot.cgt.util.StringUtils;
import com.smartdot.cgt.view.TitleBar;

/**
 * @author Administrator
 *
 *         示例实现了ImageStateListener接口, 注意需要注册一下setOnStateChanged(this)之后
 *         就可以使用其中的回调函数,其他接口同理使用
 *
 *         实现接口ImageTouchListener,其中回调controlBtnSelected(String controlBtnTag)响应
 *         按钮点击
 *
 *         定位前先初始化
 *
 */
public class FrmMap extends BaseActivity implements
		ImageStateListener, ImageTouchListener, MapActiveListener,
		OnMapItemListener, ImageCompassListener, ImageGetListener  {

	/**
	 * 取点方式,是取部件点还是取事件点
	 */
	private int getLocationId = -1;

	private MapView mapView = null;


	private Button btnEventConfirm;

	private Spinner spinPartSelect;

	private Point selectedPoint;

	private Polygon initExtent;

	private GraphicsLayer graphicsLayer;
	private SparseIntArray graphicIds = new SparseIntArray();
	private final int MyPositionIndex = 1, CasePositionIndex = 2;

	private ArrayAdapter<GraphicSelectItemModel> adapter;


	// /"OBJECTID", "OBJCODE部件编码","GGRIDID网格ID", "GPARTSTYPE部件类型或名称"
	//public final static String[] fieldArrayPart = new String[] { "OBJECTID", "OBJCODE", "OBJCODE", "OBJNAME",
	//		"DEPTCODE1", "DEPTCODE2", "DEPTCODE3" };
	//public final static String[] fieldArrayGrid = new String[] { "OBJECTID", "OBJCODE" };// geocode
	//冀州
	public final static String[] fieldArrayPart = new String[] { "OBJECTID", "OBJID", "BGID", "OBJNAME",
			"DEPTCODE1", "DEPTCODE2", "DEPTCODE3" };
	public final static String[] fieldArrayPart1 = new String[] { "COMMUNAME" , "COMMUID"};
	public final static String[] fieldArrayPart2 = new String[] {  "BGID","ObjID","DutyName","Tel","CommuID","CommuName"};
	public final static String[] fieldArrayGrid = new String[] { "OBJECTID", "BGID" };// geocode
	public  static String shequ, gridid, shequid;
	private String lclassname = null, sclassname = null;

	private ImageButton btnZoomIn;

	private ImageButton btnZoomOut;

	private ImageButton btnMyLocation;

	private ImageButton btnViewFull;

	private boolean isGettingPointEnable = false;

	private BaseThread thread;
	private AlertDialog di;
	private View checkbox;
	private CheckBox cBox;
	/**
	 * 三维影像控件,配置在布局文件中,也可以在代码中new
	 */
//    private TrueVision ldTV;

	/**
	 * 三维前后 和放大缩小控制按钮初始化
	 *
	 */
	private String beforeTag = "Before";
	private String afterTag = "After";
	private String zoominTag = "Zoomin";
	private String zoomOutTag = "Zoomout";
	String holeingControlBtnTag = "";
	String preTag = "prePlay";
	String nextTag = "nextPlay";
	boolean isPlay = false;

//	/**
//	 * 三维
//	 */
//	@Override
//	protected void onPause() {
//		// TODO Auto-generated method stub
//		super.onPause();
//		// 全景时候
////		ldTV.onPause();
//	}

	/**
	 *三维
	 * @param message
	 *            弹出的提示信息
	 *
	 */
	protected void ShowToast(String message) {
		Toast.makeText(getApplicationContext(), message, Toast.LENGTH_SHORT).show();
	}
	/**
	 * 选择路口弹出窗口提示
	 * 三维
	 * @param currentStation
	 *            当前站点信息
	 * @throws TrueMapException
	 */
	private void selectNode(StationInfo currentStation) throws TrueMapException {
		final SelectDialog selectDialog = new SelectDialog(this,
				android.R.style.Theme_Dialog);// 创建Dialog并设置样式主题
		Window win = selectDialog.getWindow();
		LayoutParams params = new LayoutParams();
		params.x = -80;// 设置x坐标
		params.y = -60;// 设置y坐标
		win.setAttributes(params);
		selectDialog.setCanceledOnTouchOutside(true);// 设置点击Dialog外部任意区域关闭Dialog
		selectDialog.show();
		selectDialog.setOnCancelListener(new OnCancelListener() {
			@Override
			public void onCancel(DialogInterface arg0) {
			}
		});
		LinearLayout nodesLayout = new LinearLayout(this);
		nodesLayout.setOrientation(LinearLayout.VERTICAL);
		final ArrayList<StationInfo> stationInfoList = currentStation
				.getNodeList();
		int length = stationInfoList.size();
		for (int i = 0; i < length; i++) {
			StationInfo stationInfo = stationInfoList.get(i);
			String stationAddress = stationInfo.getAddress();
			double yaw = stationInfo.getYaw();
			String stationId = stationInfo.getStationId();
//			String cameraID = ldTV.getCameraID();
//			String imgID = TrueVision.getImgIDByStationID(stationId, cameraID);
			LinearLayout nodeLayout = new LinearLayout(this);
//			nodeLayout.setTag(imgID);
			nodeLayout.setOrientation(LinearLayout.HORIZONTAL);
			TextView textView = new TextView(this);
			ImageView imageView = new ImageView(this);
			nodeLayout.addView(imageView,
					LinearLayout.LayoutParams.WRAP_CONTENT,
					LinearLayout.LayoutParams.FILL_PARENT);
			nodeLayout.addView(textView);
			String textViewStr = "";
			if (stationAddress != null) {
				textViewStr = "";
				if (yaw <= 30 && yaw >= -30) {
					textViewStr += "直行";
					imageView.setImageResource(R.drawable.nogo);
				} else if (yaw > 30 && yaw <= 180) {
					textViewStr += "右行";
					imageView.setImageResource(R.drawable.nodegoright);
				} else if (yaw >= -180 && yaw < -30) {
					textViewStr += "左行";
					imageView.setImageResource(R.drawable.nodegoleft);
				}
				textViewStr += stationAddress;
			} else {
				textViewStr = "";
			}
			textView.setTextSize(20);
			textView.setTextColor(Color.RED);
			textView.setText(textViewStr);
			nodesLayout.setPadding(20, 20, 20, 20);
			nodesLayout.addView(nodeLayout);
			nodeLayout.setOnClickListener(new OnClickListener() {
				@Override
				public void onClick(View view) {
					String imageID = (String) view.getTag();
					try {
//						ldTV.locImgByImgID(imageID);
						selectDialog.cancel();
					} catch (Exception e) {
						e.printStackTrace();
					}
				}

			});
			if (i != length - 1) {
				LinearLayout nullLayout = new LinearLayout(this);
				nullLayout.setBackgroundColor(Color.BLACK);
				nodesLayout.addView(nullLayout,
						LinearLayout.LayoutParams.FILL_PARENT, 2);
			}
		}
		selectDialog.setView(nodesLayout);
	}


	/**
	 * 显示影像的所有标注
	 *
	 * @param //ImageID
	 *            影像ID
	 * @throws TrueMapException
	 */
	private void showImageIDmarker(String imageID) throws TrueMapException {
//	ldTV.cleanMarker();
//	ArrayList<MarkerInfo> markerList;
//	markerList = TrueVision.searchMarkersByImageID(imageID);
//	for (int i = 0; i < markerList.size(); i++) {
//	MarkerInfo markerInfo = markerList.get(i);
////	ldTV.addMarker(markerInfo.getId(), markerInfo.getText(),
//	markerInfo.getImageID(), markerInfo.getImageXScale(),
//	markerInfo.getImageYScale(), markerInfo.getSymbolGuid());
//	}
	}

	Handler handler=new Handler();
	Runnable runnable=new Runnable(){
		@Override
		public void run() {
			if(mapView.isLoaded()==false){
				doInit();
				handler.postDelayed(this, 1000);
			}
		}
	};
	@Override
	public void getStationComplete(boolean isOk, String imageId,
								   TrueMapException ex) {
		if (isOk) {
			Toast.makeText(this, "getStationCompleteOK", Toast.LENGTH_SHORT)
					.show();
			// try {
			// double lon = ldTV.getCurrentStation().getCoord().getLon();
			// double lat = ldTV.getCurrentStation().getCoord().getLat();
			// } catch (TrueMapException e) {
			// // TODO Auto-generated catch block
			// e.printStackTrace();
			// }
			try {
				showImageIDmarker(imageId);
			} catch (TrueMapException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		} else {
			Toast.makeText(this, "getStationCompleteFalse", Toast.LENGTH_SHORT)
					.show();
		}

	}




	private OnClickListener onClickListener = new OnClickListener() {

		@Override
		public void onClick(View arg0) {
			if (arg0 == btnZoomIn) {
				mapView.zoomin();
			} else if (arg0 == btnZoomOut) {
				mapView.zoomout();
			} else if (arg0 == btnMyLocation) {
				setMyLocation();
			} else if (arg0 == btnEventConfirm) {
				toSelectEvent(selectedPoint);
			} else if (arg0 == btnViewFull) {
				viewInitExtent();
			}
		}
	};

	private OnSingleTapListener onSingleTapListener = new OnSingleTapListener() {
		private static final long serialVersionUID = 1L;

		@Override
		public void onSingleTap(float x, float y) {

			if (isGettingPointEnable) {
				if (getLocationId == ActivityTools.GETLOCATION_PART) {
					getPartByXY(x, y);
					selectedPoint = mapView.toMapPoint(x, y);
				} else if (getLocationId == ActivityTools.GETLOCATION_EVENT  ) {
					getSqByXY(x, y);
					selectedPoint = mapView.toMapPoint(x, y);
					mapView.getCallout().show(selectedPoint, btnEventConfirm);
				}else if(getLocationId == ActivityTools.GETLOCATION_SHOP){
					getShopByXY(x, y);
					selectedPoint = mapView.toMapPoint(x, y);
				}
			}
			try {
				double longitude = (double) Math.round(selectedPoint.getX() * 100000000) / 100000000;
				double latitude = (double) Math.round(selectedPoint.getY()* 100000000) / 100000000;
//    			ldTV.locImgByLonlat(longitude, latitude, 0.005, "1");
//    			showImageIDmarker(ldTV.getImageID());
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	};

	private OnItemSelectedListener onItemSelectedListener = new OnItemSelectedListener() {
		@Override
		public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
			if (arg0 == spinPartSelect && arg2 > 0) {
				GraphicSelectItemModel selectedItem = (GraphicSelectItemModel) spinPartSelect.getSelectedItem();
				toSelectGraphic(selectedItem.getGraphic());
			}
		}

		@Override
		public void onNothingSelected(AdapterView<?> arg0) {
		}
	};

	private OnStatusChangedListener onStatusChangedListener = new OnStatusChangedListener() {
		private static final long serialVersionUID = 1L;

		@Override
		public void onStatusChanged(Object source, STATUS status) {
			if (status == STATUS.INITIALIZED) {
				initMapByParams();
			}
			else if(status==STATUS.INITIALIZATION_FAILED||status==STATUS.LAYER_LOADING_FAILED){
			}
		}
	};

	@Override
	protected void addEventListener() {

		btnZoomIn.setOnClickListener(onClickListener);
		btnZoomOut.setOnClickListener(onClickListener);
		btnMyLocation.setOnClickListener(onClickListener);
		btnViewFull.setOnClickListener(onClickListener);
		btnEventConfirm.setOnClickListener(onClickListener);


		spinPartSelect.setOnItemSelectedListener(onItemSelectedListener);

		mapView.setOnSingleTapListener(onSingleTapListener);
		mapView.setOnStatusChangedListener(onStatusChangedListener);
	}

	@Override
	protected void handleMessage(Message msg) {
		if (msg.what == HandlerStatus.MAP_QUERYSHOP)
		{
			mapView.getCallout().hide();
			if (msg.arg1 == HandlerStatus.HANDLE_OK)
			{
				Graphic[] results = (Graphic[]) msg.obj;

				adapter.clear();
				adapter.add(new GraphicSelectItemModel(null, "", ""));
				for (Graphic graphic : results) {
					adapter.add(new GraphicSelectItemModel(graphic, fieldArrayPart2[1], fieldArrayPart2[2]));
				}
				spinPartSelect.setSelection(0);
				mapView.getCallout().show(selectedPoint, spinPartSelect);

			}
			else if (msg.arg1 == HandlerStatus.HANDLE_FAIL)
			{
				Msg.showInfo(FrmMap.this, "未获取到商户!");
			} else
			{
				Msg.showInfo(FrmMap.this, "获取商户出错!");
			}
			closeProgress();
		}
		if (msg.what == HandlerStatus.MAP_QUERYPART)
		{
			mapView.getCallout().hide();
			if (msg.arg1 == HandlerStatus.HANDLE_OK)
			{
				Graphic[] results = (Graphic[]) msg.obj;

				adapter.clear();
				adapter.add(new GraphicSelectItemModel(null, "", ""));
				for (Graphic graphic : results) {
					adapter.add(new GraphicSelectItemModel(graphic, fieldArrayPart[1], fieldArrayPart[3]));
				}
				spinPartSelect.setSelection(0);
				mapView.getCallout().show(selectedPoint, spinPartSelect);

			}
			else if (msg.arg1 == HandlerStatus.HANDLE_FAIL)
			{
				Msg.showInfo(FrmMap.this, "未获取到部件!");
			} else
			{
				Msg.showInfo(FrmMap.this, "获取部件出错!");
			}
			closeProgress();
		}
		else if (msg.what == HandlerStatus.MAP_QUERYEVENT)
		{
			closeProgress();

			String gridId = "", address = "";
			if (msg.arg1 == HandlerStatus.HANDLE_OK) {
				String[] gridAndAddress = ((String) msg.obj).split("&");
				if (gridAndAddress.length > 0) {
					gridId = gridAndAddress[0];
				}
				if (gridAndAddress.length > 1) {
					address = gridAndAddress[1];
				}
			}
			String messageInfo = "该事件点所在网格为" + (StringUtils.isNullOrEmpty(gridid) ? "空" : gridid) + "\n确认选择?";
			final String gridCode = gridId, addressResult = address;
			Msg.confirm(FrmMap.this, messageInfo, "提 示", new MsgCallback() {
				@Override
				public void callBack(Boolean result) {
					if (result != null && result.booleanValue()) {
						FrmMap.this.getIntent().putExtra(MapReturn_X, selectedPoint.getX());
						FrmMap.this.getIntent().putExtra(MapReturn_Y, selectedPoint.getY());
						FrmMap.this.getIntent().putExtra(MapReturn_SheQu, shequ);
						FrmMap.this.getIntent().putExtra(MapReturn_SheQuId, shequid);
						FrmMap.this.getIntent().putExtra(MapReturn_PartId, "");
						FrmMap.this.getIntent().putExtra(MapReturn_GridId, gridid);
						FrmMap.this.getIntent().putExtra(MapReturn_Address, addressResult);
						FrmMap.this.setResult(RESULT_OK, FrmMap.this.getIntent());
						FrmMap.this.finish();
					} else {
					}
				}
			});
		}
	}

	@Override
	protected void onCancelProgress(DialogInterface arg0) {
		if (thread != null) {
			thread.interrupt();
		}
	}


	@Override
	protected void setLayout() {
		initActivity();
		setContentView(R.layout.map);
		btnZoomIn = (ImageButton) findViewById(R.id.btnZoomIn);
		btnZoomOut = (ImageButton) findViewById(R.id.btnZoomOut);
		btnMyLocation = (ImageButton) findViewById(R.id.btnMyLocation);
		btnViewFull = (ImageButton) findViewById(R.id.btnViewFull);
		TitleBar titlebar = (TitleBar) this.findViewById(R.id.titlebar);

		titlebar.setToHelpPanelId(R.id.layoutMapHelp);
		titlebar.setTitleText(R.string.module_map);

		mapView = (MapView) findViewById(R.id.viewMapPanel);
		btnEventConfirm = new Button(FrmMap.this);
		btnEventConfirm.setBackgroundColor(0xffffff);
		btnEventConfirm.setText("点击选择该点");

		spinPartSelect = new Spinner(FrmMap.this);
		spinPartSelect.setBackgroundResource(R.drawable.btn_item_selector);
		adapter = new ArrayAdapter<GraphicSelectItemModel>(FrmMap.this, android.R.layout.simple_spinner_item);
		spinPartSelect.setAdapter(adapter);

		//加载checkbox.xml 文件
		LayoutInflater lauoutInflater= LayoutInflater.from(this);
		checkbox = lauoutInflater.inflate(R.layout.checkbox, null);

		//获取.xml文件的按钮
		cBox=(CheckBox)checkbox.findViewById(R.id.check);
		//通过sharedPreferences来保存信息
		SharedPreferences pre=getSharedPreferences("checkvalue", MODE_PRIVATE);
		String value=pre.getString("ischeck", "");
		//判断接受到的信息

		if (value.endsWith("1")) {
			//如果选择的是1,则对话框就不再弹出
			createDialog().dismiss();
		}else {
			//如果没有选择,则对话框继续弹出
			createDialog().show();
		}
		handler.postDelayed(runnable,0);
	}

	private AlertDialog createDialog(){
		di=new AlertDialog.Builder(this).setTitle("友情提示").setMessage("双击地图位置,进行采点操作").setView(checkbox)
				.setPositiveButton("知道了", new DialogInterface.OnClickListener() {
					@Override
					public void onClick( DialogInterface dialog, int which) {
						//将数据保存到sharedPerferences中:
						SharedPreferences pre=getSharedPreferences("checkvalue", MODE_PRIVATE);
						SharedPreferences.Editor editor=pre.edit();
						//判断cBox是否被选中
						if (cBox.isChecked()) {
							editor.putString("ischeck", "1");
						}else {
							editor.putString("ischeck", "0");
						}
						//提交选择的check,并且保存在pre中
						editor.commit();
					}
				}).create();
		return di;
	}

	@Override
	protected void doInit() {
		getLocationId = this.getIntent().getIntExtra("needGetLocation", -1);

		isGettingPointEnable = getLocationId != -1;

		ArcGISTiledMapServiceLayer baseLayer = new ArcGISTiledMapServiceLayer(ApplicationMain.getInstance().getCgtConfig().getMapServiceUrl());
		mapView.addLayer(baseLayer);//底图

		ArcGISFeatureLayer unitLayer0 = new ArcGISFeatureLayer(ApplicationMain.getInstance().getCgtConfig().getUnitServiceUrl(),
				ArcGISFeatureLayer.MODE.ONDEMAND);
		mapView.addLayer(unitLayer0);//部件点图层(外网)
//		 ArcGISFeatureLayer unitLayer0 = new ArcGISFeatureLayer(ApplicationMain.getInstance().getCgtConfig().getUnitServiceUrl()+"/0",
//				ArcGISFeatureLayer.MODE.ONDEMAND);
//		mapView.addLayer(unitLayer0);//部件点图层
//
//		unitLayer0 = new ArcGISFeatureLayer(ApplicationMain.getInstance().getCgtConfig().getUnitServiceUrl()+"/1",
//				ArcGISFeatureLayer.MODE.ONDEMAND);
//		mapView.addLayer(unitLayer0);//部件线图层
//
//		unitLayer0 = new ArcGISFeatureLayer(ApplicationMain.getInstance().getCgtConfig().getUnitServiceUrl()+"/2",
//				ArcGISFeatureLayer.MODE.ONDEMAND);
//		mapView.addLayer(unitLayer0);//兴趣点图层
//
//		unitLayer0 = new ArcGISFeatureLayer(ApplicationMain.getInstance().getCgtConfig().getUnitServiceUrl()+"/3",
//				ArcGISFeatureLayer.MODE.ONDEMAND);
//		mapView.addLayer(unitLayer0);//门牌地址图层

		if(getLocationId == -1){
			Bundle bundle=getIntent().getExtras();
			if(bundle!=null){
				GraphicsLayer layer =  new GraphicsLayer();
				mapView.addLayer(layer);
				String lng = bundle.getString("lng");
				String lat = bundle.getString("lat");
				if(!lng.equals("")&&!lat.equals("")){
					Point point = new Point(Double.parseDouble(lng),Double.parseDouble(lat));
					Drawable image = FrmMap.this.getResources().getDrawable(R.drawable.part_item);
					PictureMarkerSymbol symbol = new PictureMarkerSymbol(image);
					Map<String, Object> map = null;
					Graphic g = new Graphic(point, symbol, map, null);
					layer.addGraphic(g);
					mapView.centerAt(point, true);
					mapView.postInvalidate();
				}
			}
		}
//		graphicsLayer = new GraphicsLayer();
//		graphicsLayer.setRenderer(new SimpleRenderer(
//				new PictureMarkerSymbol(FrmMap.this.getResources().getDrawable(R.drawable.part_item))));
//		mapView.addLayer(graphicsLayer);
//		mapView.postInvalidate();

//		File sdDir = Environment.getExternalStorageDirectory();
//		String dataPathTV=sdDir.toString()+"/map";
//		BundleLayer localTiledLayer = new BundleLayer(dataPathTV);
//		mapView.addLayer(localTiledLayer);//添加基础图层

	}

	@Override
	public Object onRetainNonConfigurationInstance() {
		return mapView.retainState();
	}

	private void initMapByParams() {
		boolean b=false;//是否需要放大定位
		initExtent = mapView.getExtent();
		mapView.getCallout().setMaxWidth(getWindowManager().getDefaultDisplay().getWidth());
		if (isGettingPointEnable) {//上报执行if,综合查询不执行if
			Point nowPoint = null;
			Location location = GpsManager.getGpsSingerton().getLocation();
			if (location != null) {
				nowPoint = new Point(location.getLongitude(), location.getLatitude());
				if (nowPoint != null&b) {
					Envelope extent = new Envelope(nowPoint, 0.0008, 0.0012);
					mapView.setExtent(extent);
					mapView.centerAt(nowPoint, true);
					mapView.postInvalidate();
					if (getLocationId == ActivityTools.GETLOCATION_EVENT) {
						selectedPoint = nowPoint;
						mapView.getCallout().show(selectedPoint, btnEventConfirm);
					}
				}
			}
		}
		else{
			mapView.setScale(1000);
		}
//		caseDoLocate();
		//viewInitExtent();
		//mapView.zoomout();

	}

//	/**
//	 * 核实或核查时查看事件位置
//	 */
//	private void caseDoLocate() {
//		Intent intent = this.getIntent();
//		if (intent != null) {
//			Bundle bundle = intent.getExtras();
//			if (bundle != null) {
//				if (bundle.containsKey(SOURCECASEKEY)) {
//					CaseModel caseModel = (CaseModel) bundle.get(SOURCECASEKEY);
//					// 调用地图跳转方法
//					changeMapCenter(caseModel);
//				}
//			}
//		}
//	}

	/**
	 * 地图跳转方法
	 *
	 * @param caseModel
	 */
//	private void changeMapCenter(CaseModel caseModel) {
//		changeMapCenter(caseModel, true);
//	}

//	/**
//	 * 地图跳转方法
//	 *
//	 * @param caseModel
//	 */
//	private void changeMapCenter(final CaseModel caseModel, boolean needShowInMap) {
//		String x = caseModel.getCaseLongitude();
//		String y = caseModel.getCaseLatitude();
//		if (!StringUtils.isNullOrEmpty(x) && !StringUtils.isNullOrEmpty(y)) {
//			double xDouble = Double.parseDouble(x);
//			double yDouble = Double.parseDouble(y);
//			if (needShowInMap) {
//				Point casePoint = new Point(xDouble, yDouble);
//				if (graphicIds.indexOfKey(CasePositionIndex) < 0) {
//					Graphic caseGraphic = new Graphic(casePoint, null);
//					graphicIds.put(CasePositionIndex, graphicsLayer.addGraphic(caseGraphic));
//				} else {
//					graphicsLayer.updateGraphic(graphicIds.get(CasePositionIndex), casePoint);
//				}
//				mapView.centerAt(casePoint, true);
//				mapView.postInvalidate();
//			}
//		}
//	}

	private void setMyLocation() {
		if (mapView.isLoaded()) {
			try{
				Location location = GpsManager.getGpsSingerton().getLocation();
				if (location != null) {
					Point nowPoint = new Point(location.getLongitude(), location.getLatitude());
					if (graphicIds.indexOfKey(MyPositionIndex) < 0) {
						Graphic myPosition = new Graphic(nowPoint, null);
						graphicIds.put(MyPositionIndex, graphicsLayer.addGraphic(myPosition));
					} else {
						graphicsLayer.updateGraphic(graphicIds.get(MyPositionIndex), nowPoint);
					}
					mapView.centerAt(nowPoint, true);
					mapView.postInvalidate();
				} else {
					Msg.showInfo(this, "暂时无法获取到您的位置!");
				}
			}catch (Exception e){
				Msg.showInfo(this, "当前定位超出地图范围!");
			}
		}
	}

	private void viewInitExtent() {
		if (mapView.isLoaded() && initExtent != null) {
			mapView.setExtent(initExtent);
		}
	}

	private void toSelectEvent(final Point selectedPoint2) {
		thread = new BaseThread(baseHandler) {

			@Override
			public void runThread() {
				Message msg = thread.obtainMessage();
				if (msg != null) {
					msg.what = HandlerStatus.MAP_QUERYEVENT;
					try {
						String mapServiceUrl = getCgtConfig().getMapServiceUrl();
						String queryLayerUrl = ("/".equals(mapServiceUrl.charAt(mapServiceUrl.length() - 1)) ? mapServiceUrl
								: (mapServiceUrl + "/"))
								+ getCgtConfig().getGridLayerIndex();

						FeatureSet results = MapUtil.executeQueryByGeometry(queryLayerUrl, selectedPoint2, null, false,
								fieldArrayGrid, SpatialRelationship.INTERSECTS, mapView.getSpatialReference());
						if (results != null && results.getGraphics() != null && results.getGraphics().length > 0) {
							String gridId = "", gridAndAddress = "";
							for (Entry<String,Object> entry : results.getGraphics()[0].getAttributes().entrySet()) {
								String keyUpper = entry.getKey().toUpperCase();
								if (FrmMap.fieldArrayGrid[1].equals(keyUpper)) {
									gridId = entry.getValue().toString();
									break;
								}
							}
							try {
								ResponseResult<String> address = Request.getRequest().queryAddressString(gridId);
								if (address.isSuccess()) {
									gridAndAddress = gridId + "&" + address.getResultObj();
								} else {
									gridAndAddress = gridId;
								}
							} catch (Exception e) {
								gridAndAddress = gridId;
								e.printStackTrace();
							}
							msg.obj = gridAndAddress;
							msg.arg1 = HandlerStatus.HANDLE_OK;
						} else {
							msg.arg1 = HandlerStatus.HANDLE_FAIL;
						}
					} catch (Exception e) {
						msg.arg1 = HandlerStatus.HANDLE_ERROR;
					}
					thread.sendMessage(msg);
				}
			}
		};
		showProgress("获取事件点中。。。", "地图取点");
		thread.start();
	}

	private void getcaseclass(final String lClassCode, final String sClassCode){
		thread = new BaseThread(baseHandler)
		{
			@Override
			public void runThread()
			{
				Message msg = thread.obtainMessage();
				if (msg != null)
				{
					ResponseResult< List<Map<String,String>>> typelistResult = null;
					try
					{
						typelistResult = Request.getRequest().typelist("2");
						List<Map<String,String>> list = typelistResult.getResultObj();
						String id;
						int i;
						for(i=0; i<list.size(); i++){
							if(list.get(i).get("typeCode").equals(lClassCode)){
								lclassname = list.get(i).get("typeName");
								break;
							}
						}
						id = list.get(i).get("id");
						typelistResult = Request.getRequest().typelistdetail("2",id);
						list = typelistResult.getResultObj();
						for(i=0;i<list.size();i++){
							if(list.get(i).get("typeDetailCode").equals(sClassCode)){
								sclassname = list.get(i).get("typeDetailName");
								break;
							}
						}
					}
					catch (Exception e)
					{
						e.printStackTrace();
					}
				}
			}
		};
		thread.start();
	}
	protected void toSelectGraphic(final Graphic buttonGraphic) {
		if(getLocationId == ActivityTools.GETLOCATION_PART){
			if (buttonGraphic != null && buttonGraphic.getGeometry() != null && buttonGraphic.getAttributes().size() > 0) {
				StringBuilder messageBuilder = new StringBuilder("已选择部件:\n");
				final String partNum = (String) buttonGraphic.getAttributeValue(fieldArrayPart[1]);
				final String partGrid = (String) buttonGraphic.getAttributeValue(fieldArrayPart[2]);
				final String dept1 = (String) buttonGraphic.getAttributeValue(fieldArrayPart[3]);
				final String dept2 = (String) buttonGraphic.getAttributeValue(fieldArrayPart[4]);
				final String dept3 = (String) buttonGraphic.getAttributeValue(fieldArrayPart[5]);
				String lClassCode = partNum.substring(6, 8);
				String sClassCode = partNum.substring(8, 10);
				lclassname = null; sclassname = null;
				getcaseclass(lClassCode,sClassCode);
				try{
					while (lclassname == null || sclassname == null){
						Thread.currentThread().sleep(500);
					}
				}catch (Exception e){
					e.printStackTrace();
				}
				messageBuilder.append("编号:");
				messageBuilder.append(partNum);
				messageBuilder.append("\n大类:");
				messageBuilder.append(lclassname == null ? "" : lclassname);
				messageBuilder.append("\n小类:");
				messageBuilder.append(sclassname == null ? "" : sclassname);
				messageBuilder.append("\n所在网格:");
				messageBuilder.append(partGrid);
				messageBuilder.append("\n确认选择吗?");

				Msg.confirm(FrmMap.this, messageBuilder.toString(), "部件选择", new MsgCallback() {

					@Override
					public void callBack(Boolean result) {
						if (result != null && result.booleanValue()) {
							final Geometry geo = (Geometry) buttonGraphic.getGeometry();

							Geometry.Type type = geo.getType();
							double x=0d;
							double y=0d;
							if("POINT".equals(type.name())){
								final Point p = (Point) buttonGraphic.getGeometry();
								x=p.getX();
								y=p.getY();

							}else if("POLYGON".equals(type.name()) || "POLYLINE".equals(type.name())){
								MultiPath pg = (MultiPath)buttonGraphic.getGeometry();
								int pathSize = pg.getPathCount();
								if(pathSize>0)
								{
									int size = pg.getPathSize(0);
									if(size>0)
									{
										Point pt = pg.getPoint(0);
										x=pt.getX();
										y=pt.getY();
									}
								}
							}
							final double xx=x;
							final double yy=y;
							Handler handler = new Handler() {
								@Override
								public void handleMessage(Message msg) {
									super.handleMessage(msg);

									String addressResult = (String) msg.obj;
									FrmMap.this.getIntent().putExtra(MapReturn_X, xx);
									FrmMap.this.getIntent().putExtra(MapReturn_Y, yy);
									FrmMap.this.getIntent().putExtra(MapReturn_SheQu, shequ);
									FrmMap.this.getIntent().putExtra(MapReturn_SheQuId, shequid);
									FrmMap.this.getIntent().putExtra(MapReturn_PartId, partNum);
									FrmMap.this.getIntent().putExtra(MapReturn_LClass, lclassname == null ? "" : lclassname);
									FrmMap.this.getIntent().putExtra(MapReturn_SClass, sclassname == null ? "" : sclassname);
									FrmMap.this.getIntent().putExtra(MapReturn_GridId, partGrid);
									FrmMap.this.getIntent().putExtra(MapReturn_Address, addressResult);
									FrmMap.this.getIntent().putExtra(MapReturn_Dept1, dept1);
									FrmMap.this.getIntent().putExtra(MapReturn_Dept2, dept2);
									FrmMap.this.getIntent().putExtra(MapReturn_Dept3, dept3);
									FrmMap.this.setResult(RESULT_OK, FrmMap.this.getIntent());
									FrmMap.this.finish();
								}
							};
							BaseThread thread = new BaseThread(handler) {
								@Override
								public void runThread() {
									Message msg = this.obtainMessage();
									try {
										ResponseResult<String> address = Request.getRequest().queryAddressString(partGrid);

										if (address.isSuccess()) {
											msg.obj = address.getResultObj();
										}
									} catch (Exception e) {
										e.printStackTrace();
									}
									this.sendMessage(msg);
								}
							};
							thread.start();
						}
					}
				});
			} else {
				Msg.showInfo(FrmMap.this, "对不起,未找到选择的部件!");
			}
		}else if(getLocationId == ActivityTools.GETLOCATION_SHOP){
			if (buttonGraphic != null && buttonGraphic.getGeometry() != null && buttonGraphic.getAttributes().size() > 0) {
				StringBuilder messageBuilder = new StringBuilder("已选择商户:");
				final String ShopNum = (String) buttonGraphic.getAttributeValue(fieldArrayPart2[3]); //手机号
				final String partGrid = (String) buttonGraphic.getAttributeValue(fieldArrayPart2[0]);//网格
				final String ShopName = (String) buttonGraphic.getAttributeValue(fieldArrayPart2[2]);//商户名
				final String ShopId = (String) buttonGraphic.getAttributeValue(fieldArrayPart2[1]);//商户Id

				messageBuilder.append(ShopName);
				messageBuilder.append("\n手机号:");
				messageBuilder.append(ShopNum);
				messageBuilder.append("\n所在网格:");
				messageBuilder.append(partGrid);
				messageBuilder.append("\n确认选择吗?");

				Msg.confirm(FrmMap.this, messageBuilder.toString(), "商户选择", new MsgCallback() {

					@Override
					public void callBack(Boolean result) {
						if (result != null && result.booleanValue()) {
							final Geometry geo = (Geometry) buttonGraphic.getGeometry();

							Geometry.Type type = geo.getType();
							double x=0d;
							double y=0d;
							if("POINT".equals(type.name())){
								final Point p = (Point) buttonGraphic.getGeometry();
								x=p.getX();
								y=p.getY();

							}else if("POLYGON".equals(type.name()) || "POLYLINE".equals(type.name())){
								MultiPath pg = (MultiPath)buttonGraphic.getGeometry();
								int pathSize = pg.getPathCount();
								if(pathSize>0)
								{
									int size = pg.getPathSize(0);
									if(size>0)
									{
										Point pt = pg.getPoint(0);
										x=pt.getX();
										y=pt.getY();
									}
								}
							}
							final double xx=x;
							final double yy=y;
							Handler handler = new Handler() {
								@Override
								public void handleMessage(Message msg) {
									super.handleMessage(msg);

									String addressResult = (String) msg.obj;
									FrmMap.this.getIntent().putExtra(MapReturn_X, xx);
									FrmMap.this.getIntent().putExtra(MapReturn_Y, yy);
									FrmMap.this.getIntent().putExtra(MapReturn_GridId, partGrid);
									FrmMap.this.getIntent().putExtra(MapReturn_SheQu, shequ);
									FrmMap.this.getIntent().putExtra(MapReturn_SheQuId, shequid);
									FrmMap.this.getIntent().putExtra(MapReturn_ShopId, ShopId);
									FrmMap.this.getIntent().putExtra(MapReturn_ShopName, ShopName);
									FrmMap.this.getIntent().putExtra(MapReturn_ShopTel, ShopNum);

									FrmMap.this.getIntent().putExtra(MapReturn_Address, addressResult);
									FrmMap.this.setResult(RESULT_OK, FrmMap.this.getIntent());
									FrmMap.this.finish();
								}
							};
							BaseThread thread = new BaseThread(handler) {
								@Override
								public void runThread() {
									Message msg = this.obtainMessage();
									try {
										ResponseResult<String> address = Request.getRequest().queryAddressString(partGrid);

										if (address.isSuccess()) {
											msg.obj = address.getResultObj();
										}
									} catch (Exception e) {
										e.printStackTrace();
									}
									this.sendMessage(msg);
								}
							};
							thread.start();
						}
					}
				});
			} else {
				Msg.showInfo(FrmMap.this, "对不起,未找到选择的商户!");
			}
		}

	}

	private void getSqByXY(final float x, final float y) {
		thread = new BaseThread(baseHandler) {
			@Override
			public void runThread() {
				Message msg = thread.obtainMessage();
				if (msg != null) {
					try {
						String mapServiceUrl = getCgtConfig().getMapServiceUrl();
						String querySqLayerUrl1 = ("/".equals(mapServiceUrl.charAt(mapServiceUrl.length() - 1)) ? mapServiceUrl : (mapServiceUrl + "/")) + getCgtConfig().getSqLayerIndex();
						selectedPoint = mapView.toMapPoint(x, y);
						Point pointMin = mapView.toMapPoint(x - 5, y - 5);
						Point pointMax = mapView.toMapPoint(x + 5, y + 5);
						Envelope buffer = new Envelope(pointMin.getX(), pointMin.getY(), pointMax.getX(), pointMax.getY());

						String[] fieldArrayPart = new String[] { "BGID", "COMMUNAME", "COMMUID"};
						FeatureSet results = MapUtil.executeQueryByGeometry(querySqLayerUrl1, buffer, null, true, fieldArrayPart, SpatialRelationship.INTERSECTS, mapView.getSpatialReference());

						Graphic[] graphics = results.getGraphics();
						Graphic graphic = graphics[0];
						gridid = (String)graphic.getAttributeValue(fieldArrayPart[0]);
						shequ = (String)graphic.getAttributeValue(fieldArrayPart[1]);
						shequid = (String)graphic.getAttributeValue(fieldArrayPart[2]);
					} catch (Exception e) {
						Msg.showInfo(FrmMap.this, "获取社区数据失败!");
					}
				}
			}

		};
		thread.start();
	}

	private void getShopByXY(final float x, final float y) {
		thread = new BaseThread(baseHandler) {

			@Override
			public void runThread() {
				Message msg = thread.obtainMessage();
				if (msg != null) {
					msg.what = HandlerStatus.MAP_QUERYSHOP;
					try {
						String mapServiceUrl = getCgtConfig().getMapServiceUrl();
						String queryLayerUrl = ("/".equals(mapServiceUrl.charAt(mapServiceUrl.length() - 1)) ? mapServiceUrl : (mapServiceUrl + "/")) + getCgtConfig().getShopLayerIndex();
						selectedPoint = mapView.toMapPoint(x, y);
						Point pointMin = mapView.toMapPoint(x - 10, y - 10);
						Point pointMax = mapView.toMapPoint(x + 10, y + 10);
						Envelope buffer = new Envelope(pointMin.getX(), pointMin.getY(), pointMax.getX(), pointMax.getY());
						FeatureSet results = MapUtil.executeQueryByGeometry(queryLayerUrl, buffer, null, true, fieldArrayPart2, SpatialRelationship.INTERSECTS, mapView.getSpatialReference());

						Graphic[] graphics = results.getGraphics();
						Graphic graphic = graphics[0];
						shequ = (String)graphic.getAttributeValue(fieldArrayPart2[5]);
						shequid = (String)graphic.getAttributeValue(fieldArrayPart2[4]);

						if (results != null && results.getGraphics() != null && results.getGraphics().length > 0) {
							msg.obj = results.getGraphics();
							msg.arg1 = HandlerStatus.HANDLE_OK;
						} else{
							msg.arg1 = HandlerStatus.HANDLE_FAIL;
						}
					} catch (Exception e) {
						msg.arg1 = HandlerStatus.HANDLE_FAIL;
					}
					thread.sendMessage(msg);
				}
			}
		};
		showProgress("获取商户中。。。", "地图取点");
		thread.start();
	}

	private void getPartByXY(final float x, final float y) {
		thread = new BaseThread(baseHandler) {

			@Override
			public void runThread() {
				Message msg = thread.obtainMessage();
				if (msg != null) {
					msg.what = HandlerStatus.MAP_QUERYPART;
					try {
						String mapServiceUrl = getCgtConfig().getMapServiceUrl();
//						String queryLayerUrl = ("/".equals(mapServiceUrl.charAt(mapServiceUrl.length() - 1)) ? mapServiceUrl : (mapServiceUrl + "/")) + getCgtConfig().getPartLayerIndex();
//						String queryLayerUrl = ApplicationMain.getInstance().getCgtConfig().getUnitServiceUrl()+"/0";
						String queryLayerUrl = ApplicationMain.getInstance().getCgtConfig().getUnitServiceUrl();
						String querySqLayerUrl = ("/".equals(mapServiceUrl.charAt(mapServiceUrl.length() - 1)) ? mapServiceUrl : (mapServiceUrl + "/")) + getCgtConfig().getSqLayerIndex();
						selectedPoint = mapView.toMapPoint(x, y);
						Point pointMin = mapView.toMapPoint(x - 25, y - 25);
						Point pointMax = mapView.toMapPoint(x + 25, y + 25);
						Envelope buffer = new Envelope(pointMin.getX(), pointMin.getY(), pointMax.getX(), pointMax.getY());
						Point pointMin1 = mapView.toMapPoint(x - 5, y - 5);
						Point pointMax1 = mapView.toMapPoint(x + 5, y + 5);
						Envelope buffer1 = new Envelope(pointMin1.getX(), pointMin1.getY(), pointMax1.getX(), pointMax1.getY());

						FeatureSet results = MapUtil.executeQueryByGeometry(queryLayerUrl, buffer, null, true, fieldArrayPart, SpatialRelationship.INTERSECTS, mapView.getSpatialReference());
						FeatureSet results1 = MapUtil.executeQueryByGeometry(querySqLayerUrl, buffer1, null, true, fieldArrayPart1, SpatialRelationship.INTERSECTS, mapView.getSpatialReference());

						Graphic[] graphics = results1.getGraphics();
						Graphic graphic = graphics[0];
						shequ = (String)graphic.getAttributeValue(fieldArrayPart1[0]);
						shequid = (String)graphic.getAttributeValue(fieldArrayPart1[1]);

						if (results != null && results.getGraphics() != null && results.getGraphics().length > 0) {
							msg.obj = results.getGraphics();
							msg.arg1 = HandlerStatus.HANDLE_OK;
						} else{
							msg.arg1 = HandlerStatus.HANDLE_FAIL;
						}
					} catch (Exception e) {
						msg.arg1 = HandlerStatus.HANDLE_ERROR;
					}
					thread.sendMessage(msg);
				}
			}
		};
		showProgress("获取部件中。。。", "地图取点");
		thread.start();
	}

	@Override
	public void getCamerasComplete(boolean arg0, TrueMapException arg1) {
		// TODO Auto-generated method stub

	}

	@Override
	public void getCutImageComplete(boolean arg0, String arg1,
									TrueMapException arg2) {
		// TODO Auto-generated method stub

	}

	@Override
	public void getSmallImageComplete(boolean arg0, String arg1,
									  TrueMapException arg2) {
		// TODO Auto-generated method stub

	}



	@Override
	public void onNeedUpdateCompassPos(StationInfoEx arg0) {
		// TODO Auto-generated method stub

	}

	@Override
	public void ItemClicked(TrackingItem arg0) {
		// TODO Auto-generated method stub

	}

	@Override
	public void ItemLabelClicked(TrackingItem arg0) {
		// TODO Auto-generated method stub

	}

	@Override
	public void mapBottonCheck(ControlBtn arg0) {
		// TODO Auto-generated method stub

	}

	@Override
	public void mapClicked(PointD arg0) {
		// TODO Auto-generated method stub

	}

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

	}

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

	}

	@Override
	public void mapLongPress(PointD arg0) {
		// TODO Auto-generated method stub

	}

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

	}

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

	}

	@Override
	public void controlBtnHold(String controlBtnTag) {
		if (controlBtnTag.equals("Before")) {
			holeingControlBtnTag = preTag;
			isPlay = true;
		} else if (controlBtnTag.equals("After")) {
			holeingControlBtnTag = nextTag;
			isPlay = true;
		}
		beginPlayImage();
	}
	private void beginPlayImage() {
		if (isPlay) {
			if (hodingTimer != null && hodingTask != null) {
				hodingTimer.cancel();
				hodingTask.cancel();
			}
			hodingTimer = new Timer();
			hodingTask = new TimerTask() {
				@Override
				public void run() {
					Message message = new Message();
					message.what = 1;
					hodingHandler.sendMessage(message);
				}
			};
			hodingTimer.schedule(hodingTask, 2000, 2000);
		}
	}
	private Timer hodingTimer = new Timer();
	private TimerTask hodingTask;
	Handler hodingHandler = new Handler() {
		@Override
		public void handleMessage(Message msg) {
			try {
				if (isPlay == false) {
					endPlayImage();
					return;
				}
				if (holeingControlBtnTag.equals(preTag)) {
				} else if (holeingControlBtnTag.equals(nextTag)) {
				}

			} catch (Exception e) {
				endPlayImage();
			}
			super.handleMessage(msg);
		}
	};

	private void endPlayImage() {
		hodingTask.cancel();
		hodingTimer.cancel();
	}

	@Override
	public void controlBtnSelected(String controlBtnTag) {
		StationInfo currentStation = new StationInfo();
		try {
			if (controlBtnTag.equals(zoominTag)) {
//				ldTV.zoomIn();
			} else if (controlBtnTag.equals(zoomOutTag)) {
//				ldTV.zoomOut();
			} else if (controlBtnTag.equals(beforeTag)) {
				if (isPlay) {
					isPlay = false;
					return;
				}
//				currentStation = ldTV.getCurrentStationJuction();
				if (currentStation.isNode()
						&& currentStation.getNodeIsBegin() == 1) {
					selectNode(currentStation);
				} else {
//					ldTV.findPreImage();
				}
			} else if (controlBtnTag.equals(afterTag)) {
				if (isPlay) {
					isPlay = false;
					return;
				}
//				currentStation = ldTV.getCurrentStationJuction();
				if (currentStation.isNode()
						&& currentStation.getNodeIsBegin() == 0) {
					selectNode(currentStation);
				} else {
//					ldTV.findNextImage();
				}
			}
		} catch (TrueMapException e) {
			ShowToast(e.getMessage());
		}

	}


	@Override
	//安卓重写返回键事件
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		if(keyCode== KeyEvent.KEYCODE_BACK){
			finish();
		}
		return true;
	}

	@Override
	public void imageClick(ImageTouchEvent arg0) {
		// TODO Auto-generated method stub

	}

	@Override
	public void imageFling(ImageTouchEvent arg0, ImageTouchEvent arg1,
						   float arg2, float arg3) {
		// TODO Auto-generated method stub

	}

	@Override
	public void imageHold(ImageTouchEvent arg0) {
		// TODO Auto-generated method stub

	}

	@Override
	public void imageMarkerSelected(ImageTouchEvent arg0,
									ArrayList<MarkerInfo> arg1) {
		// TODO Auto-generated method stub

	}

	@Override
	public void imageTouch(ImageTouchEvent arg0) {
		// TODO Auto-generated method stub

	}

	@Override
	public void imageonDoubleTap(ImageTouchEvent arg0) {
		// TODO Auto-generated method stub

	}
	// 接口的回调
	// 是否得到影像,影像id
	@Override
	public void imageGetOver(boolean arg0, String arg1) {

	}

	@Override
	public void imageIDChanged(String arg0) {
		// TODO Auto-generated method stub

	}

	@Override
	public void imageTypeChanged(String arg0) {
		// TODO Auto-generated method stub

	}

	@Override
	public void yawChanged(double arg0) {
		// TODO Auto-generated method stub

	}

	@Override
	public void zoomScalseChanged(double arg0) {
		// TODO Auto-generated method stub

	}
}