package com.example.ampnavigation;
import android.content.DialogInterface;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.KeyEvent;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import com.amap.api.maps.model.Circle;
import com.amap.api.maps.model.CircleOptions;
import com.amap.api.maps.model.LatLng;
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) {
}
最后
目前已经更新的部分资料:
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
blic void showCross(AMapNaviCross aMapNaviCross) {
}
@Override
public void hideCross() {
}
@Override
public void showModeCross(AMapModelCross aMapModelCross) {
}
最后
目前已经更新的部分资料:
[外链图片转存中…(img-8YuUOOGX-1714315893569)]
[外链图片转存中…(img-IKmSHHXI-1714315893570)]
[外链图片转存中…(img-oETPRvtL-1714315893571)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!