package com.wise.wawc;
import java.util.List;
import com.baidu.mapapi.BMapManager;
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.Overlay;
import com.baidu.mapapi.map.OverlayItem;
import com.baidu.platform.comapi.basestruct.GeoPoint;
import com.wise.data.CarData;
import com.wise.pubclas.Constant;
import com.wise.pubclas.GetSystem;
import com.wise.pubclas.Variable;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import android.widget.TextView;
import android.widget.Toast;
/**
* 车辆位置
*
* @author honesty
*/
public class CarLocationActivity extends Activity {
private static final String TAG = "CarLocationActivity";
MapView mMapView = null;
MapController mMapController = null;
PopupWindow mPopupWindow;
List<Overlay> overlays;
LinearLayout ll_activity_car_location_bottom;
CarData carData;
double Lat, Lon;
GeoPoint geoPoint;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WawcApplication app = (WawcApplication)this.getApplication();
if (app.mBMapManager == null) {
app.mBMapManager = new BMapManager(getApplicationContext());
app.mBMapManager.init(WawcApplication.strKey,null);
}
setContentView(R.layout.activity_car_location);
TextView tv_car_name = (TextView) findViewById(R.id.tv_car_name);
mMapView = (MapView) findViewById(R.id.mv_car_location);
mMapView.setBuiltInZoomControls(true);
mMapController = mMapView.getController();
GeoPoint point = new GeoPoint((int) (39.915 * 1E6),
(int) (116.404 * 1E6));
mMapController.setCenter(point);// 设置地图中心点
mMapController.setZoom(18);// 设置地图zoom级别
overlays = mMapView.getOverlays();
mMapView.regMapViewListener(app.mBMapManager, mkMapViewListener);
// TODO 修改
Intent intent = getIntent();
int index = intent.getIntExtra("index", 0);
carData = Variable.carDatas.get(index);
tv_car_name.setText(carData.getObj_name());
Lat = Double.valueOf(carData.getLat());
Lon = Double.valueOf(carData.getLon());
Log.d(TAG, "carData.getLat() = " + carData.getLat());
geoPoint = new GeoPoint((int) (Lat * 1E6), (int) (Lon * 1E6));
OverlayItem item1 = new OverlayItem(geoPoint, "item1", "item1");
Drawable mark = getResources().getDrawable(
R.drawable.body_icon_location);
item1.setMarker(mark);
item1.setAnchor(OverlayItem.ALING_CENTER);
OverlayCar overlayCar = new OverlayCar(mark, mMapView);
overlays.add(overlayCar);
overlayCar.addItem(item1);
mMapController.setCenter(geoPoint);
ImageView iv_activity_car_location_back = (ImageView) findViewById(R.id.iv_activity_car_location_back);
iv_activity_car_location_back.setOnClickListener(onClickListener);
ImageView iv_activity_car_location_share = (ImageView) findViewById(R.id.iv_activity_car_location_share);
iv_activity_car_location_share.setOnClickListener(onClickListener);
Button bt_activity_car_location_periphery = (Button) findViewById(R.id.bt_activity_car_location_periphery);
bt_activity_car_location_periphery.setOnClickListener(onClickListener);
Button bt_activity_car_location_travel = (Button) findViewById(R.id.bt_activity_car_location_travel);
bt_activity_car_location_travel.setOnClickListener(onClickListener);
Button bt_activity_car_location_findCar = (Button) findViewById(R.id.bt_activity_car_location_findCar);
bt_activity_car_location_findCar.setOnClickListener(onClickListener);
ll_activity_car_location_bottom = (LinearLayout) findViewById(R.id.ll_activity_car_location_bottom);
}
OnClickListener onClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.iv_activity_car_location_back:
finish();
break;
case R.id.iv_activity_car_location_share:
Toast.makeText(CarLocationActivity.this,
R.string.travel_map_urrent, Toast.LENGTH_SHORT).show();
boolean isCurrent = mMapView.getCurrentMap();
System.out.println("isCurrent = " + isCurrent);
break;
case R.id.bt_activity_car_location_periphery:
ShowPop();
break;
case R.id.bt_activity_car_location_findCar:
GeoPoint pt1 = new GeoPoint((int) (Variable.Lat * 1E6),
(int) (Variable.Lon * 1E6));
GetSystem.FindCar(CarLocationActivity.this, pt1, geoPoint,
"起始", "结束");
break;
case R.id.bt_activity_car_location_travel:// 车辆行程
Toast.makeText(CarLocationActivity.this, R.string.new_version,
Toast.LENGTH_SHORT).show();
// CarLocationActivity.this.startActivity(new
// Intent(CarLocationActivity.this, TravelActivity.class));
break;
case R.id.tv_item_car_location_oil:
ToSearchMap(getString(R.string.oil_station));
break;
case R.id.tv_item_car_location_Parking:
ToSearchMap(getString(R.string.parking));
break;
case R.id.tv_item_car_location_4s:
ToSearchMap(getString(R.string.four_s));
break;
case R.id.tv_item_car_location_specialist:
ToSearchMap(getString(R.string.specialist));
break;
case R.id.tv_item_car_location_automotive_beauty:
ToSearchMap(getString(R.string.automotive_beauty));
break;
case R.id.tv_item_car_location_wash:
ToSearchMap(getString(R.string.wash));
break;
}
}
};
private void ToSearchMap(String keyWord) {
mPopupWindow.dismiss();
Intent intent = new Intent(CarLocationActivity.this,
SearchMapActivity.class);
intent.putExtra("keyWord", keyWord);
startActivity(intent);
}
/**
* 弹出popupwindow
*/
private void ShowPop() {
int Height = ll_activity_car_location_bottom.getMeasuredHeight();
LayoutInflater mLayoutInflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
View popunwindwow = mLayoutInflater.inflate(R.layout.item_car_location,
null);
mPopupWindow = new PopupWindow(popunwindwow, LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT);
mPopupWindow.setBackgroundDrawable(new BitmapDrawable());
mPopupWindow.setFocusable(true);
mPopupWindow.setOutsideTouchable(true);
mPopupWindow.showAtLocation(
findViewById(R.id.bt_activity_car_location_periphery),
Gravity.BOTTOM, 0, Height);
TextView tv_item_car_location_oil = (TextView) popunwindwow
.findViewById(R.id.tv_item_car_location_oil);
tv_item_car_location_oil.setOnClickListener(onClickListener);
TextView tv_item_car_location_Parking = (TextView) popunwindwow
.findViewById(R.id.tv_item_car_location_Parking);
tv_item_car_location_Parking.setOnClickListener(onClickListener);
TextView tv_item_car_location_4s = (TextView) popunwindwow
.findViewById(R.id.tv_item_car_location_4s);
tv_item_car_location_4s.setOnClickListener(onClickListener);
TextView tv_item_car_location_specialist = (TextView) popunwindwow
.findViewById(R.id.tv_item_car_location_specialist);
tv_item_car_location_specialist.setOnClickListener(onClickListener);
TextView tv_item_car_location_automotive_beauty = (TextView) popunwindwow
.findViewById(R.id.tv_item_car_location_automotive_beauty);
tv_item_car_location_automotive_beauty
.setOnClickListener(onClickListener);
TextView tv_item_car_location_wash = (TextView) popunwindwow
.findViewById(R.id.tv_item_car_location_wash);
tv_item_car_location_wash.setOnClickListener(onClickListener);
}
class OverlayCar extends ItemizedOverlay<OverlayItem> {
public OverlayCar(Drawable arg0, MapView arg1) {
super(arg0, arg1);
}
@Override
protected boolean onTap(int arg0) {
return true;
}
@Override
public boolean onTap(GeoPoint arg0, MapView arg1) {
super.onTap(arg0, arg1);
System.out.println("MapView的点击事件");
return false;
}
}
@Override
protected void onResume() {
super.onResume();
mMapView.onResume();
}
@Override
protected void onPause() {
super.onPause();
mMapView.onPause();
}
@Override
protected void onDestroy() {
super.onDestroy();
mMapView.destroy();
}
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
mMapView.onSaveInstanceState(outState);
};
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
mMapView.onRestoreInstanceState(savedInstanceState);
};
MKMapViewListener mkMapViewListener = new MKMapViewListener() {
@Override
public void onMapMoveFinish() {
}
@Override
public void onMapLoadFinish() {
}
@Override
public void onMapAnimationFinish() {
}
@Override
public void onGetCurrentMap(Bitmap arg0) {
System.out.println("截取成功");
GetSystem.saveImageSD(arg0, Constant.picPath, Constant.ShareImage,
50);
String imagePath = Constant.picPath + Constant.ShareImage;
String url = "http://api.map.baidu.com/geocoder?location="
+ carData.getLat() + "," + carData.getLon()
+ "&coord_type=bd09ll&output=html";
StringBuffer sb = new StringBuffer();
sb.append("【位置】 ");
if (carData.getGps_time() != null
&& !carData.getGps_time().equals("")) {
try {
sb.append(carData.getGps_time().substring(5, 16) + " ");
} catch (Exception e) {
e.printStackTrace();
sb.append(carData.getGps_time() + " ");
}
}
sb.append(carData.getObj_name());
sb.append(" 位于" + carData.getAdress());
sb.append(" " + url);
GetSystem.share(CarLocationActivity.this, sb.toString(), imagePath,
(float) Lat, (float) Lon, "位置", url);
}
@Override
public void onClickMapPoi(MapPoi arg0) {
}
};
}