Android(二)百度地图SDK获取地图信息

使用百度地图SDK,可以查看地图信息,对地图进行放大查看,或者缩小查看

一、百度API

百度地图API:http://developer.baidu.com/map/

二、搭建地图环境

1、申请百度地图的key

2、下载对应功能的sdk

3、新建一个工程导入sdk到lib里面

 1、申请百度地图key

点击  http://lbsyun.baidu.com/apiconsole/key

进入key申请页面如下图,然后点击“创建应用”

Android(二)百度地图SDK获取地图信息_第1张图片

  点击创建应用后,进入如下图,应用名称可以随便写,应用类型选Android SDK

Android(二)百度地图SDK获取地图信息_第2张图片

发布版SHA1的获取方法:

(本人Windows环境下)

win+r 输入cmd,打开dos窗口

1、cd jdk的bin目录下 如我的是  cd C:\Program Files\Java\jdk1.8.0_201\bin

2、找到签名文件存放的目录(如果没有生成的,先生成签名文件,我的签名文件是android.jks)所在目录是D:\android.jks

3、输入命令 C:\Program Files\Android\Android Studio\jre\jre\bin\keytool.exe -list -keystore D:\android.jks

Android(二)百度地图SDK获取地图信息_第3张图片

       输入命令如上图,如果没有设置密码则可以直接点击回车,如果设置密码了那就是key的密码

开发版SHA1的获取方法和发布版SHA1的获取方法的唯一不同的是命令是

Android(二)百度地图SDK获取地图信息_第4张图片

三、创建Androidstudio项目

按照http://lbsyun.baidu.com/index.php?title=androidsdk/guide/create-project/androidstudio这里面的步骤来创建一个项目

我的项目目录

Android(二)百度地图SDK获取地图信息_第5张图片

1、下载开发包,我是下载了以下几个sdk开发包,根据自己的需求来下载对应的sdk

Android(二)百度地图SDK获取地图信息_第6张图片

2、将开发包拷贝至工程(截图以普通地图服务的开发包为例,步骑行导航的开发包同理)

1、添加jar文件
     打开解压后的开发包文件夹,找到BaiduLBS_Android.jar文件将其拷贝至工程的app/libs目录下,如图:
     Android(二)百度地图SDK获取地图信息_第7张图片
2、添加so文件
     有两种方法可以往项目中添加so文件。
     方法一:
    在下载的开发包中拷贝需要的CPU架构对应的so文件文件夹到app/libs目录下,如图:
      Android(二)百度地图SDK获取地图信息_第8张图片      
     在app目录下的build.gradle文件中android块中配置sourceSets标签,如果没有使用该标签则新增,详细配置代码如下:

sourceSets {
           main {
               jniLibs.srcDir 'libs'
           }
    }

注意:Jar文件和so文件的版本号必须一致,并且保证Jar文件与so文件是同一版本包取出的。

3、往工程中添加jar文件

  1、菜单栏选择File -> Project Structure
      2、在弹出的Project Structure对话框中选中左侧的Modules列表下的app目录,然后点击右侧页面中的Dependencies选项卡。如图:
       Android(二)百度地图SDK获取地图信息_第9张图片
      3、点击左下角加号“➕”选择Jar dependency,然后选择要添加的jar文件即可(此处为我们拷贝至libs目录下的BaiduLBS_Android.jar) 结果如图:
        Android(二)百度地图SDK获取地图信息_第10张图片

  项目所涉及到的代码‘

activity_main.xml文件的代码



    


app文件下的build.gradle文件的代码

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.example.wingtech_pc.test1"
        minSdkVersion 15
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    sourceSets {
        main {
            jniLibs.srcDir 'libs'
        }
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation files('libs/BaiduLBS_Android.jar')
}

新建一个Java类,DemoApplication

package com.example.wingtech_pc.test1;

import android.app.Application;

import com.baidu.mapapi.CoordType;
import com.baidu.mapapi.SDKInitializer;

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

建完了DemoApplication类需要在AndroidManifest.xml文件添加android:name=".DemoApplication"

Android(二)百度地图SDK获取地图信息_第11张图片

AndroidManifest.xml文件的代码,加了meta-data标签,指明了key的值,即刚申请到的AK值,还有百度地图相关的权限指定




    
        
            
                
                
            
        
        
    
    
    
    
    

    
    
    
    
MainActivity.java的代码:
package com.example.wingtech_pc.test1;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import com.baidu.mapapi.map.MapView;

public class MainActivity extends AppCompatActivity {
    private MapView mMapView = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //获取地图控件引用
        mMapView = (MapView) findViewById(R.id.bmapView);
    }
    @Override
    protected void onResume() {
        super.onResume();
        //在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理
        mMapView.onResume();
    }
    @Override
    protected void onPause() {
        super.onPause();
        //在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理
        mMapView.onPause();
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理
        mMapView.onDestroy();
    }
}

最终运行结果:

Android(二)百度地图SDK获取地图信息_第12张图片

 本文章参照了百度地图的官方文档和https://blog.csdn.net/qq_26787115/article/details/50358037

你可能感兴趣的:(Android)