基本信息
源码名称:基于android平台下实时定位及移动轨迹记录系统
源码大小:3.67M
文件格式:.zip
开发语言:Java
更新时间:2016-05-10
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍



package com.example.moving2;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.ImageButton;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.Spinner;

import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BitmapDescriptor;
import com.baidu.mapapi.map.MapStatusUpdate;
import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.MyLocationConfiguration;
import com.baidu.mapapi.map.MyLocationConfiguration.LocationMode;
import com.baidu.mapapi.map.MyLocationData;
import com.baidu.mapapi.model.LatLng;

public class MainActivity extends Activity {
 
 private ImageButton startButton;  //开始运动按钮
 private Button recordButton; //运动记录按钮
 private Button styleButton;  //目标运动按钮
 
 private Spinner setStyle;
 private String style = "步行";   //所选择的运动方式
 private static final String[] selectStyle={
  "步行","跑步","骑行"
 };
 
 
 // 定位相关
 LocationClient mLocClient;
 public MyLocationListenner myListener = new MyLocationListenner();
 private LocationMode mCurrentMode;
 BitmapDescriptor mCurrentMarker;
 MapView mMapView;
 BaiduMap mBaiduMap;
 // UI相关
 OnCheckedChangeListener radioButtonListener;
 Button requestLocButton;
 boolean isFirstLoc = true;// 是否首次定位
 
 
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  SDKInitializer.initialize(getApplicationContext());
  setContentView(R.layout.activity_main);
  
  startButton = (ImageButton)findViewById(R.id.mStartButton);
  recordButton = (Button)findViewById(R.id.mRecordButton);
  styleButton = (Button)findViewById(R.id.mStyleButton);
  
  setStyle = (Spinner)findViewById(R.id.mStyleSpinner);
  /*
   * 运动方式选择
   */
  ArrayAdapter<String> styleAdapter = new ArrayAdapter<String>(this,
     R.layout.main_spinner,selectStyle);
  int styleId = android.R.layout.simple_spinner_dropdown_item;
  styleAdapter.setDropDownViewResource(styleId);
  setStyle.setAdapter(styleAdapter);
  //选择响应
  setStyle.setOnItemSelectedListener(new OnItemSelectedListener() {

   @Override
   public void onItemSelected(AdapterView<?> arg0, View arg1,
     int arg2, long arg3) {
    // TODO Auto-generated method stub
    arg0.setVisibility(View.VISIBLE);
    //style = selectStyle[arg2];
    style = arg0.getItemAtPosition(arg2).toString();
   }
   
   @Override
   public void onNothingSelected(AdapterView<?> arg0) {
    // TODO Auto-generated method stub
    
   }
  });
  
  startButton.setOnClickListener(new OnClickListener() {
   
   public void onClick(View arg0) {
    // TODO Auto-generated method stub
    Intent gotoMovActivity = new Intent();
    gotoMovActivity.setClass(MainActivity.this, MovingActivity.class);
    gotoMovActivity.putExtra("timestyle"," ");
    gotoMovActivity.putExtra("disstyle", " ");
    gotoMovActivity.putExtra("sportStyle", style);
    MainActivity.this.startActivity(gotoMovActivity);
   }
  });
  
  recordButton.setOnClickListener(new OnClickListener() {
   
   @Override
   public void onClick(View arg0) {
    // TODO Auto-generated method stub
    Intent gotoRecordActivity = new Intent();
    gotoRecordActivity.setClass(MainActivity.this, RecordActivity.class);
    MainActivity.this.startActivity(gotoRecordActivity);
   }
  });
  
  styleButton.setOnClickListener(new OnClickListener() {
   
   @Override
   public void onClick(View arg0) {
    // TODO Auto-generated method stub
    Intent gotoStyleActivity = new Intent();
    gotoStyleActivity.setClass(MainActivity.this, StyleActivity.class);
    MainActivity.this.startActivity(gotoStyleActivity);
   }
  });

  
  requestLocButton = (Button) findViewById(R.id.button1);
  mCurrentMode = LocationMode.NORMAL;
  requestLocButton.setText("普通");
  OnClickListener btnClickListener = new OnClickListener() {
   public void onClick(View v) {
    switch (mCurrentMode) {
    case NORMAL:
     requestLocButton.setText("跟随");
     mCurrentMode = LocationMode.FOLLOWING;
     mBaiduMap
       .setMyLocationConfigeration(new MyLocationConfiguration(
         mCurrentMode, true, mCurrentMarker));
     break;
    case COMPASS:
     requestLocButton.setText("普通");
     mCurrentMode = LocationMode.NORMAL;
     mBaiduMap
       .setMyLocationConfigeration(new MyLocationConfiguration(
         mCurrentMode, true, mCurrentMarker));
     break;
    case FOLLOWING:
     requestLocButton.setText("罗盘");
     mCurrentMode = LocationMode.COMPASS;
     mBaiduMap
       .setMyLocationConfigeration(new MyLocationConfiguration(
         mCurrentMode, true, mCurrentMarker));
     break;
    }
   }
  };
  requestLocButton.setOnClickListener(btnClickListener);

  //RadioGroup group = (RadioGroup) this.findViewById(R.id.radioGroup);
  radioButtonListener = new OnCheckedChangeListener() {
   @Override
   public void onCheckedChanged(RadioGroup group, int checkedId) {
   }
  };
  //group.setOnCheckedChangeListener(radioButtonListener);

  // 地图初始化
  mMapView = (MapView) findViewById(R.id.bmapView);
  mBaiduMap = mMapView.getMap();
  // 开启定位图层
  mBaiduMap.setMyLocationEnabled(true);
  // 定位初始化
  mLocClient = new LocationClient(this);
  mLocClient.registerLocationListener(myListener);
  LocationClientOption option = new LocationClientOption();
  option.setOpenGps(true);// 打开gps
  option.setCoorType("bd09ll"); // 设置坐标类型
  option.setScanSpan(1000);
  mLocClient.setLocOption(option);
  mLocClient.start();
 }
 

 //*** 定位SDK监听函数

 public class MyLocationListenner implements BDLocationListener {

  @Override
  public void onReceiveLocation(BDLocation location) {
   // map view 销毁后不在处理新接收的位置
   if (location == null || mMapView == null)
    return;
   MyLocationData locData = new MyLocationData.Builder()
     .accuracy(location.getRadius())
     // 此处设置开发者获取到的方向信息,顺时针0-360
     .direction(100).latitude(location.getLatitude())
     .longitude(location.getLongitude()).build();
   mBaiduMap.setMyLocationData(locData);
   if (isFirstLoc) {
    isFirstLoc = false;
    LatLng ll = new LatLng(location.getLatitude(),
      location.getLongitude());
    MapStatusUpdate u = MapStatusUpdateFactory.newLatLng(ll);
    mBaiduMap.animateMapStatus(u);
   }
  }

  public void onReceivePoi(BDLocation poiLocation) {
  }
 }
 
 
 
 /**
  * 设置底图显示模式
  *
  * @param view
  */
 public void setMapMode(View view) {
  boolean checked = ((RadioButton) view).isChecked();
  switch (view.getId()) {
  case R.id.normal:
   if (checked)
    mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
   break;
  case R.id.statellite:
   if (checked)
    mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);
   break;
  }
 }
 
 /**
  * 设置是否显示交通图
  *
  * @param view
  */
 public void setTraffic(View view) {
  mBaiduMap.setTrafficEnabled(((CheckBox) view).isChecked());
 }
 @Override
 protected void onPause() {
  mMapView.onPause();
  super.onPause();
 }

 @Override
 protected void onResume() {
  mMapView.onResume();
  super.onResume();
 }

 @Override
 protected void onDestroy() {
  // 退出时销毁定位
  mLocClient.stop();
  // 关闭定位图层
  mBaiduMap.setMyLocationEnabled(false);
  mMapView.onDestroy();
  mMapView = null;
  super.onDestroy();
 }
}