简单百度地图集成

来源:互联网 发布:安利云服务软件 编辑:程序博客网 时间:2024/05/17 04:27
package com.ff.office.oa.activity;import android.app.Activity;import android.app.ProgressDialog;import android.os.Bundle;import android.util.Log;import android.view.KeyEvent;import android.view.View;import android.view.Window;import android.widget.CheckBox;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.RelativeLayout;import android.widget.TextView;import android.widget.Toast;import com.baidu.location.BDLocation;import com.baidu.location.BDLocationListener;import com.baidu.location.LocationClient;import com.baidu.location.LocationClientOption;import com.ff.office.oa.R;import com.ff.office.oa.app.AppApplication;import com.ff.office.oa.model.KeyValue;import com.ff.office.oa.util.URLS;import com.ff.office.oa.util.UploadAsyncTask;import org.json.JSONException;import org.json.JSONObject;import java.util.ArrayList;import java.util.Calendar;import java.util.List;/** * Created by Administrator */public  class QianDao_Activity extends Activity implements View.OnClickListener ,UploadAsyncTask.OnUpload {    private LocationClient mLocationClient = null;    private TextView mTextView;    private TextView qiandao_submit ;    private ImageView imageView;    private LinearLayout ll_1, ll_2;    private RelativeLayout backLayout;    private TextView time_1, time_2 ;    private CheckBox cb_1, cb_2;    ProgressDialog showDialog = null;// 定义进度条    private List<KeyValue> params;    private List<KeyValue> url;    private String flag = "";    private String time ;    private String AddrStr;    //纬度    private String weidu;    //经度    private String jingdu;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        requestWindowFeature(Window.FEATURE_NO_TITLE);        setContentView(R.layout.qiandao_activity);        imageView = (ImageView) findViewById(R.id.image_view);        backLayout = (RelativeLayout) findViewById(R.id.common_back);        qiandao_submit = (TextView) findViewById(R.id.qiandao_submit);        qiandao_submit.setOnClickListener(this);        backLayout.setOnClickListener(this);        ll_1 = (LinearLayout) findViewById(R.id.ll_1);        ll_2 = (LinearLayout) findViewById(R.id.ll_2);        time_1 = (TextView) findViewById(R.id.time_1);        time_2 = (TextView) findViewById(R.id.time_2);        mTextView = (TextView) findViewById(R.id.mTextView);        cb_1 = (CheckBox) findViewById(R.id.cb_1);        cb_2 = (CheckBox) findViewById(R.id.cb_2);        ll_1.setOnClickListener(this);        ll_2.setOnClickListener(this);        cb_1.setClickable(false);        cb_2.setClickable(false);        //获取当前位置        mLocationClient = new LocationClient(this);        LocationClientOption option = new LocationClientOption();        option.setOpenGps(true);                                //打开gps        option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy        );//可选,默认高精度,设置定位模式,高精度,低功耗,仅设备        option.setCoorType("bd09ll");                           //设置坐标类型为bd09ll        option.setPriority(LocationClientOption.NetWorkFirst);  //设置网络优先        option.setScanSpan(5000);                               //定时定位,每隔5秒钟定位一次。        mLocationClient.setLocOption(option);        mLocationClient.registerLocationListener(new BDLocationListener() {            @Override            public void onReceiveLocation(BDLocation location) {                if (location == null)                    return ;                StringBuffer sb = new StringBuffer(256);                sb.append(location.getLatitude());                weidu = sb.toString();                StringBuffer sb2 = new StringBuffer(256);                sb2.append(location.getLongitude());                jingdu = sb2.toString();                StringBuffer sb3 = new StringBuffer(256);                sb3.append(location.getAddrStr());                AddrStr = sb3.toString();                StringBuffer sb1 = new StringBuffer(256);                sb1.append("\n当前位置 : ");                sb1.append(location.getAddrStr());                mTextView.setText(sb1.toString());//                if (location.getLocType() == BDLocation.TypeGpsLocation){//                    sb.append("\nspeed : ");//                    sb.append(location.getSpeed());//                    sb.append("\nsatellite : ");//                    sb.append(location.getSatelliteNumber());//                    sb.append("\naddr : ");//                    sb.append(location.getAddrStr());//                    mTextView.setText(sb.toString());//                } else if (location.getLocType() == BDLocation.TypeNetWorkLocation){//                    sb.append("\naddr : ");//                    sb.append(location.getAddrStr());//                }//                sb.append("\naddr : ");//                sb.append(location.getAddrStr());            }        });    }    //开始获取    @Override    protected void onStart() {        super.onStart();        mLocationClient.start();    }    //结束关闭    @Override    public void onDestroy(){        if (mLocationClient != null && mLocationClient.isStarted()){            mLocationClient.stop();            mLocationClient = null;        }        super.onDestroy();    }//获取地址    @Override    public void beforeSubmit() {    }    @Override    public void afterSubmit(String result) {        Log.d(AppApplication.DEBUG, "提交  result------>" + result);        System.out.println("提交  ----->"+result);        try {            JSONObject jsonObject = new JSONObject(result);            if (jsonObject.getString("success").equals("true")) {                    Toast.makeText(this, "成功", Toast.LENGTH_SHORT).show();                    finish();            } else {                Toast.makeText(this, "失败", Toast.LENGTH_SHORT).show();            }        } catch (JSONException e) {            e.printStackTrace();        }    }    Calendar calendar;    @Override    public void onClick(View v) {        switch (v.getId()) {            case R.id.qiandao_submit :                if (!flag.equals("")){                calendar = Calendar.getInstance();                long unixTime = calendar.getTimeInMillis();//这是时间戳               time =calendar.get(Calendar.YEAR)+""+(calendar.get(Calendar.MONTH)+1)+""+calendar.get(Calendar.DAY_OF_MONTH)+""+ calendar.get(Calendar.HOUR_OF_DAY) +                        "" + calendar.get(Calendar.MINUTE) +                        "";                params = new ArrayList<KeyValue>();                url = new ArrayList<KeyValue>();                url.add(new KeyValue("url", URLS.PARENT + URLS.OFFICE_QIANDAO));                params.add(new KeyValue("userid", AppApplication.USER_ID));                params.add(new KeyValue("flag", flag));                params.add(new KeyValue("begintime",time ));//上班时间                params.add(new KeyValue("address", AddrStr));//地址信息//                params.add(new KeyValue("createtime", checkId));//创建时间                params.add(new KeyValue("coordinate1", jingdu)); //经度                params.add(new KeyValue("coordinate2", weidu)); //纬度                UploadAsyncTask task1 = new UploadAsyncTask(this,this);                System.out.println("params  --  - -->"+params);                task1.execute(url, params);                }else {                    Toast.makeText(this,"请选择签到类型", Toast.LENGTH_SHORT).show();                }                break;            case R.id.ll_1:                flag = "";                if (cb_2.isChecked()) {                    cb_2.setChecked(false);                    cb_1.setChecked(true);                    time_1.setVisibility(View.VISIBLE);                    time_2.setVisibility(View.GONE);                    flag = "1";//                    time_1.setText(time);                } else if (cb_1.isChecked()) {                    time_1.setVisibility(View.VISIBLE);//                    time_1.setText(time);                    flag = "1";                } else {                    cb_1.setChecked(true);                    time_1.setVisibility(View.VISIBLE);                    flag = "1";//                    time_1.setText(time);                }                break;            case R.id.ll_2:                flag = "";                if (cb_1.isChecked()) {                    cb_1.setChecked(false);                    cb_2.setChecked(true);                    time_1.setVisibility(View.GONE);                    time_2.setVisibility(View.VISIBLE);                    flag = "2";//                    time_2.setText(time);                } else if (cb_2.isChecked()) {                    time_2.setVisibility(View.VISIBLE);//                    time_2.setText(time);                    flag = "2";                } else {                    cb_2.setChecked(true);                    time_2.setVisibility(View.VISIBLE);//                    time_2.setText(time);                    flag = "2";                }                break;            case R.id.image_view:            break;            case R.id.common_back:                finish();                break;        }    }    public boolean onKeyDown(int keyCode, KeyEvent event) {        if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {            finish();            return true;        }        return false;    }    }这是百度地图显示获取位置信息的
带提交选择上传
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    >    <RelativeLayout        android:layout_width="match_parent"        android:layout_height="55dp"        android:background="@drawable/office_top"        android:orientation="vertical">        <RelativeLayout            android:id="@+id/common_back"            android:layout_width="40dp"            android:layout_height="40dp"            android:layout_alignParentLeft="true"            android:layout_centerVertical="true">            <ImageView                android:layout_width="10dp"                android:layout_height="18dp"                android:layout_alignParentLeft="true"                android:layout_centerVertical="true"                android:layout_marginLeft="10dp"                android:src="@drawable/office_back"/>        </RelativeLayout>        <TextView            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_centerHorizontal="true"            android:layout_centerVertical="true"            android:text="签到/签退"            android:textColor="@color/white"            android:textSize="20sp"            android:textStyle="bold"/>        <TextView            android:id="@+id/qiandao_submit"            android:layout_width="wrap_content"            android:layout_height="fill_parent"            android:layout_alignParentRight="true"            android:layout_centerVertical="true"            android:layout_marginRight="10dp"            android:gravity="center"            android:text="确定"/>    </RelativeLayout>  <RelativeLayout        android:layout_width="match_parent"        android:background="@color/light_gery"        android:layout_height="40dp" >        <TextView            android:id="@+id/mTextView"            android:gravity="center"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:paddingLeft="@dimen/ui_10_dip"            android:text=""            />    </RelativeLayout>    <View        android:layout_width="match_parent"        android:layout_height="1dp"        android:background="#ff0000" />    <LinearLayout        android:id="@+id/ll_1"        android:layout_width="match_parent"        android:layout_height="50dp"        android:orientation="horizontal">        <CheckBox            android:id="@+id/cb_1"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_gravity="center_vertical"            android:layout_marginLeft="10dp"            android:padding="5dp"            android:text="上班签到" />        <TextView            android:id="@+id/time_1"            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_gravity="center_vertical"            android:layout_marginLeft="10dp"            android:layout_weight="1"            android:padding="5dp"            android:text=""            android:textSize="18sp"            android:visibility="gone" />    </LinearLayout>    <View        android:layout_width="match_parent"        android:layout_height="1dp"        android:background="#ff0000" />    <LinearLayout        android:id="@+id/ll_2"        android:layout_width="match_parent"        android:layout_height="50dp"        android:orientation="horizontal">        <CheckBox            android:id="@+id/cb_2"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_gravity="center_vertical"            android:layout_marginLeft="10dp"            android:padding="5dp"            android:text="下班签退" />        <TextView            android:id="@+id/time_2"            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_gravity="center_vertical"            android:layout_marginLeft="10dp"            android:layout_weight="1"            android:padding="5dp"            android:text=""            android:textSize="18sp"            android:visibility="gone" />    </LinearLayout>    <View        android:layout_width="match_parent"        android:layout_height="1dp"        android:background="#ff0000" />    <LinearLayout        android:layout_marginTop="50dp"        android:visibility="gone"        android:layout_marginLeft="50dp"        android:id="@+id/ll_Photograph"        android:layout_width="wrap_content"        android:layout_height="wrap_content">        <ImageView            android:id="@+id/image_view"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:background="@drawable/icon_addpic_focused"            android:layout_gravity="center" />    </LinearLayout></LinearLayout>

显示百度地图定位的
package com.ff.office.oa.activity;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.KeyEvent;import android.view.View;import android.view.Window;import android.widget.ImageView;import android.widget.RelativeLayout;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.MyLocationData;import com.baidu.mapapi.model.LatLng;import com.ff.office.oa.R;//import com.mobclick.android.MobclickAgent;/** * 首次打开程序操作提示 *  * @author smile *  */public class QianDao_GuanLi_Activity extends Activity implements View.OnClickListener {   public MapView mapView;   public BaiduMap baiduMap;   private ImageView image_View,image_View1;   private RelativeLayout backLayout;   // 定位相关声明   public LocationClient locationClient = null;   // 自定义图标   BitmapDescriptor mCurrentMarker = null;   boolean isFirstLoc = true;// 是否首次定位   public BDLocationListener myListener = new BDLocationListener() {      @Override      public void onReceiveLocation(BDLocation location) {         // map view 销毁后不在处理新接收的位置         if (location == null || mapView == null)            return;         MyLocationData locData = new MyLocationData.Builder()               .accuracy(location.getRadius())                     // 此处设置开发者获取到的方向信息,顺时针0-360               .direction(100).latitude(location.getLatitude())               .longitude(location.getLongitude()).build();         baiduMap.setMyLocationData(locData); // 设置定位数据         if (isFirstLoc) {            isFirstLoc = false;            LatLng ll = new LatLng(location.getLatitude(),                  location.getLongitude());            MapStatusUpdate u = MapStatusUpdateFactory                  .newLatLngZoom(ll, 15); // 设置地图中心点以及缩放级别            // MapStatusUpdate u = MapStatusUpdateFactory.newLatLng(ll);            baiduMap.animateMapStatus(u);         }      }   };   @Override   protected void onCreate(Bundle savedInstanceState) {      super.onCreate(savedInstanceState);      requestWindowFeature(Window.FEATURE_NO_TITLE);      // 在使用SDK各组件之前初始化context信息,传入ApplicationContext      SDKInitializer.initialize(getApplicationContext());      setContentView(R.layout.office_personal_qiandao);      mapView = (MapView) this.findViewById(R.id.mapView); // 获取地图控件引用      image_View = (ImageView) findViewById(R.id.image_View);      image_View1 = (ImageView) findViewById(R.id.image_View1);      backLayout = (RelativeLayout) findViewById(R.id.common_back);      backLayout.setOnClickListener(this);      image_View.setOnClickListener(this);      image_View1.setOnClickListener(this);      baiduMap = mapView.getMap();      // 开启定位图层      baiduMap.setMyLocationEnabled(true);      locationClient = new LocationClient(getApplicationContext()); // 实例化LocationClient      locationClient.registerLocationListener(myListener); // 注册监听函数      this.setLocationOption(); // 设置定位参数//    locationClient.start(); // 开始定位      // baiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL); // 设置为一般地图      // baiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE); //设置为卫星地图      // baiduMap.setTrafficEnabled(true); //开启交通图   }   @Override   protected void onStart() {      super.onStart();      locationClient.start();   }   // 三个状态实现地图生命周期管理   @Override   protected void onDestroy() {      // 退出时销毁定位      locationClient.stop();      baiduMap.setMyLocationEnabled(false);      // TODO Auto-generated method stub      super.onDestroy();      mapView.onDestroy();      mapView = null;   }   @Override   protected void onResume() {      // TODO Auto-generated method stub      super.onResume();      mapView.onResume();   }   @Override   protected void onPause() {      // TODO Auto-generated method stub      super.onPause();      mapView.onPause();   }   /**    * 设置定位参数    */   private void setLocationOption() {      LocationClientOption option = new LocationClientOption();      option.setOpenGps(true); // 打开GPS      option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);// 设置定位模式      option.setCoorType("bd09ll"); // 返回的定位结果是百度经纬度,默认值gcj02      option.setScanSpan(5000); // 设置发起定位请求的间隔时间为5000ms      option.setIsNeedAddress(true); // 返回的定位结果包含地址信息      option.setNeedDeviceDirect(true); // 返回的定位结果包含手机机头的方向      locationClient.setLocOption(option);   }   @Override   public void onClick(View v) {   switch (v.getId()){      case R.id.common_back:         finish();         break;      case R.id.image_View:         Intent intent_qiandao = new Intent(QianDao_GuanLi_Activity.this, QianDao_Activity.class);         startActivity(intent_qiandao);         break;      case R.id.image_View1:         Intent daoIntent = new Intent(QianDao_GuanLi_Activity.this, IntermediaryActivity.class);         daoIntent.putExtra("type", IntermediaryActivity.QIANDAO_LIST);         startActivity(daoIntent);         break;   }   }   public boolean onKeyDown(int keyCode, KeyEvent event) {      if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {         finish();         return true;      }      return false;   }}
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <RelativeLayout        android:layout_width="match_parent"        android:layout_height="55dp"        android:background="@drawable/office_top"        android:orientation="vertical">        <RelativeLayout            android:id="@+id/common_back"            android:layout_width="40dp"            android:layout_height="40dp"            android:layout_alignParentLeft="true"            android:layout_centerVertical="true">            <ImageView                android:layout_width="10dp"                android:layout_height="18dp"                android:layout_alignParentLeft="true"                android:layout_centerVertical="true"                android:layout_marginLeft="10dp"                android:src="@drawable/office_back"/>        </RelativeLayout>        <TextView            android:id="@+id/common_title"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_centerHorizontal="true"            android:layout_centerVertical="true"            android:text="签到管理"            android:textColor="@color/white"            android:textSize="20sp"            android:textStyle="bold"/>    </RelativeLayout>    <RelativeLayout        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:orientation="vertical" >        <!-- 添加地图控件 -->        <com.baidu.mapapi.map.MapView            android:id="@+id/mapView"            android:layout_width="fill_parent"            android:layout_height="fill_parent"            android:clickable="true" /><LinearLayout    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:layout_alignParentTop="true"    android:layout_alignParentRight="true"    android:layout_alignParentEnd="true"    android:orientation="vertical"    android:layout_marginTop="41dp">    <ImageView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:id="@+id/image_View"        android:background="@drawable/push"        />    <ImageView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:id="@+id/image_View1"        android:background="@drawable/push"        android:layout_below="@+id/image_View"        android:layout_alignLeft="@+id/image_View"        android:layout_alignStart="@+id/image_View" /></LinearLayout>    </RelativeLayout></LinearLayout>

                                             
1 0
原创粉丝点击