百度地图开发-显示地图默认界面 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);         //卫星地图


这个就是白色的底图。


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


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




目录
相关文章
|
Java 定位技术 API
标准坐标系与火星坐标系(高德)百度坐标系之间互转
这里先给大家介绍几个坐标系: 1.WGS84:国际坐标系,为一种大地坐标系,也是目前广泛使用的GPS全球卫星定位系统使用的坐标系。2.GCJ02:火星坐标系,是由中国国家测绘局制订的地理信息系统的坐标系统。
4382 0
深海探索:水下无人机与潜水器的最新进展
【9月更文挑战第20天】随着科技进步,深海探索迎来变革,水下无人机(UUV)与载人潜水器成为关键工具,不断突破技术壁垒,拓宽深海认知。UUV实现高自主性和智能化,如美国海军的“虎鲸”XLUUV及“蓑鲉”SUUV展现了多样化应用前景。载人潜水器如中国“蛟龙号”完成多次深潜任务,在西太平洋取得重要科学发现,并促进国际合作。未来,更先进的设备将助力深海研究、资源勘探及保护。
|
8月前
|
人工智能 前端开发 Java
2025 开发必备:精选免费 AI 辅助工具,效率狂飙不停
2025年,AI技术深度融入编程领域,诞生了多款免费且功能强大的辅助工具。通义灵码精通200多种语言,可快速生成代码框架,提升开发效率超10%,还为新手提供学习指导。Google Gemini Code Assist每月完成18万次代码补全,支持智能交互与代码审查,优化团队协作。飞算JavaAI专注Java全流程开发,从需求分析到代码生成实现十倍提效。这些工具大幅降低编程门槛,助力开发者高效高质完成任务。
|
Rust 安全 编译器
编程语言新宠:Rust语言的特性、优势与实战入门
【10月更文挑战第26天】Rust语言诞生于2006年,由Mozilla公司的Graydon Hoare发起。作为一门系统编程语言,Rust专注于安全和高性能。通过所有权系统和生命周期管理,Rust在编译期就能消除内存泄漏等问题,适用于操作系统、嵌入式系统等高可靠性场景。
986 2
记录一次Linux服务器被人使用SSH字典爆破
曾经我以为互联网到至今应该是很和平的状态,但是经历了这次ssh字典爆破攻击后我才意识到网络攻击无处不在,建议系统密码使用比较复杂的随机字符组合,七八十位都没问题,数据可贵,电脑该装杀毒软件的就装上,别因为那占用那点内存而舍弃杀毒软件,防网络攻击于未然 !
|
JSON Rust JavaScript
🎉使用Tauri+vite+koa2+mysql开发了一款待办效率应用
这是一个基于tauri+vite的应用,它采用了一些最新的前端技术,包括 Tauri、Vue3、Vite5、koa2 和 mysql。它提供了丰富的效率管理工具。
292 8
|
数据采集 网络协议 安全
|
域名解析 网络协议 网络性能优化
如何提升自建DNS服务下的网络体验
网络质量和网络体验是通信过程中的两个不同层面,质量涉及设备上下行表现,而体验关乎端到端通信效果。衡量质量常用带宽、延迟、丢包率等指标;体验则关注可访问性,DNS解析速度和服务位置等。现代路由器能自动调整网络质量,普通用户无需过多干预。自建DNS服务时,选择权威DNS能解决可访问性,但可能不提供最优体验。AdguardHome和Clash等工具能进一步优化DNS解析,提升网络体验。
559 6
如何提升自建DNS服务下的网络体验
|
设计模式 数据中心 网络架构
|
机器学习/深度学习 存储 缓存
YOLOv5的Tricks | 【Trick9】模型剪枝处理与Pytorch实现的剪枝策略
在yolov5项目中的torch_utils.py文件下,有prune这个函数,用来实现模型的剪枝处理。对模型裁剪,模型剪枝这方面之前没有接触到,这里用这篇笔记来学习记录一下这方面内容。
2794 0
YOLOv5的Tricks | 【Trick9】模型剪枝处理与Pytorch实现的剪枝策略