MapView

Android 使用百度地图API

  百度地图是最常用的地图类API,以百度地图为例加载地图类控件.

1.百度地图官网下载 开发包 http://lbsyun.baidu.com/

  (1) 注册百度账号 

  (2) 创建app应用,获取包名 sha1 值

  Android studio 快速获取sha1 值

  在右侧点击Gradle project 选择如下图所示

在控制台查看

2.导入jar包   可参考官方文档  http://lbsyun.baidu.com/index.php?title=androidsdk/guide/create-project/androidstudio

  核心类: MapView 展示地图  通过getMap()方法获取地图控制器

      BaiduMap 控制地图,操作地图的类

      SDKInitializer 初始化地图

常用覆盖物: 1.TextOptions 文本覆盖物

      2.PolygonOptions 多边形覆盖物

      3.MarkerOptions 标记覆盖物

      4.infoWindow  窗口视图

POI检索:

   1. BaiduMapPoiSearch poi检索 

   2.PoiParaOption 检索参数类 key radius LatLng 等

线路规划:

    1.BaiduMapRoutePlan  线路规划

    2.RouteParaOption  线路检索参数

定位 核心类

    1.LocationClient  地位客户端

    2.LocationClientOption 定位参数

    3.BDLocationListener  定位的回调接口

    4.BDLocation: 回调数据

导航功能:

    1.配置工程

    2.核心类库

      (1) BaiduNaviManager  导航线路规划管理器

      (2) BNRountGuideManager  导航过程管理类

3.在AndroidManifest中添加开发密钥、所需权限等信息  参考 http://lbsyun.baidu.com/index.php?title=androidsdk/guide/create-project/hellomap

demo;

效果展示

初始化SDK:

在Java目录中创建一个新的类继承 Application 并重写 oncreat方法

package com.example.baudu;

import android.app.Application;

import com.baidu.mapapi.SDKInitializer;

/**
 * 初始化百度地图,在应用创建时执行create方法
 */

public class BaiduApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        SDKInitializer.initialize(getApplicationContext());
    }
}

xml布局文件: 使用MapView控件

<?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/mapView"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    </com.baidu.mapapi.map.MapView>

</RelativeLayout>

创建地图activity 管理生命周期

package com.example.baudu;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.MapView;

public class MainActivity extends AppCompatActivity {

    MapView mapView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mapView = findViewById(R.id.mapView);
        BaiduMap baiduMap = mapView.getMap();
    }

    @Override
    protected void onResume() {
        super.onResume();
        mapView.onResume();
    }

    @Override
    protected void onPause() {
        super.onPause();
        mapView.onPause();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        mapView.onDestroy();
    }
}
原文地址:https://www.cnblogs.com/conglingkaishi/p/9577836.html