package com.snail.travellingTrail.trailMap.controller;
import java.lang.reflect.Type;
import java.util.ArrayList;
import net.tsz.afinal.FinalHttp;
import net.tsz.afinal.http.AjaxCallBack;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Window;
import android.widget.Toast;
import com.amap.api.maps2d.AMap;
import com.amap.api.maps2d.CameraUpdateFactory;
import com.amap.api.maps2d.MapView;
import com.amap.api.maps2d.model.LatLng;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.snail.travellingTrail.R;
import com.snail.travellingTrail.common.RequestAddress;
import com.snail.travellingTrail.common.utils.DialogTool;
import com.snail.travellingTrail.common.utils.ToastHelper;
import com.snail.travellingTrail.trailMap.model.Footprint;
//import com.snail.travellingTrail.trailMap.model.MapOperator;
import com.snail.travellingTrail.trailMap.model.MapOperator;
public class TrailMapActivity extends Activity
{
MapView mapView = null;
AMap aMap;
ArrayList<Footprint> footprints;
MapOperator mapOperator;
long travelId;
long userId;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_trail_map);
findView();
mapView.onCreate(savedInstanceState);// 必须要写
init();
initMap();
getFootprintData();
}
private void findView()
{
mapView = (MapView) findViewById(R.id.act_trail_map_mapview);
}
private void init()
{
travelId = getIntent().getExtras().getLong("travelId");
// userId = getIntent().getExtras().getLong("userId");
userId = 1;
}
/**
* 初始化AMap对象
*/
public void initMap()
{
if (aMap == null) aMap = mapView.getMap();
// LatLng centerPointLatLng = new LatLng(35.436, 105.203); // 宝鸡 //纬度、经度
mapOperator = new MapOperator(TrailMapActivity.this, mapView, aMap);
// aMap.moveCamera(CameraUpdateFactory.zoomTo(9f));
}
/**
* 方法必须重写
*/
@Override
protected void onResume() {
super.onResume();
mapView.onResume();
}
/**
* 方法必须重写
*/
@Override
protected void onPause() {
super.onPause();
mapView.onPause();
}
/**
* 方法必须重写
*/
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
mapView.onSaveInstanceState(outState);
}
/**
* 方法必须重写
*/
@Override
protected void onDestroy() {
super.onDestroy();
// 在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理
mapView.onDestroy();
}
private void getFootprintData()
{
FinalHttp finalHttp = new FinalHttp();
DialogTool.showProgressDialog(TrailMapActivity.this, "加载足迹中..");
finalHttp.get(RequestAddress.GET_TRAVEL_MAP_FOOTPRINTS + travelId, new AjaxCallBack<String>(){
@Override
public void onFailure(Throwable t, int errorNo, String strMsg)
{
DialogTool.cancelProgressDialog();
if (strMsg != null)
{
Log.v("onFailure", strMsg);
ToastHelper.showToast(TrailMapActivity.this,
"加载失败,错误代码:" + errorNo +
"\n错误信息:\n" + strMsg, Toast.LENGTH_SHORT);
}
else {
ToastHelper.showToast(TrailMapActivity.this,
"加载失败,错误代码:" + errorNo, Toast.LENGTH_SHORT);
}
}
@Override
public void onSuccess(String result)
{
DialogTool.cancelProgressDialog();
Log.v("onSuccess", result);
Type type = new TypeToken<ArrayList<Footprint>>(){ }.getType();
Gson gson = new Gson();
footprints = gson.fromJson(result, type);
mapOperator.drawFootprintsLine(footprints);
}
});
}
}