百度地图

来源:互联网 发布:淘宝影响二次销售规则 编辑:程序博客网 时间:2024/06/05 04:02

第一步:

        下载对应的SDK

        http://lbsyun.baidu.com/index.php?title=androidsdk/sdkandev-download

第二步:

        创建应用

        http://lbsyun.baidu.com/index.php?title=androidsdk/guide/key

        获取sha1(开发版和发布版)

        sha1: http://blog.csdn.net/lhg_55/article/details/52809396

keytool -v -list -keystore debug.keystore
keytool -list -v -keystore ???.jks

第三步:

        集成(jar和so动态库文件)清单配置

        http://lbsyun.baidu.com/index.php?title=androidsdk/guide/hellobaidumap

第四步:

        调用API


普通地图

http://lbsyun.baidu.com/index.php?title=androidsdk/guide/basicmap


定位

http://lbsyun.baidu.com/index.php?title=android-locsdk/guide/buildprojec


添加权限

<!-- 这个权限用于进行网络定位--><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission><!-- 这个权限用于访问GPS定位--><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission><!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位--><uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission><!-- 获取运营商信息,用于支持提供运营商信息相关的接口--><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission><!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位--><uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission><!-- 用于读取手机当前的状态--><uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission><!-- 写入扩展存储,向扩展卡写入数据,用于写入离线定位数据--><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission><!-- 访问网络,网络定位需要上网--><uses-permission android:name="android.permission.INTERNET" /><!-- SD卡读取权限,用户写入离线定位数据--><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>

添加service

<service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote"></service>


 //---------------------将地图跟定位关联起来----------------------------------------            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());                MapStatus.Builder builder = new MapStatus.Builder();                builder.target(ll).zoom(18.0f);                baiduMap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build()));            }//---------------------将地图跟定位关联起来----------------------------------------
baiduMap = mMapView.getMap();// 开启定位图层baiduMap.setMyLocationEnabled(true);

//Android 手机6.0版本以后需要手动申请权限if (AndPermission.hasPermission(MainActivity.this, Manifest.permission.ACCESS_COARSE_LOCATION)) {} else {    //没有权限 申请权限    AndPermission.with(MainActivity.this).requestCode(100).permission(Manifest.permission.ACCESS_COARSE_LOCATION).send();}if (AndPermission.hasPermission(MainActivity.this, Manifest.permission.ACCESS_FINE_LOCATION)) {} else {    //没有权限 申请权限    AndPermission.with(MainActivity.this).requestCode(100).permission(Manifest.permission.ACCESS_FINE_LOCATION).send();}if (AndPermission.hasPermission(MainActivity.this, Manifest.permission.ACCESS_WIFI_STATE)) {} else {    //没有权限 申请权限    AndPermission.with(MainActivity.this).requestCode(100).permission(Manifest.permission.ACCESS_WIFI_STATE).send();}
private PermissionListener listener = new PermissionListener() {    @Override    public void onSucceed(int requestCode, List<String> grantedPermissions) {        // 权限申请成功回调。        if(requestCode == 100) {            // TODO 相应代码。        } else if(requestCode == 101) {            // TODO 相应代码。        }    }    @Override    public void onFailed(int requestCode, List<String> deniedPermissions) {        // 权限申请失败回调。        // 用户否勾选了不再提示并且拒绝了权限,那么提示用户到设置中授权。        if (AndPermission.hasAlwaysDeniedPermission(MainActivity.this, deniedPermissions)) {            // 第一种:用默认的提示语。            AndPermission.defaultSettingDialog(MainActivity.this, requestCode).show();            // 第二种:用自定义的提示语。            // AndPermission.defaultSettingDialog(this, REQUEST_CODE_SETTING)            // .setTitle("权限申请失败")            // .setMessage("我们需要的一些权限被您拒绝或者系统发生错误申请失败,请您到设置页面手动授权,否则功能无法正常使用!")            // .setPositiveButton("好,去设置")            // .show();            // 第三种:自定义dialog样式。            // SettingService settingService =            //    AndPermission.defineSettingDialog(this, REQUEST_CODE_SETTING);            // 你的dialog点击了确定调用:            // settingService.execute();            // 你的dialog点击了取消调用:            // settingService.cancel();        }    }};
    @Override    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {        super.onRequestPermissionsResult(requestCode, permissions, grantResults);// 只需要调用这一句,其它的交给AndPermission吧,最后一个参数是PermissionListener。        AndPermission.onRequestPermissionsResult(requestCode, permissions, grantResults, listener);    }


//Android 手机6.0版本以后需要手动申请权限if (AndPermission.hasPermission(MainActivity.this, Manifest.permission.ACCESS_COARSE_LOCATION)) {} else {    //没有权限 申请权限    AndPermission.with(MainActivity.this).requestCode(100).permission(Manifest.permission.ACCESS_COARSE_LOCATION).send();}if (AndPermission.hasPermission(MainActivity.this, Manifest.permission.ACCESS_FINE_LOCATION)) {} else {    //没有权限 申请权限    AndPermission.with(MainActivity.this).requestCode(100).permission(Manifest.permission.ACCESS_FINE_LOCATION).send();}if (AndPermission.hasPermission(MainActivity.this, Manifest.permission.ACCESS_WIFI_STATE)) {} else {    //没有权限 申请权限    AndPermission.with(MainActivity.this).requestCode(100).permission(Manifest.permission.ACCESS_WIFI_STATE).send();}




0 0
原创粉丝点击