您的位置:首页 > 移动开发 > Android开发

Android 技术总结(016)—— 使用百度地图api获取当前位置

2013-11-22 18:02 447 查看
import com.baidu.location.BDLocation; 

import com.baidu.location.BDLocationListener; 

import com.baidu.location.LocationClient; 

import com.baidu.location.LocationClientOption; 

 

import android.app.Activity; 

import android.os.Bundle; 

import android.util.Log; 

import android.view.View; 

import android.view.View.OnClickListener; 

import android.widget.Button; 

import android.widget.TextView; 

 

public class main extends Activity { 

     

    private LocationClient mLocationClient = null; 

    private Button mStartBtn = null; 

    private TextView mTextView = null; 

     

    @Override 

    public void onCreate(Bundle savedInstanceState) { 

        super.onCreate(savedInstanceState); 

         

        setContentView(R.layout.main); 

         

        mStartBtn = (Button)findViewById(R.id.button1); 

        mTextView = (TextView)findViewById(R.id.textview1); 

         

        mLocationClient = new LocationClient(this); 

        LocationClientOption option = new LocationClientOption(); 

        option.setOpenGps(true);                                //打开gps 

        option.setCoorType("bd09ll");                           //设置坐标类型为bd09ll 

        option.setPriority(LocationClientOption.NetWorkFirst);  //设置网络优先 

        option.setProdName("locSDKDemo2");                      //设置产品线名称 

        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("time : "); 

                sb.append(location.getTime()); 

                sb.append("\nerror code : "); 

                sb.append(location.getLocType()); 

                sb.append("\nlatitude : "); 

                sb.append(location.getLatitude()); 

                sb.append("\nlontitude : "); 

                sb.append(location.getLongitude()); 

                sb.append("\nradius : "); 

                sb.append(location.getRadius()); 

                if (location.getLocType() == BDLocation.TypeGpsLocation){ 

                    sb.append("\nspeed : "); 

                    sb.append(location.getSpeed()); 

                    sb.append("\nsatellite : "); 

                    sb.append(location.getSatelliteNumber()); 

                } else if (location.getLocType() == BDLocation.TypeNetWorkLocation){ 

                    sb.append("\naddr : "); 

                    sb.append(location.getAddrStr()); 

                } 

                sb.append("\nsdk version : "); 

                sb.append(mLocationClient.getVersion()); 

                mTextView.setText(sb.toString()); 

            } 

             

            public void onReceivePoi(BDLocation location){ 

                //return ; 

            } 

        }); 

         

         

        mStartBtn.setOnClickListener(new OnClickListener() { 

            @Override 

            public void onClick(View v) { 

                if (mLocationClient == null) return ; 

                if (mLocationClient.isStarted()){ 

                    mLocationClient.stop(); 

                    mStartBtn.setText("开始"); 

                } else { 

                    mLocationClient.start(); 

                    mStartBtn.setText("关闭"); 

                } 

            } 

        }); 

         

    } 

     

    @Override 

    public void onDestroy(){ 

        if (mLocationClient != null && mLocationClient.isStarted()){ 

            mLocationClient.stop(); 

            mLocationClient = null; 

        } 

        super.onDestroy(); 

    } 

     

     

     

     

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐