Android 应用内实现导航页面,接入百度SDK内置导航,高德SDK内置导航(1)

import com.amap.api.navi.AMapNavi;

import com.amap.api.navi.AMapNaviListener;

import com.amap.api.navi.AMapNaviView;

import com.amap.api.navi.AMapNaviViewListener;

import com.amap.api.navi.AMapNaviViewOptions;

import com.amap.api.navi.enums.NaviType;

import com.amap.api.navi.model.AMapCalcRouteResult;

import com.amap.api.navi.model.AMapLaneInfo;

import com.amap.api.navi.model.AMapModelCross;

import com.amap.api.navi.model.AMapNaviCameraInfo;

import com.amap.api.navi.model.AMapNaviCross;

import com.amap.api.navi.model.AMapNaviInfo;

import com.amap.api.navi.model.AMapNaviLocation;

import com.amap.api.navi.model.AMapNaviRouteNotifyData;

import com.amap.api.navi.model.AMapNaviTrafficFacilityInfo;

import com.amap.api.navi.model.AMapServiceAreaInfo;

import com.amap.api.navi.model.AimLessModeCongestionInfo;

import com.amap.api.navi.model.AimLessModeStat;

import com.amap.api.navi.model.NaviInfo;

import com.amap.api.navi.model.NaviLatLng;

import com.autonavi.tbt.TrafficFacilityInfo;

import java.util.ArrayList;

import java.util.List;

public class NaviActivity extends AppCompatActivity {

private AMapNaviView mAMapNaviView;

private AMapNavi mAMapNavi;

protected AlertDialog.Builder builder;

protected AlertDialog dialog;

private String las,los;

private int fwint;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_navi);

las = getIntent().getStringExtra(“las”);

los = getIntent().getStringExtra(“los”);

fwint = getIntent().getIntExtra(“fw”,0);

//获取 AMapNaviView 实例

mAMapNaviView = findViewById(R.id.navi_view);

//获取AMapNavi实例

mAMapNavi = AMapNavi.getInstance(getApplicationContext());

// mAMapNavi.setUseInnerVoice(true);

mAMapNavi.setUseInnerVoice(true,true);

AMapNaviViewOptions options = mAMapNaviView.getViewOptions();

//隐藏SDK默认的布局

// options.setLayoutVisible(false);

// options.setTrafficBarEnabled(true);

mAMapNaviView.setViewOptions(options);

mAMapNavi.setMultipleRouteNaviMode(true);

mAMapNaviView.setAMapNaviViewListener(new AMapNaviViewListener() {

@Override

public void onNaviSetting() {

}

@Override

public void onNaviCancel() {

finish();

Log.i(“lgq”,“cancel”);

}

@Override

public boolean onNaviBackClick() {

Log.i(“lgq”,“cancelback”);

showNavBackDialog();

return true;

}

@Override

public void onNaviMapMode(int i) {

}

@Override

public void onNaviTurnClick() {

}

@Override

public void onNextRoadClick() {

}

@Override

public void onScanViewButtonClick() {

}

@Override

public void onLockMap(boolean b) {

}

@Override

public void onNaviViewLoaded() {

}

@Override

public void onMapTypeChanged(int i) {

}

@Override

public void onNaviViewShowMode(int i) {

}

});

mAMapNaviView.onCreate(savedInstanceState);

//添加监听回调,用于处理算路成功

mAMapNavi.addAMapNaviListener(new AMapNaviListener() {

@Override

public void onInitNaviFailure() {

}

@Override

public void onInitNaviSuccess() {

final double startLatitude = 22.991262;

final double startLongitude = 113.707716;

final double targetLatitude = 23.001662;

final double targetLongitude = 113.607816;

//navigate(targetLatitude,targetLongitude);

/**

  • 方法:

  • int strategy=mAMapNavi.strategyConvert(congestion, avoidhightspeed, cost, hightspeed, multipleroute);

  • 参数:

  • @congestion 躲避拥堵

  • @avoidhightspeed 不走高速

  • @cost 避免收费

  • @hightspeed 高速优先

  • @multipleroute 多路径

  • 说明:

  •  以上参数都是boolean类型,其中multipleroute参数表示是否多条路线,如果为true则此策略会算出多条路线。
    
  • 注意:

  •  不走高速与高速优先不能同时为true
    
  •  高速优先与避免收费不能同时为true
    

*/

int strategy = 0;

try {

strategy = mAMapNavi.strategyConvert(true, false, false, false, false);

} catch (Exception e) {

e.printStackTrace();

}

List sList = new ArrayList() {

{

add(new NaviLatLng(startLatitude, startLongitude));

}

};

List eList = new ArrayList() {

{

add(new NaviLatLng(targetLatitude, targetLongitude));

}

};

List mWayPointList = null;

mAMapNavi.calculateDriveRoute(sList, eList, mWayPointList, strategy);

/绘制圆/

int alpha = 160;

Circle circle = mAMapNaviView.getMap()

.addCircle(new CircleOptions().

center(new LatLng(targetLatitude, targetLongitude)).

radius(1000).

fillColor(Color.argb(alpha, 10, 200, 1)).

fillColor(Color.parseColor(“#19999999”)).

strokeColor(Color.parseColor(“#33df6e50”)).

strokeWidth(10));

}

@Override

public void onStartNavi(int i) {

}

@Override

public void onTrafficStatusUpdate() {

}

@Override

public void onLocationChange(AMapNaviLocation aMapNaviLocation) {

}

@Override

public void onGetNavigationText(int i, String s) {

Log.i(“lgq”,"文字啦啦啦 ==== "+s);

}

@Override

public void onGetNavigationText(String s) {

Log.i(“lgq”,"文字啦eeee啦啦 ==== "+s);

}

@Override

public void onEndEmulatorNavi() {

}

@Override

public void onArriveDestination() {

}

@Override

public void onCalculateRouteFailure(int i) {

}

@Override

public void onReCalculateRouteForYaw() {

}

@Override

public void onReCalculateRouteForTrafficJam() {

}

@Override

public void onArrivedWayPoint(int i) {

}

@Override

public void onGpsOpenStatus(boolean b) {

}

@Override

public void onNaviInfoUpdate(NaviInfo naviInfo) {

}

@Override

public void onNaviInfoUpdated(AMapNaviInfo aMapNaviInfo) {

}

@Override

public void updateCameraInfo(AMapNaviCameraInfo[] aMapNaviCameraInfos) {

}

@Override

public void updateIntervalCameraInfo(AMapNaviCameraInfo aMapNaviCameraInfo, AMapNaviCameraInfo aMapNaviCameraInfo1, int i) {

}

@Override

public void onServiceAreaUpdate(AMapServiceAreaInfo[] aMapServiceAreaInfos) {

}

@Override

public void showCross(AMapNaviCross aMapNaviCross) {

}

@Override

public void hideCross() {

}

@Override

public void showModeCross(AMapModelCross aMapModelCross) {

}

@Override

public void hideModeCross() {

}

@Override

public void showLaneInfo(AMapLaneInfo[] aMapLaneInfos, byte[] bytes, byte[] bytes1) {

}

@Override

public void showLaneInfo(AMapLaneInfo aMapLaneInfo) {

}

总结

首先是感觉自己的基础还是不够吧,大厂好像都喜欢问这些底层原理。

另外一部分原因在于资料也还没有看完,一面时凭借那份资料考前突击恶补个几天居然也能轻松应对(在这里还是要感谢那份资料,真的牛),于是自我感觉良好,资料就没有怎么深究下去了。

之前的准备只涉及了Java、Android、计网、数据结构与算法这些方面,面对面试官对其他基础课程的考察显得捉襟见肘。

下一步还是要查漏补缺,进行针对性复习。

最后的最后,那套资料这次一定要全部看完,是真的太全面了,各个知识点都涵盖了,几乎我面试遇到的所有问题的知识点这里面都有!希望大家不要犯和我一样的错误呀!!!一定要看完!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

那份资料考前突击恶补个几天居然也能轻松应对(在这里还是要感谢那份资料,真的牛),于是自我感觉良好,资料就没有怎么深究下去了。

之前的准备只涉及了Java、Android、计网、数据结构与算法这些方面,面对面试官对其他基础课程的考察显得捉襟见肘。

下一步还是要查漏补缺,进行针对性复习。

最后的最后,那套资料这次一定要全部看完,是真的太全面了,各个知识点都涵盖了,几乎我面试遇到的所有问题的知识点这里面都有!希望大家不要犯和我一样的错误呀!!!一定要看完!
[外链图片转存中…(img-Go2JQAIe-1714394400462)]

[外链图片转存中…(img-fNdE6YIW-1714394400462)]

[外链图片转存中…(img-14A8jTuA-1714394400462)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值