百度地图 android sdk 升级到最新版本 问题解决

项目背景

从定位导航基础地图升级到最新sdk
因为老项目,需要在android 7.0上运行;
原来sdk:
基础地图为baidumapapi_v3_5_0.jar
地图定位为locSDK_5.2.jar
地图导航为BaiduNaviSDK_2.0.jar

1.包找不到:归类为

地图经纬度转换包,下载新的sdk时,记得勾选“计算工具”
import com.baidu.mapapi.utils.CoordinateConverter;
import com.baidu.mapapi.utils.CoordinateConverter.CoordType;
地图覆盖物包,这部分没有了,只能从demo源码中获得;具体下文讲解;
package com.baidu.mapapi.overlayutil;
地图搜索包,线路呀,等;需要勾选:“检索功能”;
import com.baidu.mapapi.search.core.RouteLine;
import com.baidu.mapapi.search.core.SearchResult;
import com.baidu.mapapi.search.geocode.GeoCodeResult;
import com.baidu.mapapi.search.geocode.GeoCoder;
import com.baidu.mapapi.search.geocode.OnGetGeoCoderResultListener;
import com.baidu.mapapi.search.geocode.ReverseGeoCodeOption;
import com.baidu.mapapi.search.geocode.ReverseGeoCodeResult;
import com.baidu.mapapi.search.route.BikingRouteResult;
import com.baidu.mapapi.search.route.DrivingRouteLine;
import com.baidu.mapapi.search.route.DrivingRoutePlanOption;
import com.baidu.mapapi.search.route.DrivingRouteResult;
import com.baidu.mapapi.search.route.IndoorRouteResult;
import com.baidu.mapapi.search.route.MassTransitRouteResult;
import com.baidu.mapapi.search.route.OnGetRoutePlanResultListener;
import com.baidu.mapapi.search.route.PlanNode;
import com.baidu.mapapi.search.route.RoutePlanSearch;
import com.baidu.mapapi.search.route.TransitRouteLine;
import com.baidu.mapapi.search.route.TransitRoutePlanOption;
import com.baidu.mapapi.search.route.TransitRouteResult;
import com.baidu.mapapi.search.route.WalkingRouteLine;
import com.baidu.mapapi.search.route.WalkingRoutePlanOption;
import com.baidu.mapapi.search.route.WalkingRouteResult;

2.解决办法

下载jar和so包;
jar与so包的引用,就不说了,都在android studio中引用;
这里写图片描述
第一次只下载了选中的,后来发现还是报错;需要额外勾选“计算工具,检索功能”

2.2注意下载

我下载了3次发现,都是无法解压,解压错误;不知道为何;最终让同事打开蓝灯,下载,发现可以了;

2.3从源码找聚合的代码

这里写图片描述
这里写图片描述

2.4最终结构:

这里写图片描述

这里写图片描述
整理下载:
如果不愿意,自己搞,直接去csdn下载吧;
下载2分,不知道为啥,不让免费了,想要的,评论留下邮箱;
下载链接:http://download.csdn.net/download/u014624241/10175986

阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
要在Android应用中使用百度地图导航SDK添加途径点,您需要按照以下步骤进行操作: 1. 在您的Android项目中,添加百度地图导航SDK的依赖。您可以在项目的build.gradle文件中添加以下代码: ```groovy dependencies { implementation 'com.baidu.mapapi:navisdk:5.1.0' } ``` 2. 在您的布局文件中添加一个地图视图。您可以使用MapView控件来显示地图。例如,在XML布局文件中添加以下代码: ```xml <com.baidu.mapapi.map.MapView android:id="@+id/bmapView" android:layout_width="match_parent" android:layout_height="match_parent" /> ``` 3. 在您的Activity或Fragment中,初始化地图和导航功能。您可以在onCreate方法中添加以下代码: ```java // 初始化地图 MapView mMapView = findViewById(R.id.bmapView); BaiduMap mBaiduMap = mMapView.getMap(); // 初始化导航功能 BNRoutePlanNode sNode = new BNRoutePlanNode.Builder() .name("起点") .latitude(startLat) .longitude(startLng) .build(); BNRoutePlanNode eNode = new BNRoutePlanNode.Builder() .name("终点") .latitude(endLat) .longitude(endLng) .build(); BNRoutePlanNode[] nodes = new BNRoutePlanNode[]{sNode, eNode}; // 设置途径点 BNRoutePlanNode viaNode = new BNRoutePlanNode.Builder() .name("途径点") .latitude(viaLat) .longitude(viaLng) .build(); List<BNRoutePlanNode> throughNodes = new ArrayList<>(); throughNodes.add(viaNode); // 创建导航实例 BNRoutePlanNode startNode = nodes[0]; BNRoutePlanNode endNode = nodes[1]; BaiduNaviManager.getInstance().init(this, null, null, new BaiduNaviManager.NaviInitListener() { @Override public void onAuthResult(int i, String s) { // 初始化结果处理 } @Override public void initSuccess() { // 初始化成功处理 // 开始导航 BaiduNaviManager.getInstance().launchNavigator( YourActivity.this, startNode, endNode, throughNodes, BaiduNaviManager.RoutePlanPreference.ROUTE_PLAN_MOD_RECOMMEND, true, new BaiduNaviManager.RoutePlanListener() { @Override public void onJumpToNavigator(Bundle bundle) { // 开始导航回调 Intent intent = new Intent(YourActivity.this, YourNavigatorActivity.class); intent.putExtras(bundle); startActivity(intent); } @Override public void onRoutePlanFailed() { // 导航失败处理 } }); } @Override public void initStart() { // 初始化开始处理 } @Override public void initFailed() { // 初始化失败处理 } }); ``` 在上述代码中,您需要替换`startLat`、`startLng`、`endLat`、`endLng`、`viaLat`和`viaLng`为实际的起点、终点和途径点的经纬度。 4. 创建一个新的Activity(例如`YourNavigatorActivity`)来显示导航界面。您可以在该Activity的onCreate方法中添加以下代码: ```java // 获取导航视图 BaiduNaviManager.getInstance().init(YourNavigatorActivity.this, null, null, new BaiduNaviManager.NaviInitListener() { @Override public void onAuthResult(int i, String s) { // 初始化结果处理 } @Override public void initSuccess() { // 初始化成功处理 // 创建导航视图 View navigatorView = BNavigator.getInstance().init( YourNavigatorActivity.this, getIntent().getExtras(), YourNavigatorActivity.class); if (navigatorView != null) { setContentView(navigatorView); } } @Override public void initStart() { // 初始化开始处理 } @Override public void initFailed() { // 初始化失败处理 } }); ``` 这样,您就可以在您的Android应用中使用百度地图导航SDK并添加途径点了。请注意,使用该SDK需要您在百度开发者平台上注册并获取相应的API密钥,并将其配置到您的项目中。此外,还需要权限申请和处理其他相关逻辑,具体可参考百度地图导航SDK的官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不对法

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值