热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何运用百度地图SDK进行开发(一)初级篇

版本:BaiduSDK2.12(旧版本)(3.0以上版本由于昨天申请SDK总出问题以后再记录)首先,来到百度地图API首页:http:developer.baidu.commap开发--

版本:BaiduSDK 2.12 (旧版本)(3.0以上版本由于昨天申请SDK总出问题以后再记录)

首先,来到百度地图API首页:http://developer.baidu.com/map/

开发--->Android开发--->Android地图SDK,点进去后,在左侧有个导航栏,点击 获取密钥,根据相关提示获取key,开发中要用到,这里不过多讲解。

点击相关下载,下载最新的Android地图SDK,解压后获得


往下看,点击开发指南--->配置环境发布,找到Android Studio工程配置方法,根据提示进行操作(这里由于讲的是旧版本2.12,与新版本略有差别,所以我截图下来)。

如何运用百度地图SDK进行开发(一)初级篇

之后把jar包加入到项目中

如何运用百度地图SDK进行开发(一)初级篇

如何运用百度地图SDK进行开发(一)初级篇

2个jar包都要加入,之后软件会自动进行编译,等待编译结束后就可以开始使用了。


代码部分:

(1)在布局中添加组件





    

    

(2)在配置文件中添加相关权限











(2)在MainActivity中编写代码

public class MainActivity extends AppCompatActivity {
    /**
     * 百度地图的引擎(管理地图)
     */
    private BMapManager manager;
    /**
     * 显示地图信息的
     */
    private MapView mapView;
    /**
     * 控制地图的:缩放、平移、旋转
     */
    private MapController controller;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        /**
         * 加载布局之前,首先初始化地图的引擎
         */
        initManager();
        setContentView(R.layout.activity_main);
        /**
         * 初始化布局中的mapView
         */
        mapView = (MapView) findViewById(R.id.mapView);
        /**
         * 对控制器初始化
         */
        controller = mapView.getController();
        /**
         * 这里设置初始级别为显示第12级(1.0版本是3-18级别,2.0版本开始3-19个级别)
         */
        controller.setZoom(19);
        /**
         * 这里设置默认显示的中心地带(比如:116.312741(经度),39.979111(纬度))
         */
        controller.setCenter(new GeoPoint(39979111, 116312741));
    }

    private void initManager() {
        manager = new BMapManager(this);
        manager.init(ContentsUtils.KEY, new MKGeneralListener() {
            /**
             * 获取网络工作状态
             * @param isError  返回状态
             */
            @Override
            public void onGetNetworkState(int isError) {
                if (isError == MKEvent.ERROR_NETWORK_CONNECT) {
                    Toast.makeText(getApplicationContext(), "网络连接出错", Toast.LENGTH_SHORT).show();
                }
            }

            /**
             *获取许可状态
             * @param isError   返回状态
             */
            @Override
            public void onGetPermissionState(int isError) {
                if (isError == MKEvent.ERROR_NETWORK_CONNECT) {
                    Toast.makeText(getApplicationContext(), "申请的key出错了", Toast.LENGTH_SHORT).show();
                }
            }
        });
    }


    /**
     * 优化
     */
    @Override
    protected void onResume() {
        super.onResume();
        mapView.onResume();
    }

    /**
     * 优化
     */
    @Override
    protected void onPause() {
        super.onPause();
        mapView.onPause();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        /**
         * 该Activity销毁的时候,把地图显示的view也销毁掉,有助于优化
         */
        mapView.destroy();
    }

    /**
     * 这里是根据按键做出相应操作
     * @param keyCode
     * @param event
     * @return
     */
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        switch (keyCode) {
            case KeyEvent.KEYCODE_1:
                mapView.setSatellite(false);
                mapView.setTraffic(false);
                break;
            case KeyEvent.KEYCODE_2:
                mapView.setSatellite(true);
                mapView.setTraffic(false);
                break;
            case KeyEvent.KEYCODE_3:
                mapView.setSatellite(false);
                mapView.setTraffic(true);

                break;
            default:

                break;
        }
        return super.onKeyDown(keyCode, event);
    }

    /**
     * 设置按钮,控制软键盘的打开与关闭
     *
     * @param view
     */
    public void click(View view) {
        Toast.makeText(MainActivity.this, "打开/关闭键盘", Toast.LENGTH_SHORT).show();
        openInputMethod();
    }

    /**
     * 调用软键盘,打开/关闭
     */
    public void openInputMethod() {
        InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
        if (imm.isActive()) {
            imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
        } else {
            getSystemService(Context.INPUT_METHOD_SERVICE);
        }

    }
}

说明:这里多加了一点功能,就是左上角加个按钮,可以打开/关闭键盘,按键盘的1/2/3键,会分别显示电子地图/卫星地图/实时交通。其他相关操作,代码作了相应注释。

运行效果图:

如何运用百度地图SDK进行开发(一)初级篇



推荐阅读
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • 在维护公司项目时,发现按下手机的某个物理按键后会激活相应的服务,并在屏幕上模拟点击特定坐标点。本文详细介绍了如何使用ADB Shell Input命令来模拟各种输入事件,包括滑动、按键和点击等。 ... [详细]
  • 在创建新的Android项目时,您可能会遇到aapt错误,提示无法打开libstdc++.so.6共享对象文件。本文将探讨该问题的原因及解决方案。 ... [详细]
  • Android Studio 安装与配置指南
    本教程详细介绍了如何下载并安装 Android Studio,包括设置 SDK 路径和优化启动性能的方法。通过这些步骤,您可以顺利地开始开发 Android 应用。 ... [详细]
  • 为了解决不同服务器间共享图片的需求,我们最初考虑建立一个FTP图片服务器。然而,考虑到项目是一个简单的CMS系统,为了简化流程,团队决定探索七牛云存储的解决方案。本文将详细介绍使用七牛云存储的过程和心得。 ... [详细]
  • 主调|大侠_重温C++ ... [详细]
  • 本文介绍了如何利用JavaScript或jQuery来判断网页中的文本框是否处于焦点状态,以及如何检测鼠标是否悬停在指定的HTML元素上。 ... [详细]
  • 本文介绍了在使用Visual Studio 2015进行项目开发时,遇到类向导弹出“异常来自 HRESULT:0x8CE0000B”错误的解决方案。通过具体步骤和实践经验,帮助开发者快速排查并解决问题。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ... [详细]
  • 网络攻防实战:从HTTP到HTTPS的演变
    本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ... [详细]
author-avatar
黑鸽子
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有