百度地图开发-显示地图默认界面 03

简介: 百度地图开发-显示地图默认界面 03

显示地图



上一期,我们成功导入百度地图SDK,下来就需要验证我们导入的SDK和配置的环境代码是否正常,如果能在app上,显示出默认的百度地图界面,则证明导入和配置SDK成功,若不能显示,则说明配置有问题,需要仔细检查,看是否配置信息填写有误。



之前的文章已经申请了密钥并在项目的AndroidManifest.xml文件中进行了配置,同时也添加了权限声明。这里的申明只是针对于旧版本设备(API低),新版本需要手动动态申请权限才可以,否则无法使用百度地图相关服务。那么接下来就编写相关代码,实现百度地图默认地图的显示功能。


显示默认地图


当相关配置信息完成后,通过下面三步就可以显示出百度地图的默认地图。


  • 1、在布局文件中添加地图容器


在你需要放置地图的视图中,添加地图标签,进行一些基本的设置,比如大小,间距等。



  • 2、地图初始化操作


这里需要注意,下面两行代码,是在使用百度地图前必须提前声明的语句,因为它是作用是初始化百度地图SDK,如果不声明或者声明的地方不对,则后期百度地图无法成功加载。【我在这里就吃过亏,顺序写反了,一直调试不出来哪里出错了。】


初始化百度地图SDK


这两句代码,必须放在MainActivity的onCreate()方法中,在第一行进行声明,它们是进行百度地图SDK的初始化操作,第一个是传递上下文到SDK中,第二个设设置其SDK内部的坐标格式,默认为BD09LL坐标。(切莫将这两句放在程序刚开始执行的地方,否则后续无法使用百度地图)。


 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //初始化地图SDK
        //在使用SDK各组件之前初始化context信息,传入ApplicationContext
        SDKInitializer.initialize(getApplicationContext());
        //自4.3.0起,百度地图SDK所有接口均支持百度坐标和国测局坐标,用此方法设置您使用的坐标类型.
        //包括BD09LL和GCJ02两种坐标,默认是BD09LL坐标。
        SDKInitializer.setCoordType(CoordType.BD09LL);
        setContentView(R.layout.activity_main);
    }



上面代码就是在这个测试项目中放置的位置。


  • 3、创建地图Activity,管理其生命周期


在新建的testandroid工程中,在视图界面,创建MAP显示,接着在后台代码声明并定义Map的声明周期。其中需要注意的是,需要先进行初始化操作,其实需要动态申请访问许可,比如定位,存储卡等。



public class MainActivity extends AppCompatActivity {
    private MapView mMapView = null;
    private BaiduMap mBaiduMap=null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //初始话地图SDK
        //在使用SDK各组件之前初始化context信息,传入ApplicationContext
        SDKInitializer.initialize(getApplicationContext());
        //自4.3.0起,百度地图SDK所有接口均支持百度坐标和国测局坐标,用此方法设置您使用的坐标类型.
        //包括BD09LL和GCJ02两种坐标,默认是BD09LL坐标。
        SDKInitializer.setCoordType(CoordType.BD09LL);
        setContentView(R.layout.activity_main);
        //动态权限访问
        SetPermissionVerify();
        mMapView = (MapView) findViewById(R.id.map_view);
    }
    /**
     * 动态权限验证模块
     * 包括访问GPS,调用存储卡
     * */
    private void SetPermissionVerify(){
        List<String> permissionList=new ArrayList<>();
        // 获取位置信息
        if (ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.ACCESS_FINE_LOCATION)!= PackageManager.PERMISSION_GRANTED){
            permissionList.add(Manifest.permission.ACCESS_FINE_LOCATION);
        }
        //获取手机状态
        if(ContextCompat.checkSelfPermission(getApplicationContext(),Manifest.permission.READ_PHONE_STATE)!=PackageManager.PERMISSION_GRANTED) {//表示未授权
            // 申请一个(或多个)权限,并提供用于回调返回的获取码(用户定义)
            permissionList.add(Manifest.permission.READ_PHONE_STATE);
        }
        if(ContextCompat.checkSelfPermission(getApplicationContext(),Manifest.permission.WRITE_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED){
            permissionList.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);
        }
        if(!permissionList.isEmpty()){
            String[] permissions=permissionList.toArray(new String[permissionList.size()]);
            ActivityCompat.requestPermissions(this,permissions,1);
        }else {
            //StartRequestLocation();
        }
    }
    @Override
    protected void onResume() {
        super.onResume();
        mMapView.onResume();
    }
    @Override
    protected void onPause() {
        super.onPause();
        mMapView.onPause();
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        mMapView.onDestroy();
    }
}



当编写完成后就允许程序,可以在手机APP上看到百度地图的初始界面,以北京天安门为中心的默认图。


运行成功的界面


看到这个界面,就证明目前运行成功了。


说明申请密钥成功,引入SDK成功,配置其环境变量成功,可以正常使用百度地图的所有功能了。


切换地图类型


百度地图默认显示常规地图,可以通过代码来调节地图的显示类型,这里总共有3种,分别是普通地图、卫星图、空白地图。


可以通过BaiduMap中的setMapType()方法来设置地图类型。


  • 普通地图


   mBaiduMap=mMapView.getMap();
        mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);         //普通地图


这就是普通地图,也就是我们平时打开地图软件看到的默认显示地图。


  • 卫星图


 mBaiduMap=mMapView.getMap();
        mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);         //卫星地图


空白地图

 mBaiduMap=mMapView.getMap();
        mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NONE);         //卫星地图


这个就是白色的底图。


看到这里,如何你按照上面的提示,仔细的操作,那么也能顺利的加载百度地图到你的项目中去,那么接下来就开始做一些简单的业务比如根据网络显示当前的位置信息,在地图上面标记点,绘制线,做标注,实现离线地图等。


期待后面的推文吧,我会将学习百度地图开发时踩的坑都分享出来,希望能帮助到后面需要使用百度地图的朋友。




目录
相关文章
|
6月前
|
开发工具 git 开发者
百度搜索:蓝易云【Git实际开发的流程】
以上是Git在实际开发中的一般流程。Git的分布式版本控制系统使得团队开发更加高效和灵活,并能有效管理项目的版本历史。
62 1
|
6月前
|
监控 JavaScript 安全
百度搜索:蓝易云【如何使用nginxWebUI图形化gui界面管理nginx】
虽然Nginx本身没有官方提供的图形化GUI界面,但使用第三方工具nginx-proxy-manager可以实现通过WebUI图形化界面来管理Nginx的反向代理规则。这样,你可以更方便地进行配置和管理,而无需手动修改Nginx配置文件。
110 0
|
19天前
|
XML 搜索推荐 定位技术
向百度提交网站地图Sitemap
我知道可以通过Google 网站管理员工具向 Google 提交网站地图 Sitemap,那么我如何向百度、雅虎等其他搜索引擎提交呢?我是否需要制作一个类似 Google Sitemap 一样的 baidu Sitemap 呢?
20 1
|
3月前
|
JavaScript 前端开发 定位技术
百度地图JavaScript API v2.0创建地图
百度地图JavaScript API v2.0创建地图
69 0
|
4月前
|
定位技术 开发者
百度地图开发 —— 获取百度地图开发的 AK
百度地图开发 —— 获取百度地图开发的 AK
337 3
|
4月前
|
JavaScript 定位技术
vue-baidu-map 绘制行政区划的轮廓,添加行政区划名称(含给覆盖物添加点击事件)——vue 百度地图开发
vue-baidu-map 绘制行政区划的轮廓,添加行政区划名称(含给覆盖物添加点击事件)——vue 百度地图开发
254 1
|
4月前
|
JavaScript 定位技术
vue 百度地图开发【教程】3. 自定义百度地图主题
vue 百度地图开发【教程】3. 自定义百度地图主题
165 0
|
4月前
|
JavaScript 定位技术
vue 百度地图开发【教程】1. 绘制百度地图(不使用 vue-baidu-map,解决 BMap is undefined)
vue 百度地图开发【教程】1. 绘制百度地图(不使用 vue-baidu-map,解决 BMap is undefined)
406 0
|
6月前
|
Android开发
Flutter完整开发实战详解(六、 深入Widget原理),2024百度Android岗面试真题收录解析
Flutter完整开发实战详解(六、 深入Widget原理),2024百度Android岗面试真题收录解析
|
移动开发 JavaScript 前端开发
数据可视化大屏百度地图手机端标注开发实战案例解析(jsAPI接口、标注分类图片、文本标签、分类筛选、自适应高度信息弹窗、PHP后端API)
数据可视化大屏百度地图手机端标注开发实战案例解析(jsAPI接口、标注分类图片、文本标签、分类筛选、自适应高度信息弹窗、PHP后端API)
205 0