博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android开发实战一 百度SDK
阅读量:5133 次
发布时间:2019-06-13

本文共 3701 字,大约阅读时间需要 12 分钟。

一 申请百度API key

百度地图API:

百度地图开发者平台地址: 。点击界面的“申请密钥”,进入界面之后,点击“创建应用”按钮,我这里已经申请过,所以不需要再申请,直接创建应用即可。

 

Android Studio 获取调试版SHA1,如下:如果想生成release版的参照 

  1. 输入命令  C: 进入C盘;

  2. 输入命令  cd Users\你的用户名\.android  就找到了.android;

  3. 输入命令  keytool -list -v -keystore debug.keystore  回车键;

  4. 输入密钥库口令  android  回车键,就可以看到调试版SHA1啦!

 

二 下载SDK

SDK下载地址:

第一步:在工程app/libs目录下放入baidumapapi_vX_X_X.jar包,及so文件如下图所示,全部丢进去即可

第二步:导入jar包。菜单栏选择File->Project Structor->Modules->Dependencies,点击+号,选择File dependency,选择jar包导入。
通过以上两步操作后,您就可以正常使用百度地图SDK为您提供的全部功能了。

三 代码部分

3.1 配置权限和Key

3.2 在布局xml文件中添加地图控件

3.3 在应用程序创建时初始化SDK引用的Context全局变量

@Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        //在使用SDK各组件之前初始化context信息,传入ApplicationContext        //注意该方法要再setContentView方法之前实现        SDKInitializer.initialize(getApplicationContext());        setContentView(R.layout.activity_main);        mMapView = (MapView) findViewById(R.id.bmapView);    }

3.4 执行结果

 

gitHub:

四 进阶训练

添加百度地图查询功能

4.1 通过中文名称转换成经纬度

/*     *根据地址得到地理坐标     */    public void getLatAndLngByAddress() {        String addr = "";        String lat = "";        String lng = "";        try {            addr = java.net.URLEncoder.encode(address, "UTF-8");//编码        } catch (UnsupportedEncodingException e) {            e.printStackTrace();        }        String url = String.format("http://api.map.baidu.com/geocoder/v2/?"                + "address=%s&ak=生成的ak&mcode=生成的安全码&output=json", addr);        Log.d("panzqww", "-----url = " + url);        URL myURL = null;        URLConnection httpsConn = null;        String[] location = null;        //进行转码        try {            myURL = new URL(url);        } catch (MalformedURLException e) {            e.printStackTrace();        }        try {            httpsConn = (URLConnection) myURL.openConnection();//建立连接            if (httpsConn != null) {                InputStreamReader insr = new InputStreamReader(//传输数据                        httpsConn.getInputStream(), "UTF-8");                BufferedReader br = new BufferedReader(insr);                String data = null;                if ((data = br.readLine()) != null) {                    System.out.println(data);                    location = getLocation(data);                }                insr.close();                br.close();            }        } catch (IOException e) {            e.printStackTrace();        } catch (JSONException e) {            e.printStackTrace();        }        if (location == null || location.length < 2)        {            return;        }        this.Latitude = Double.parseDouble(location[0]);        this.Longitude = Double.parseDouble(location[1]);    }

ak及安全码获取方式:点击设置进入到配置应用中

其中对应的ak为:

安全码是:

 

AddressToLatitudeLongitude at = new AddressToLatitudeLongitude("江西省樟树市");at.getLatAndLngByAddress();getLocationByLL(at.getLatitude(), at.getLongitude());
/*     *根据经纬度前往     */    public void getLocationByLL(double la, double lg) {        //地理坐标的数据结构        LatLng latLng = new LatLng(la, lg);        //描述地图状态将要发生的变化,通过当前经纬度来使地图显示到该位置        MapStatusUpdate msu = MapStatusUpdateFactory.newLatLng(latLng);        myBaiduMap.setMapStatus(msu);    }

4.2 根据经纬度定位地址

/*     *根据经纬度前往     */    public void getLocationByLL(double la, double lg) {        //地理坐标的数据结构        LatLng latLng = new LatLng(la, lg);        //描述地图状态将要发生的变化,通过当前经纬度来使地图显示到该位置        MapStatusUpdate msu = MapStatusUpdateFactory.newLatLng(latLng);        myBaiduMap.setMapStatus(msu);    }

代码地址 github:

 

转载于:https://www.cnblogs.com/qiangge-python/p/10101731.html

你可能感兴趣的文章
SNF快速开发平台MVC-EasyQuery-拖拽生成SQL脚本
查看>>
DrawerLayout实现双向侧滑
查看>>
MySQL入门很简单-触发器
查看>>
LVM快照(snapshot)备份
查看>>
绝望的第四周作业
查看>>
一月流水账
查看>>
数论四大定理
查看>>
npm 常用指令
查看>>
20几个正则常用正则表达式
查看>>
TextArea中定位光标位置
查看>>
非常棒的Visual Studo调试插件:OzCode 2.0 下载地址
查看>>
判断字符串在字符串中
查看>>
hdu4374One hundred layer (DP+单调队列)
查看>>
类间关系总结
查看>>
properties配置文件读写,追加
查看>>
Linux环境下MySql安装和常见问题的解决
查看>>
lrzsz——一款好用的文件互传工具
查看>>
ZPL语言完成条形码的打印
查看>>
这20件事千万不要对自己做!
查看>>
Linux环境下Redis安装和常见问题的解决
查看>>