百度地图定位开发

原创 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

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

iOS百度地图 定位的实现

本文转载自http://blog.csdn.net/fanjunxi1990/article/details/9131003 WebRep currentVote ...
  • xingxing513234072
  • xingxing513234072
  • 2014年06月08日 15:40
  • 17322

Android开发之实现百度地图定位功能

之前写了一篇高德地图定位的,现在写一篇百度的。 关于百度开放平台的注册、SDK的下载和申请APK就不说了,和高德的差不多。那就进入正题,看看如何使用百度地图SDK实现定位功能吧。1. 配置环境 导入...
  • Mr_wzc
  • Mr_wzc
  • 2016年06月05日 17:41
  • 6250

Android 百度地图简单定位

百度地图    首先按官方文档上的步骤做: 下载官方的文档,导jar包,我是用的eclipse做的, 在AndroidManifest中添加开发密钥、所需权限等信息; (1)在appl...
  • Zhangxuexue_
  • Zhangxuexue_
  • 2016年09月19日 19:02
  • 8351

Android Eclipse 开发引用百度地图定位

本文适合刚开始应用百度地图者,只是定位
  • u013146742
  • u013146742
  • 2016年04月14日 16:59
  • 1853

iOS开发 - 百度地图后台持续定位

之前有做一个定位的项目,类似嘀嘀打车那样。 需要后台持续定位。 这里选择了百度地图,不过在后台持续定位方面, 之前只是简单的设置如下: 不过经测试发现, 这样设置完,在后台运行...
  • shaobo8910
  • shaobo8910
  • 2015年07月04日 16:18
  • 2459

(01)关于我在使用百度地图开发常见到的问题

(首先是到百度地图开发的网站去下载SDK)   相关的一些步骤我是按照http://www.cnblogs.com/dqrcsc/p/4656522.html    1》上面的教程写的 但其中有一步骤...
  • qq_32565575
  • qq_32565575
  • 2016年10月09日 15:09
  • 694

Android 百度地图开发(二)--- 定位功能之MyLocationOverlay,PopupOverlay的使用

这一篇文章主要讲解的是百度地图的定位功能,然后还有MyLocationOverlay和PopupOverlay两个地图覆盖物的使用,Overlay是“图层”或“覆盖物”的意思,MyLocationOv...
  • xiaanming
  • xiaanming
  • 2013年09月09日 15:38
  • 129434

Android使用百度地图API实现定位app

前言:有时候,我们活得很累,并非生活过于刻薄,而是我们太容易被外界的氛围所感染,被他人的情绪所左右。行走在人群中,我们总是感觉有无数穿心掠肺的目光,有很多飞短流长的冷言,最终乱了心神,渐渐被缚于自己编...
  • qq_31307919
  • qq_31307919
  • 2016年05月30日 19:38
  • 11960

关于百度地图实现定位的两种方式(baiduSDK 和 Service+BaiduSDK)

这几天呢我写个项目里面涉及到百度地图定位的功能,那我就简单的说一下他的实现原理: 1:基础的百度地图定位 想要实现这个功能其实很简单,只需要把在百度地图上的包导到android Studio的li...
  • xys199719
  • xys199719
  • 2016年10月28日 10:06
  • 1874

百度地图开发(三)之地图控制 + 定位

转载请注明出处:     前两篇关于百度地图的blog写的是,一些基本图层的展示 和 覆盖物的添加+地理编码和反地理编码。     接下来,这篇blog主要说一些关于地图控制方面的内容和定位功能。  ...
  • crazy1235
  • crazy1235
  • 2015年02月21日 14:47
  • 74065
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:百度地图定位开发
举报原因:
原因补充:

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