zoukankan      html  css  js  c++  java
  • Android中应用百度地图API开发地图APP实例-显示百度地图

    场景

    效果

    在使用百度地图API之前需要先在百度地图开放平台中申请API_KEY

    http://lbsyun.baidu.com/index.php

    申请API_KEY

    登录百度开放平台后找到控制台下的应用管理-创建应用

    依次输入应用名,应用类型选择Android SDK

    然后下面需要输入发布版SHA1和包名

    获取应用SHA1

    首先来到.Android文件所在的位置,默认位置如下

    如果修改过就要到修改的路径下。

    AndroidStudio修改默认C盘配置文件夹(.android.gradle.AndroidStudio)以及修改后避免踩的坑:

    https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103791948

    我这里是修改过,所以这里的路径是在D:Android

    在此路径下打开命令行窗口。

    这里采用使用JDK自带的keytool工具生成

    keytool默认路径:C:Program FilesJavajdk1.8.0_181in

    然后将keytool.exe拖到上面打开的.Android所在路径命令行窗口中,然后再后面输入

    -list -v -keystore debug.keystore

    回车。然后提示输入密钥库命令,直接回车

    然后就可以在证书指纹中获取SHA1

     

    然后再回到百度开放平台点击提交。就可以获取开发密钥了。

    获取Android地图SDK

    然后再回到百度开放平台中开发文档下的Android开发下Android地图SDK

    然后选择自定义下载

    然后这里只勾选几个基本功能,具体功能根据自己需求勾选,然后点击下方的开发包和示例代码进行下载

    项目中集成SDK

    使用AndroidStudio新建项目,将项目视图由Android切换为Project

    这样就会显示libs目录,然后解压上面下载的开发包,可以看到其下面libs目录下两个jar包,将其复制到项目的lib下

    然后选中这两个jar包右键Add As Library,添加到库

     

    然后在src/main下新建JNIlibs目录

    然后将上面SDK下libs下的所有目录复制到此目录下

    然后将项目切换回Android视图下,打开activity_main.xml修改布局文件

    将布局修改为相对布局,并添加百度地图组件,并设置id

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">
    
        <com.baidu.mapapi.map.MapView
            android:id="@+id/bmapview"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:clickable="true"/>
    
    </RelativeLayout>

    然后来到MainActivity.java中,首先声明地图组件然后再onCreate方法中初始化地图SDK,注意初始化地图SDK

    的代码要放在setContentView的代码前。

    然后还需要分别设置地图组件的声明周期。

    package com.badao.baidumap;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.os.Bundle;
    
    import com.baidu.mapapi.SDKInitializer;
    import com.baidu.mapapi.map.MapView;
    
    public class MainActivity extends AppCompatActivity {
    
        private MapView mapView;//声明地图组件
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            //初始化地图SDK
            SDKInitializer.initialize(getApplicationContext());
            setContentView(R.layout.activity_main);
            mapView = (MapView) findViewById(R.id.bmapview);
        }
    
        @Override
        protected void onPause() {
            super.onPause();
            mapView.onPause();
        }
    
        @Override
        protected void onDestroy() {
            super.onDestroy();
            mapView.onDestroy();
            mapView = null;
        }
    
        @Override
        protected void onResume() {
            super.onResume();
            mapView.onResume();
        }
    }

    然后打开mainfests下的AndroidManifest.xml

    首先添加meta-data标签,内容如下

            <meta-data
                android:name="com.baidu.lbsapi.API_KEY"
                android:value="申请的开发密钥"/>

    然后进行权限的声明。完整示例代码

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        package="com.badao.baidumap">
    
        <!-- 访问网络,进行地图相关业务数据请求,包括地图数据,路线规划,POI检索等 -->
        <uses-permission android:name="android.permission.INTERNET" />
        <!-- 获取网络状态,根据网络状态切换进行数据请求网络转换 -->
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    
        <!-- 读取外置存储。如果开发者使用了so动态加载功能并且把so文件放在了外置存储区域,则需要申请该权限,否则不需要 -->
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
        <!-- 写外置存储。如果开发者使用了离线地图,并且数据写在外置存储区域,则需要申请该权限 -->
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    
    
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
            <meta-data
                android:name="com.baidu.lbsapi.API_KEY"
                android:value="申请的开发密钥"/>
            <activity android:name=".MainActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    
    </manifest>

    这块代码可以参照之前在百度开放平台下载的示例代码。

    或者可以参照官网的开发指南

    http://lbsyun.baidu.com/index.php?title=androidsdk/guide/create-map/showmap

    然后需要将项目运行在可联网的真机或者第三方模拟器上

     

  • 相关阅读:
    职业规划书
    阿里云mysql安装配置(CentOS 7.3 64)
    在mvc中弹出提示框
    俺的博客开通啦
    sql中计算列小解
    ext的grid 获取页面内容方式
    2条路 代码生成 or 配置 2.1
    ext做列表页面关于查询多行的办法
    .net下开发windows服务的经验
    微软.net下 charting 要注意的事情
  • 原文地址:https://www.cnblogs.com/badaoliumangqizhi/p/12716045.html
Copyright © 2011-2022 走看看