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

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. Java成长之路--一个非科班生的进阶之路

    前言 笔者从事Java开发六年有余,从什么都不懂的小白一路成长到上市公司管理20人的技术leader.管理的团队,虽然人数不算多,但也是对于我这个非科班生这么多年努力的一种肯定.在技术的道路上,我没有 ...

  2. 开发工具IDE从入门到爱不释手(一)项目初始配置

    前言 版本:IDE 2019.2.3 JDK:1.8 一.字体 快捷键:Ctrl+Alt+S  ;打开Settings,一般系统配置都在这里 输入font,需要修改字体有三处 Apperance:ID ...

  3. odoo14在tree、kanban视图上添加dashboard

    效果图: 实现代码:js:view的类型原来1个js给拆分成了4个: view, controller, renderer, model 1.view:AbstractView的子类,这是工厂类:类需 ...

  4. JS 之循环 应用案例1

    应用场景:将el-select下拉框的lab值,显示在下面的详情text框,见下图 用到了 el-select 传值,js循环判断options.code是否等于传进来的值,等于就break; tex ...

  5. sql server 查看数据库配置等信息(字符集,编码格式,版本号...)

    select SERVERPROPERTY(N'edition') as Edition --数据版本,如企业版.开发版等,SERVERPROPERTY(N'collation') as Collat ...

  6. AppWeb认证绕过漏洞(CVE-2018-8715)

    影响范围 Appweb 7.0.2及早期版本. 复现 构造头Authorization: Digest username=admin 返回包里包含session 发送POST请求,添加session到 ...

  7. 如何高效、快速学习Flutter?如何避坑?(文末送服福利)

    稳住,今天是周末,不过我今天要上班....啊..啊... 对于 Flutter 我没有太多的发言权,不过GSY是对 Flutter 充分理解并精深掌握的前辈了,所以转一篇他对 Flutter 的一些解 ...

  8. 20分钟掌握Android Gradle

    目前国内对Android领域的探索已经越来越深,不少技术领域如插件化.热修复.构建系统等都对Gradle有迫切的需求,不懂Gradle将无法完成上述事情.所以Gradle必须要学习. Gradle 里 ...

  9. IntelliJ IDEA 中为Maven 配置阿里云镜像源

    idea中查看位置,应该都是一样的这个位置 在此位置下新建一个.xml文件 内容如下: <?xml version="1.0" encoding="UTF-8&qu ...

  10. Prettier-Code Formater代码格式化插件使用教程

    目录 Prettier-Code Formater代码格式化插件使用教程 插件的安装 插件的使用 方式一: 配置VScode代码格式化后, 结合VScode快捷键使用 方式二: CLI中使用命令行的方 ...