zoukankan      html  css  js  c++  java
  • android调用百度地图(1)新手环境搭建基础应用教程

    一、申请百度账号,建立应用,获得key值
    申请网址:http://lbsyun.baidu.com/apiconsole/key
    然后点击控制台,创建属于你自己的应用

    (ak这里我不方便透露,就不发出来了)
    点击图片中的设置一栏,就会进入另一个页面,这里是安全码的生成页面,按照指示填相应的信息即可。
    1)获取sha1值方法:电脑打开cmd(win+r),然后按照图中所示进行输入就可以获取sha1的值(密码默认初始为android)。


    2)包名获取
    包名去AndroidMainifest.xml中复制

    在输入安全码后,点击“确定”完成应用的配置工作,会得到一个创建的Key。
    二、下载sdk
    下载地址:http://lbsyun.baidu.com/index.php?title=androidsdk/sdkandev-download
    进去之后选择自定义下载,勾选我们所所需要的功能进行下载,选择开发包下载。

    下载解压如图所示:

    三、配置环境
    我的开发工具以及环境:
    androidstudio:3.4.2
    电脑版本:win10专业版
    首先新建一个空的android项目:

    切换project模式,复制我解压的文件夹下面的
    复制到我们的工程目录下面的libs下,然后双击,选择add as Library那个选项。然后弄完如下所示:

    接着切换android模式:建立以下工程目录结构:

    配置完之后在我们的AndroidMainifest.xml中加入Key。代码如下:
    在application中添加开发密钥

    <application             
     <meta-data android:name="com.baidu.lbsapi.API_KEY"android:value="申请的key" /> </application>
    

    添加权限:

    //获取设备网络状态,禁用后无法获取网络状态
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        //网络权限,当禁用后,无法进行检索等相关业务
        <uses-permission android:name="android.permission.INTERNET" />
        //读取系统信息,包含系统版本等信息,用作统计
        <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
        //获取设备的网络状态,鉴权所需网络代理
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
        //允许sd卡写权限,需写入地图数据,禁用后无法显示地图
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        //这个权限用于进行网络定位
        <uses-permission android:name="android.permission.WRITE_SETTINGS" />
        //这个权限用于访问GPS定位
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
        //获取统计数据
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
        //使用步行AR导航,配置Camera权限
        <uses-permission android:name="android.permission.CAMERA" />
        //程序在手机屏幕关闭后后台进程仍然运行
        <uses-permission android:name="android.permission.WAKE_LOCK" />
    

    添加百度地图服务
    在mainfest的application标签中配置地图服务

        <service
            android:name="com.baidu.location.f"
            android:enabled="true"
            android:process=":remote" ></service>
    

    至此,环境搭建完成,运行没有报错即可。

    四、基础应用

    在xml文件中加入初始化控件的代码:

    <TextView android:text="百度地图"
        android:layout_width="match_parent"
        android:gravity="center"
        android:layout_height="wrap_content"
        android:textSize="25sp"
        android:id="@+id/textView" />
    <com.baidu.mapapi.map.MapView
        android:id="@+id/baiDuMv"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clickable="true" />
    
    在mainACtivity的OnCreate方法中加入以下初始化代码:
    SDKInitializer.initialize(getApplicationContext());//初始化地图控件
    
    

    MainActivity完整代码:

    package com.example.mysql_project;

    import androidx.appcompat.app.AppCompatActivity;

    import android.os.Bundle;

    import com.baidu.location.BDLocation;
    import com.baidu.location.BDLocationListener;
    import com.baidu.location.LocationClient;
    import com.baidu.location.LocationClientOption;
    import com.baidu.mapapi.SDKInitializer;
    import com.baidu.mapapi.map.BaiduMap;
    import com.baidu.mapapi.map.BitmapDescriptor;
    import com.baidu.mapapi.map.BitmapDescriptorFactory;
    import com.baidu.mapapi.map.MapStatusUpdate;
    import com.baidu.mapapi.map.MapStatusUpdateFactory;
    import com.baidu.mapapi.map.MapView;
    import com.baidu.mapapi.map.MyLocationData;
    import com.baidu.mapapi.model.LatLng;

    public class MainActivity extends AppCompatActivity {
    private MapView mMapView = null;
    private BaiduMap mBaiduMap;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        SDKInitializer.initialize(getApplicationContext());//初始化地图控件
        setContentView(R.layout.activity_main);
        initView();
    }
    
    private void initView() {
        //获取地图控件引用
        mMapView = (MapView) findViewById(R.id.bmapView);
        //获取百度地图
        mBaiduMap = mMapView.getMap();
        //普通地图
        mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
        //开启交通图
        mBaiduMap.setTrafficEnabled(true);
        //卫星地图
        //mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);
    }
    
    @Override
    protected void onStart() {
        super.onStart();
    }
    
    @Override
    protected void onStop() {
        super.onStop();
    }
    
    @Override
    protected void onDestroy() {
        super.onDestroy();
        //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理
        mMapView.onDestroy();
    
    }
    
    @Override
    protected void onPause() {
        super.onPause();
        //在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理
        mMapView.onPause();
    }
    
    @Override
    protected void onResume() {
        super.onResume();
        //在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理
        mMapView.onResume();
    }
    

    }
    至此,初步使用完成。点击运行查看一下效果吧,后续将会持续更新。

    一键三连呀!
  • 相关阅读:
    Finer Resolution Observation and Monitoring -Global Land Cover更精细的分辨率观测和监测-全球土地覆盖
    MapServer教程3
    手写Tomcat源码
    室内无线局域网
    基于点云的3ds Max快速精细三维建模方法及系统的制作方法 插件开发
    Web Mapping Illustrated Using Open Source GIS Toolkits
    apache Internal Server Error 解决方法
    php命令行工具
    小程序:将gbk转为utf-8
    java FileUtil(文件操作类)
  • 原文地址:https://www.cnblogs.com/jee-cai/p/14095375.html
Copyright © 2011-2022 走看看