百度地图定位开发

原创 2016年08月31日 15:07:16

百度地图定位开发


先给个网站什么资料都是这里的,毕竟是百度的东西当然别个要教你怎么写了
http://lbsyun.baidu.com/
这个网站就是开者网站

开发流程
1 你需要注册一个百度的帐号
https://passport.baidu.com/v2/?reg&regType=1&tpl=mn&u=http://lbsyun.baidu.com/index.php?title=android-locsdk
2 注册完成进入API控制台获取KEY
点击创建应用选择你的类型,这里面的麻烦的是怎么获取SHA1值,我们知道eclipse查看很简单,android studio 感觉不好查看,就给个软件去看把
3 在获取到key以后就去下载百度定位的SDK
http://lbsyun.baidu.com/index.php?title=android-locsdk/geosdk-android-download
4 导入到你的项目的libs包下
5下面贴一下获取定位的代码

public class LocationUtil {
    private final static boolean DEBUG = true;
    private final static String  TAG   = "LocationUtil88";
    private static LocationUtil mInstance;
    private BDLocation mLocation     = null;
    private MLocation  mBaseLocation = new MLocation();
    public StringBuffer mSb;
    public BDLocationListener myListener = new MyLocationListener();
    private LocationClient mLocationClient;
    public static LocationUtil getInstance(Context context) {
        if (mInstance == null) {
            mInstance = new LocationUtil(context);
        }
        return mInstance;
    }
    private LocationUtil(Context context) {
        mLocationClient = new LocationClient(context.getApplicationContext());
        initParams();
    }

    public void startMonitor() {
        if (DEBUG) Log.d(TAG, "start monitor location");
        if (!mLocationClient.isStarted()) {
            mLocationClient.start();
        }
        if (mLocationClient != null && mLocationClient.isStarted()) {
            mLocationClient.requestLocation();
        } else {
            Log.d("LocSDK3", "locClient is null or not started");
        }
    }

    public void stopMonitor() {
        if (DEBUG) Log.d(TAG, "stop monitor location");
        if (mLocationClient != null && mLocationClient.isStarted()) {
            mLocationClient.stop();
        }
    }

    public BDLocation getLocation() {
        if (DEBUG) Log.d(TAG, "get location");
        return mLocation;
    }

    public MLocation getBaseLocation() {
        if (DEBUG) Log.d(TAG, "get location");
        return mBaseLocation;
    }

    private void initParams() {
        LocationClientOption option = new LocationClientOption();
        mLocationClient.registerLocationListener(myListener);
        option.setOpenGps(true);
        //option.setPriority(LocationClientOption.GpsFirst);
        //option.setAddrType("all");//返回的定位结果包含地址信息
        option.setCoorType("bd09ll");//返回的定位结果是百度经纬度,默认值gcj02
        option.setScanSpan(5000);//设置发起定位请求的间隔时间为5000ms
        option.disableCache(true);//禁止启用缓存定位
        option.setLocationMode(LocationClientOption.
        LocationMode.Hight_Accuracy);
        option.setIsNeedAddress(true);
        option.setNeedDeviceDirect(true);
        option.setPriority(LocationClientOption.NetWorkFirst);
        mLocationClient.setLocOption(option);
        mLocationClient.requestLocation();
        mLocationClient.start();
        //option.setPoiNumber(5);    //最多返回POI个数
        //option.setPoiDistance(1000); //poi查询距离
        //option.setPoiExtraInfo(true); //是否需要POI的电话和地址等详细信息
    }
    public class MyLocationListener implements BDLocationListener {
        @Override
        public void onReceiveLocation(BDLocation location) {
            if (location == null) {
                return ;
            }
            mLocation = location;
            mBaseLocation.latitude = mLocation.getLatitude();
            mBaseLocation.longitude = mLocation.getLongitude();
            mSb = new StringBuffer(256);
            mSb.append("time : ");
            mSb.append(location.getTime());
            mSb.append("\nerror code : ");
            mSb.append(location.getLocType());
            mSb.append("\nlatitude : ");
            mSb.append(location.getLatitude());
            mSb.append("\nlontitude : ");
            mSb.append(location.getLongitude());
            mSb.append("\nradius : ");
            mSb.append(location.getRadius());
            mSb.append("\ncity : ");
            mSb.append(location.getCity());
            if (location.getLocType() == BDLocation.TypeGpsLocation){
                mSb.append("\nspeed : ");
                mSb.append(location.getSpeed());
                mSb.append("\nsatellite : ");
                mSb.append(location.getSatelliteNumber());
            } else if (location.getLocType() == BDLocation.TypeNetWorkLocation)
            {
                mSb.append("\naddr : ");
                mSb.append(location.getAddrStr());
            }
            if (DEBUG) Log.d("LocationUtil88", "" + mSb);
        }
        public void onReceivePoi(BDLocation poiLocation) {
        }
    }

    public class MLocation {
        public double latitude;
        public double longitude;
    }
}

上面是获取当前用户位置的代码,你可以直接当作工具类来使用,当然你想隔多长时间获取一次就需要写一个定时器了,这样就可以做轨迹的记录了。这里就不贴代码了
最后分享一个AS获取SHA1的APK
链接: http://pan.baidu.com/s/1miybCSw 密码: 9697

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

百度地图开发之定位

本文主要讲述利用百度地图API实现定位功能第一步:下载SDK与申请KEY参考链接:Android 百度地图 SDK v3.0.0 (一) - Hongyang - 博客频道 - CSDN.NET 注...

百度地图定位开发包

  • 2015-06-16 15:44
  • 5.95MB
  • 下载

Android特色服务之定位服务(百度地图开发一)

今天可算是被安卓的特色服务------定位服务给憋坏了,请教了几位大牛,还是有些错误,到最后终于知道自己的错误出在哪里,都怪自己急于求成,忽略了太多的细节问题了, 以后要沉住气慢慢来,好了,下面开始百...

android开发之百度地图定位

  • 2015-06-01 16:11
  • 14.10MB
  • 下载

C#的百度地图开发(五)IP定位

前面我们已经实现了坐标定位及前端显示,而坐标的获取一般只在移动设备上,对于PC端难以得到。但是在PC端,我们可以得到相应的IP。在得到了IP之后,我们就可以进行定们了。代码如下: public cla...

百度地图定位开发jar包

  • 2014-10-27 13:39
  • 206KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)