配置就不再多说了,上一篇已经详细说过了,这次就是根据经纬度坐标做地图导航,路径规划。直接上代码:

package com.example.appview.mian_page.Frament.Anzhuang_Frament.ItemA_Activity;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat; import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.view.View; import com.baidu.location.BDAbstractLocationListener;
import com.baidu.location.BDLocation;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.mapapi.CoordType;
import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.model.LatLng;
import com.baidu.mapapi.utils.route.BaiduMapRoutePlan;
import com.baidu.mapapi.utils.route.RouteParaOption;
import com.example.appview.R;
import com.example.appview.mian_page.Frament.Preject_Tance_Frament.ItemA_Activity.Preject_ItemA_AlterJZ;
import com.google.android.gms.maps.MapView;
import com.hjq.bar.OnTitleBarListener; import java.util.ArrayList;
import java.util.List; public class ItemA_Nav_Activity extends AppCompatActivity {
double locationX;
double locationy;
public LocationClient mLocationClient = null;
private MapView mapView;
// private MyLocationListener myListener = new MyLocationListener();
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
SDKInitializer.initialize(getApplicationContext());
SDKInitializer.setCoordType(CoordType.BD09LL);
setContentView(R.layout.activity_item_anav);
mLocationClient = new LocationClient(getApplicationContext());
//声明LocationClient类
mLocationClient.registerLocationListener(new MyLocationListener());
getPermissionMethod();
getlocation();
LatLng startPoint = new LatLng(39.915291, 116.403857);
LatLng endPoint = new LatLng(40.056858, 116.308194);
//构建RouteParaOption参数以及策略
//也可以通过startName和endName来构造
RouteParaOption paraOption = new RouteParaOption()
.startPoint(startPoint)
.endPoint(endPoint)
.busStrategyType(RouteParaOption.EBusStrategyType.bus_recommend_way);
//调起百度地图
try {
BaiduMapRoutePlan.openBaiduMapTransitRoute(paraOption, this);
} catch (Exception e) {
e.printStackTrace();
} //调起结束时及时调用finish方法以释放相关资源
BaiduMapRoutePlan.finish(this);
}
private void getlocation(){
LocationClientOption option = new LocationClientOption();
option.setIsNeedAddress(true);//可选,设置是否需要地址信息,默认不需要
option.setAddrType("all");
mLocationClient.setLocOption(option);
mLocationClient.start();
//mLocationClient为第二步初始化过的LocationClient对象
//需将配置好的LocationClientOption对象,通过setLocOption方法传递给LocationClient对象使用
//更多LocationClientOption的配置,请参照类参考中LocationClientOption类的详细说明
}
//这个是根据获取当前经纬度坐标,然后到指定坐标做导航。上面直接定义了两个坐标做测试。
public class MyLocationListener extends BDAbstractLocationListener {
@Override
public void onReceiveLocation(BDLocation location){
//此处的BDLocation为定位结果信息类,通过它的各种get方法可获取定位相关的全部结果
//以下只列举部分获取经纬度相关(常用)的结果信息
//更多结果信息获取说明,请参照类参考中BDLocation类中的说明
double latitude = location.getLatitude(); //获取纬度信息
double longitude = location.getLongitude(); //获取经度信息
//float radius = location.getRadius(); //获取定位精度,默认值为0.0f
//String coorType = location.getCoorType();
//获取经纬度坐标类型,以LocationClientOption中设置过的坐标类型为准
int errorCode = location.getLocType();
//获取定位类型、定位错误返回码,具体信息可参照类参考中BDLocation类中的说明
//此处的BDLocation为定位结果信息类,通过它的各种get方法可获取定位相关的全部结果
//以下只列举部分获取地址相关的结果信息
//更多结果信息获取说明,请参照类参考中BDLocation类中的说明
//String addr = location.getAddrStr(); //获取详细地址信息
String country = location.getCountry(); //获取国家
String province = location.getProvince(); //获取省份
String city = location.getCity(); //获取城市
String district = location.getDistrict(); //获取区县
String street = location.getStreet(); //获取街道信息
//String adcode = location.getAdCode(); //获取adcode
String town = location.getTown(); //获取乡镇信息
String str=country+"-"+province+"-"+city+"-"+district+"-"+street+"-"+town;
locationX=latitude;
locationy=longitude;
}
}
// 权限请求
private void getPermissionMethod() {
List<String> permissionList = new ArrayList<>();
if(ContextCompat.checkSelfPermission(ItemA_Nav_Activity.this, Manifest.permission.ACCESS_FINE_LOCATION)!= PackageManager.PERMISSION_GRANTED){
permissionList.add(Manifest.permission.ACCESS_FINE_LOCATION);
}
if (!permissionList.isEmpty()){
//权限列表不是空
String[] permissions = permissionList.toArray(new String[permissionList.size()]);
ActivityCompat.requestPermissions(ItemA_Nav_Activity.this,permissions,1);
}
}
}

Android Studio 百度地图导航的更多相关文章

  1. Android studio 百度地图开发(3)地图导航

    Android studio 百度地图开发(3)地图导航 email:chentravelling@163.com 开发环境:win7 64位,Android Studio,请注意是Android S ...

  2. Android studio百度地图demo出现230错误,key校验失败

    转自daoxiaomianzi原文 Android studio 百度地图demo出现230错误,key校验失败 使用AndroidStudio导入Baidu地图的as版的demo,引入后,发现没有k ...

  3. Android studio 百度地图开发(2)地图定位

    Android studio 百度地图开发(2)地图定位 email:chentravelling@163.com 开发环境:win7 64位,Android Studio,请注意是Android S ...

  4. 实现百度地图导航Demo的语音播报功能

    上文中实现了在本地导入百度地图导航Demo,那么在此基础上如何实现导航的语音播报呢? 一.为该应用申请语音播报(也叫注册) http://developer.baidu.com/map/index.p ...

  5. android 之 百度地图

    简介 百度地图Android定位SDK为基于移动客户端开发LBS应用提供基础定位能力. 功能介绍 功能介绍: 地图展示:包括2D图.卫星图.3D图地图展示. 地图操作:提供控制平移.缩放.底图旋转.变 ...

  6. Android使用百度地图出现闪退及定位时显示蓝屏问题

     目录 1.Android使用百度地图出现闪退 2.Android使用百度地图定位出现蓝屏问题     1.Android使用百度地图出现闪退 一般情况下出现闪退是在AndroidManifest.x ...

  7. H5调用百度地图导航

    template <div class="map"> <div class="content_flex"><img src=&qu ...

  8. android 集成百度地图

    一.下载百度地图为我们提供的所有DEMO. 在这里边我选的是一键下载. 二.下载后有两个项目一个是用于eclipse.另一个是android studio.我选的是android studio. 我用 ...

  9. android使用百度地图SDK获取定位信息

    本文使用Android Studio开发. 获取定位信息相对简单.我们仅仅须要例如以下几步: 第一步,注冊百度账号,在百度地图开放平台新建应用.生成API_KEY.这些就不细说了,请前往这里:titl ...

随机推荐

  1. 公有云上构建云原生 AI 平台的探索与实践 - GOTC 技术论坛分享回顾

    7 月 9 日,GOTC 2021 全球开源技术峰会上海站与 WAIC 世界人工智能大会共同举办,峰会聚焦 AI 与云原生两大以开源驱动的前沿技术领域,邀请国家级研究机构与顶级互联网公司的一线技术专家 ...

  2. Java数据库分表与多线程查询结果汇总

    今天接到一个需求:要对一个物理分表的逻辑表进行查询统计.而数据库用的是公司自己研发的产品,考虑的到公司产品的特点以及业务的需求,该逻辑表是按年月进行分表的,而非分区.我们来看一下,在按时间段进行查询统 ...

  3. 记一次Hvv中遇到的API接口泄露而引起的一系列漏洞

    引言 最近朋友跟我一起把之前废弃的公众号做起来了,更名为鹿鸣安全团队,后面陆续会更新个人笔记,有趣的渗透经历,内网渗透相关话题等,欢迎大家关注 前言 Hvv中的一个很有趣的漏洞挖掘过程,从一个简单的A ...

  4. odoo里的rpc用法

    import odoorpcdb_name = 'test-12'user_name = 'admin'password = 'admin'# Prepare the connection to th ...

  5. 使用javah 给.class类编译jni_helloworld.h文件头

    第一步,在idea中,编写java文件,并且编译 package jni; public class HelloWorld { static { System.loadLibrary("He ...

  6. ifix中嵌入3d模型初探(一)

    在ifix项目中插入3d模型,是当前工控上位机的一个发展趋势,故而我也来尝尝鲜.利用现有条件,初步打算完成一个工厂俯视3d全景. 基本思路:利用webbrowser+3dmax+three.js来嵌入 ...

  7. linux统计nginx日志中请求访问量命令

    Nginx 三种分配策略:轮询.权重.ip_hash(比如你登录了一个网站,登录信息已经保存到 a 机器,但当你做后续操作时的请求会到 b 机器,那么就获取不到你原来登录的信息,此时你就需要重新登录了 ...

  8. Go通关04:正确使用 array、slice 和 map!

    Array(数组) 数组存放的是固定长度.相同类型的数据. 数组声明 var <数组名> = [<长度>]<元素>{元素1,元素2} var arr = [2]in ...

  9. 数据结构算法学习之队列(数组模拟java实现)

    数组模拟队列 数组模拟队列 今天学习数组模拟队列.队列常用于生活中的方方面面.比如银行叫号排队.实际上就是队列.所有人抽号排队.先去的先抽号.所以靠前的号最后会先被叫到然后出队.后边的会随之往前移位. ...

  10. Sci Adv | 上科大水雯箐/胡霁/钟桂生脑蛋白质组学研究揭示抑郁行为的新调控因子

    大脑是生物体内结构和功能最复杂的组织.近年来蓬勃发展的脑蛋白组学研究是绘制大脑功能分子图谱.全面理解大脑生理病理机制的必经途径.跨膜蛋白家族在突触信号传递和神经可塑性调节中扮演重要角色,许多跨膜蛋白与 ...