Compare commits

...

2 Commits

Author SHA1 Message Date
400d4d18f1 箩筐地图路径规划 2024-07-29 15:47:46 +08:00
fce593a1b6 箩筐地图集成显示(路径规划偶发失败) 2024-07-26 17:56:42 +08:00
11 changed files with 423 additions and 235 deletions

View File

@ -228,5 +228,6 @@ dependencies {
implementation 'com.github.getActivity:XToast:8.2'
implementation project(path: ':mylibrary')
implementation 'com.lk.mapsdk:sdk-full:2.3.7'
}

View File

@ -2,6 +2,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.arpa.hndahesudintocctmsdriver">
<uses-permission android:name="android.permission.CALL_PHONE" />
<!-- 白名单 -->
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
@ -14,6 +15,8 @@
<!--播音-->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!-- 地图截屏图片保存等 -->
<uses-permission android:name="android.permission.READ_MEDIA_PERMISSION" />
<!-- 极光 -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_PROFILE" />
@ -66,19 +69,24 @@
android:name="com/alct/mdp"
android:required="false" />
<meta-data
android:name="com.lk.lbsapi.API_KEY"
android:value="EE1721986040968235494A762772C95410D9881BB10790FC0BCRFNPFKW4K6697" />
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.MainActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:exported="true"
android:launchMode="singleTop"
android:screenOrientation="portrait" ></activity>
android:screenOrientation="portrait"></activity>
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.wallet.WithdrawalActivity"
android:screenOrientation="portrait" />
android:screenOrientation="portrait" />
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.wallet.UpBankActivity"
android:screenOrientation="portrait"/>
android:screenOrientation="portrait" />
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.home.OrderAllActivity"
android:screenOrientation="portrait" />
@ -93,11 +101,11 @@
android:screenOrientation="portrait" />
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.auth.PhotoCarActivity"
android:windowSoftInputMode="adjustPan|stateHidden"
android:screenOrientation="portrait" />
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.auth.VehicleAuthActivity"
android:screenOrientation="portrait"/>
android:screenOrientation="portrait" />
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.home.shangchuan.ShangChuangImgActivity"
android:screenOrientation="portrait">
@ -142,13 +150,13 @@
</activity>
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.home.shangchuan.GetShangChuanActivity"
android:screenOrientation="portrait"/>
android:screenOrientation="portrait" />
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.auth.AuthQualificationActivity"
android:screenOrientation="portrait"/>
android:screenOrientation="portrait" />
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.home.OrderListActivity"
android:screenOrientation="portrait"/>
android:screenOrientation="portrait" />
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.home.HuoYunDelActivity"
android:screenOrientation="portrait">
@ -161,14 +169,14 @@
</activity>
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.auth.CertificatesActivity"
android:windowSoftInputMode="adjustPan|stateHidden"
android:screenOrientation="portrait"/>
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.auth.AddCarSuccActivity"
android:screenOrientation="portrait"/>
android:screenOrientation="portrait" />
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.login.LoginActivity"
android:screenOrientation="portrait"/>
android:screenOrientation="portrait" />
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.login.WelcomeActivity"
android:exported="true"
@ -192,10 +200,10 @@
</activity>
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.home.drivercircle.VideoReleaseActivity"
android:screenOrientation="portrait"/>
android:screenOrientation="portrait" />
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.home.shangchuan.WebPDFActivity"
android:screenOrientation="portrait"/>
android:screenOrientation="portrait" />
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.home.StartYunDanActivity"
android:screenOrientation="portrait">
@ -203,13 +211,13 @@
</activity>
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.home.drivercircle.HomePageActivity"
android:screenOrientation="portrait"/>
android:screenOrientation="portrait" />
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.alert.VehicleChoiceActivity"
android:screenOrientation="portrait"/>
android:screenOrientation="portrait" />
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.home.shangchuan.OrderComplaintActivity"
android:screenOrientation="portrait"/>
android:screenOrientation="portrait" />
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.web.WebActivity"
android:screenOrientation="portrait"
@ -223,7 +231,7 @@
<activity
android:name=".ui.news.NewActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateAlwaysHidden" />
android:windowSoftInputMode="stateAlwaysHidden" />
<service
android:name="com.arpa.hndahesudintocctmsdriver.service.TrackService"
@ -266,7 +274,7 @@
<meta-data
android:name="com.amap.api.v2.apikey"
android:value="${GAODEKEY}" />
<!-- android:value="702eaa84675618b8eb69298d9fd42ca3" />-->
<!-- android:value="702eaa84675618b8eb69298d9fd42ca3" />-->
<service android:name="com.amap.api.location.APSService"></service>
@ -362,10 +370,11 @@
<activity
android:name=".H5Activity"
android:screenOrientation="portrait"
android:launchMode="singleTask">
android:launchMode="singleTask"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />

View File

@ -23,6 +23,9 @@ import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil;
import com.gyf.cactus.Cactus;
import com.gyf.cactus.callback.CactusBackgroundCallback;
import com.gyf.cactus.callback.CactusCallback;
import com.lk.mapsdk.base.mapapi.initializer.InitializerOptions;
import com.lk.mapsdk.base.mapapi.initializer.SDKInitializer;
import com.lk.mapsdk.base.mapapi.model.CoordType;
import com.tencent.bugly.crashreport.CrashReport;
import com.umeng.commonsdk.UMConfigure;
@ -49,6 +52,18 @@ public class App extends Application {
CommonBaseLibrary.getInstance().init(this, Api.BASE_URL);
CrashReport.initCrashReport(getApplicationContext(), "0fa55ffad8", false);
String state = SPUtil.getSP(con, "state_data", "authorization_state");
InitializerOptions options = new InitializerOptions();
// 设置是否使用Https网络请求,默认使用
options.setHttpsEnable(true);
// 设置坐标系,默认GCJ02
options.setCoordType(CoordType.GCJ02);
// SDK 初始化
SDKInitializer.initialization(getApplicationContext(), options);
// Log 开关使能
SDKInitializer.setLogEnable(true);
if ("1".equals(state)) {
try {
Context context = getApplicationContext();

View File

@ -17,30 +17,14 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.widget.NestedScrollView;
import com.amap.api.location.AMapLocation;
import com.amap.api.location.AMapLocationClient;
import com.amap.api.location.AMapLocationClientOption;
import com.amap.api.location.AMapLocationListener;
import com.amap.api.maps.AMap;
import com.amap.api.maps.CameraUpdateFactory;
import com.amap.api.maps.LocationSource;
import com.amap.api.maps.MapView;
import com.amap.api.maps.model.BitmapDescriptorFactory;
import com.amap.api.maps.model.LatLng;
import com.amap.api.maps.model.LatLngBounds;
import com.amap.api.maps.model.MarkerOptions;
import com.amap.api.maps.model.PolylineOptions;
import com.amap.api.services.core.AMapException;
import com.amap.api.services.core.LatLonPoint;
import com.amap.api.services.route.BusRouteResult;
import com.amap.api.services.route.DrivePath;
import com.amap.api.services.route.DriveRouteResult;
import com.amap.api.services.route.DriveStep;
import com.amap.api.services.route.RideRouteResult;
import com.amap.api.services.route.RouteSearch;
import com.amap.api.services.route.WalkRouteResult;
import com.arpa.hndahesudintocctmsdriver.util.alert.ToastUtil;
import com.bumptech.glide.Glide;
import com.dahe.mylibrary.utils.TimeUtil;
import com.dahe.mylibrary.utils.ToastUtils;
@ -67,6 +51,27 @@ import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil;
import com.arpa.hndahesudintocctmsdriver.util.view.BaseActivity;
import com.arpa.hndahesudintocctmsdriver.util.view.BaseRecyclerView;
import com.arpa.hndahesudintocctmsdriver.util.view.ScoreView;
import com.lk.mapsdk.base.mapapi.initializer.InitializerOptions;
import com.lk.mapsdk.base.mapapi.initializer.SDKInitializer;
import com.lk.mapsdk.base.mapapi.model.CoordType;
import com.lk.mapsdk.base.mapapi.model.LatLng;
import com.lk.mapsdk.base.mapapi.model.LatLngBounds;
import com.lk.mapsdk.map.mapapi.annotation.Marker;
import com.lk.mapsdk.map.mapapi.annotation.Polyline;
import com.lk.mapsdk.map.mapapi.annotation.options.MarkerOptions;
import com.lk.mapsdk.map.mapapi.annotation.options.PolylineOptions;
import com.lk.mapsdk.map.mapapi.annotation.util.BitmapDescriptorFactory;
import com.lk.mapsdk.map.mapapi.camera.MapStatusUpdateFactory;
import com.lk.mapsdk.map.mapapi.map.LKMap;
import com.lk.mapsdk.map.mapapi.map.MapView;
import com.lk.mapsdk.map.platform.style.layers.Property;
import com.lk.mapsdk.route.mapapi.base.AutoInfo;
import com.lk.mapsdk.route.mapapi.base.DrivingCostingOptionsInfo;
import com.lk.mapsdk.route.mapapi.base.LocationsInfo;
import com.lk.mapsdk.route.mapapi.driving.DrivingRoutePlan;
import com.lk.mapsdk.route.mapapi.driving.DrivingRoutePlanOptions;
import com.lk.mapsdk.route.mapapi.driving.DrivingRoutePlanResult;
import com.lk.mapsdk.route.mapapi.driving.OnDrivingRoutePlanListener;
import org.jetbrains.annotations.NotNull;
@ -82,7 +87,7 @@ public class StartYunDanActivity extends BaseActivity {
private String TAG = "StartYunDanActivity";
private NestedScrollView bottomSheet;
private MapView map;
private MapView mapView;
private BaseRecyclerView brv;
private AlphaAnimation mShowAnim, mHiddenAmin;//控件的显示和隐藏动画
private LinearLayout protect;
@ -144,7 +149,6 @@ public class StartYunDanActivity extends BaseActivity {
}
private UserBean ub;
private AMap aMap;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
@ -152,6 +156,10 @@ public class StartYunDanActivity extends BaseActivity {
StateStyleUtil.stateTextColor(this);
setContentView(R.layout.activity_yundan_start);
con = this;
mapView = findViewById(R.id.map);
mapView.onCreate(savedInstanceState);
mLKMap = mapView.getMap();
initMap();
id = getIntent().getExtras().getInt("id");
brv = findViewById(R.id.brv);
protect = findViewById(R.id.protect);
@ -161,12 +169,10 @@ public class StartYunDanActivity extends BaseActivity {
mBottomSheetBehavior.setHideable(false);
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
//mBottomSheetBehavior.set
map = findViewById(R.id.map);
map.onCreate(savedInstanceState);
if (aMap == null) {
aMap = map.getMap();
initLoaction();
}
// initLoaction();
Log.e("--id--", "" + id);
String userdata = SPUtil.getSP(con, "data", "userdata");
if (!userdata.equals("")) {
@ -315,7 +321,8 @@ public class StartYunDanActivity extends BaseActivity {
}
initZX(upkey, v15, position, o, 1);
});
search();
// search();
doSearch();
}
public void initZX(boolean key, View v, int position, Object o, int type) {
@ -449,8 +456,8 @@ public class StartYunDanActivity extends BaseActivity {
@Override
protected void onResume() {
super.onResume();
if (map != null) {
map.onResume();
if (mapView != null) {
mapView.onResume();
}
hyr.startOrder(id);
hyr.getEvaluate(id);
@ -459,223 +466,352 @@ public class StartYunDanActivity extends BaseActivity {
@Override
protected void onPause() {
super.onPause();
if (map != null) {
map.onPause();
if (mapView != null) {
mapView.onPause();
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if (map != null) {
map.onDestroy();
if (mapView != null) {
mapView.onDestroy();
}
}
@Override
protected void onSaveInstanceState(@NonNull @NotNull Bundle outState) {
super.onSaveInstanceState(outState);
map.onSaveInstanceState(outState);
mapView.onSaveInstanceState(outState);
}
LocationSource.OnLocationChangedListener mListener;
AMapLocationClient mlocationClient;
AMapLocationClientOption mLocationOption;
public void initLoaction() {
// 设置定位监听
aMap.setLocationSource(new LocationSource() {
@Override
public void activate(OnLocationChangedListener onLocationChangedListener) {
mListener = onLocationChangedListener;
if (mlocationClient == null) {
//初始化定位
try {
mlocationClient = new AMapLocationClient(con);
} catch (Exception e) {
e.printStackTrace();
}
//初始化定位参数
mLocationOption = new AMapLocationClientOption();
//设置定位回调监听
mlocationClient.setLocationListener(new AMapLocationListener() {
@Override
public void onLocationChanged(AMapLocation aMapLocation) {
if (mListener != null && aMapLocation != null) {
if (aMapLocation != null
&& aMapLocation.getErrorCode() == 0) {
mListener.onLocationChanged(aMapLocation);// 显示系统小蓝点
} else {
String errText = "定位失败," + aMapLocation.getErrorCode() + ": " + aMapLocation.getErrorInfo();
Log.e("AmapErr", errText);
}
}
}
});
//设置为高精度定位模式
mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
// mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Battery_Saving);
//设置定位模式为AMapLocationMode.Device_Sensors仅设备模式
//mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Device_Sensors);
//获取一次定位结果
//该方法默认为false
mLocationOption.setOnceLocation(true);
//获取最近3s内精度最高的一次定位结果
//设置setOnceLocationLatest(boolean b)接口为true启动定位时SDK会返回最近3s内精度最高的一次定位结果如果设置其为truesetOnceLocation(boolean b)接口也会被设置为true反之不会默认为false
mLocationOption.setOnceLocationLatest(true);
//设置是否返回地址信息默认返回地址信息
mLocationOption.setNeedAddress(true);
//设置是否允许模拟位置,默认为true允许模拟位置
mLocationOption.setMockEnable(true);
//单位是毫秒默认30000毫秒建议超时时间不要低于8000毫秒
mLocationOption.setHttpTimeOut(20000);
//关闭缓存机制
mLocationOption.setLocationCacheEnable(false);
//设置定位参数
mlocationClient.setLocationOption(mLocationOption);
// 此方法为每隔固定时间会发起一次定位请求为了减少电量消耗或网络流量消耗
// 注意设置合适的定位时间的间隔最小间隔支持为2000ms并且在合适时间调用stopLocation()方法来取消定位请求
// 在定位结束后在合适的生命周期调用onDestroy()方法
// 在单次定位情况下定位无论成功与否都无需调用stopLocation()方法移除请求定位sdk内部会移除
mlocationClient.startLocation();//启动定位
}
}
// public void initLoaction() {
// // 设置定位监听
// aMap.setLocationSource(new LocationSource() {
// @Override
// public void activate(OnLocationChangedListener onLocationChangedListener) {
// mListener = onLocationChangedListener;
// if (mlocationClient == null) {
// //初始化定位
// try {
// mlocationClient = new AMapLocationClient(con);
// } catch (Exception e) {
// e.printStackTrace();
// }
// //初始化定位参数
// mLocationOption = new AMapLocationClientOption();
// //设置定位回调监听
// mlocationClient.setLocationListener(new AMapLocationListener() {
// @Override
// public void onLocationChanged(AMapLocation aMapLocation) {
// if (mListener != null && aMapLocation != null) {
// if (aMapLocation != null
// && aMapLocation.getErrorCode() == 0) {
// mListener.onLocationChanged(aMapLocation);// 显示系统小蓝点
// } else {
// String errText = "定位失败," + aMapLocation.getErrorCode() + ": " + aMapLocation.getErrorInfo();
// Log.e("AmapErr", errText);
// }
// }
// }
// });
// //设置为高精度定位模式
// mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
// // mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Battery_Saving);
// //设置定位模式为AMapLocationMode.Device_Sensors仅设备模式
// //mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Device_Sensors);
// //获取一次定位结果
// //该方法默认为false
// mLocationOption.setOnceLocation(true);
// //获取最近3s内精度最高的一次定位结果
// //设置setOnceLocationLatest(boolean b)接口为true启动定位时SDK会返回最近3s内精度最高的一次定位结果如果设置其为truesetOnceLocation(boolean b)接口也会被设置为true反之不会默认为false
// mLocationOption.setOnceLocationLatest(true);
// //设置是否返回地址信息默认返回地址信息
// mLocationOption.setNeedAddress(true);
// //设置是否允许模拟位置,默认为true允许模拟位置
// mLocationOption.setMockEnable(true);
// //单位是毫秒默认30000毫秒建议超时时间不要低于8000毫秒
// mLocationOption.setHttpTimeOut(20000);
// //关闭缓存机制
// mLocationOption.setLocationCacheEnable(false);
// //设置定位参数
// mlocationClient.setLocationOption(mLocationOption);
// // 此方法为每隔固定时间会发起一次定位请求为了减少电量消耗或网络流量消耗
// // 注意设置合适的定位时间的间隔最小间隔支持为2000ms并且在合适时间调用stopLocation()方法来取消定位请求
// // 在定位结束后在合适的生命周期调用onDestroy()方法
// // 在单次定位情况下定位无论成功与否都无需调用stopLocation()方法移除请求定位sdk内部会移除
// mlocationClient.startLocation();//启动定位
// }
// }
//
// @Override
// public void deactivate() {
// mListener = null;
// if (mlocationClient != null) {
// mlocationClient.stopLocation();
// mlocationClient.onDestroy();
// }
// mlocationClient = null;
// }
// });
// // 设置为true表示显示定位层并可触发定位false表示隐藏定位层并不可触发定位默认是false
//// aMap.setMyLocationEnabled(true);
//// ld=new LocationGDUtil(con,hd);
//// ld.onCreate();
// }
private void initMap(){
// 通过InitializerOptions指定初始化配置参数
InitializerOptions options = new InitializerOptions();
// 设置是否使用Https网络请求,默认使用
// options.setIsHttpsEnable(true);
// 设置坐标系,默认GCJ02
// options.setCoorType(CoordType.GCJ02);
SDKInitializer.initialization(getApplicationContext(),options);
}
private DrivingRoutePlanOptions drivingRoutePlanOptions;
private List<LocationsInfo> locationsInfos;
private List<Polyline> polylines = new ArrayList<>();
private List<Marker> markers = new ArrayList<>();
private LKMap mLKMap;
private void doSearch() {
DrivingRoutePlan search = new DrivingRoutePlan();
drivingRoutePlanOptions = new DrivingRoutePlanOptions();
locationsInfos = new ArrayList<>();
// 设置开始坐标
LocationsInfo origin = new LocationsInfo();
origin.setLat(Double.parseDouble(sob.getData().getWayChildren().get(0).getLatitude()));
origin.setLon(Double.parseDouble(sob.getData().getWayChildren().get((0)).getLongitude()));
// 设置结束坐标
LocationsInfo dest = new LocationsInfo();
dest.setLat(Double.parseDouble(sob.getData().getWayChildren().get((sob.getData().getWayChildren().size() - 1)).getLatitude()));
dest.setLon(Double.parseDouble(sob.getData().getWayChildren().get((sob.getData().getWayChildren().size() - 1)).getLongitude()));
locationsInfos.add(origin);
locationsInfos.add(dest);
drivingRoutePlanOptions.setLocations(locationsInfos);
AutoInfo autoInfo = new AutoInfo();
DrivingCostingOptionsInfo drivingCostingOptionsInfo = new DrivingCostingOptionsInfo();
drivingCostingOptionsInfo.setAuto(autoInfo);
drivingRoutePlanOptions.setDrivingCostingOptions(drivingCostingOptionsInfo);
search.drivingRoutePlanRequest(drivingRoutePlanOptions, new OnDrivingRoutePlanListener() {
@Override
public void deactivate() {
mListener = null;
if (mlocationClient != null) {
mlocationClient.stopLocation();
mlocationClient.onDestroy();
}
mlocationClient = null;
public void onGetDrivingRoutePlanResult(DrivingRoutePlanResult routePlanResult) {
addRoutePlanLine(routePlanResult);
addRouteMarker();
}
});
// 设置为true表示显示定位层并可触发定位false表示隐藏定位层并不可触发定位默认是false
aMap.setMyLocationEnabled(true);
// ld=new LocationGDUtil(con,hd);
// ld.onCreate();
}
/**
* 添加线路规划路线
*
* @param routePlanResult
*/
private void addRoutePlanLine(DrivingRoutePlanResult routePlanResult) {
if (routePlanResult == null) {
Toast.makeText(this, "没有检索到结果", Toast.LENGTH_LONG).show();
return;
}
private RouteSearch mRouteSearch;//路线查询器
private List<LatLonPoint> lists = new ArrayList<>();
if (routePlanResult.getRouteInfos() == null || routePlanResult.getRouteInfos().isEmpty()) {
Toast.makeText(this, "没有检索到结果", Toast.LENGTH_LONG).show();
return;
}
List<LatLng> latLngs = new ArrayList<>();
List<LatLng> all = new ArrayList<>();
mLKMap.removeOverlay(polylines);
polylines.clear();
if (routePlanResult.getRouteInfos().size()>0){
latLngs.clear();
latLngs.addAll(routePlanResult.getRouteInfos().get(0).getGeometry());
PolylineOptions options = new PolylineOptions();
options.width(8f)
.joinStyle(Property.LINE_JOIN_ROUND)
.points(latLngs)
.color(getResources().getColor(R.color.theme_color));
all.addAll(latLngs);
polylines.add((Polyline) mLKMap.addOverlay(options));
}
public void search() {
// try {
// AMapLocationClient.updatePrivacyShow(con,true,true);
// AMapLocationClient.updatePrivacyAgree(con,true);
mRouteSearch = new RouteSearch(this);
// } catch (AMapException e) {
// e.printStackTrace();
// for (int i = 0;i < routePlanResult.getRouteInfos().size();i ++){
// latLngs.clear();
// latLngs.addAll(routePlanResult.getRouteInfos().get(i).getGeometry());
// PolylineOptions options = new PolylineOptions();
// if(i == routePlanResult.getRouteInfos().size() - 1){
// options.width(8f)
//// .pattern(BitmapDescriptorFactory.fromResource(R.drawable.icon_roud_type))
// .joinStyle(Property.LINE_JOIN_ROUND)
// .points(latLngs)
// .color(getResources().getColor(R.color.theme_color));
// }else{
// options.width(8f)
//// .joinStyle(Property.LINE_JOIN_ROUND)
// .points(latLngs)
// .color(getResources().getColor(R.color.theme_color));
// }
// all.addAll(latLngs);
// polylines.add((Polyline) mLKMap.addOverlay(options));
// }
//设置数据回调监听器
mRouteSearch.setRouteSearchListener(new OnRouteSearchListener());
//设置开始位置坐标点(注意经纬度不能写反,会报错1800(只能规划到中国区域里的地图路线))
LatLonPoint startPoint = new LatLonPoint(Double.parseDouble(sob.getData().getWayChildren().get(0).getLatitude()),
Double.parseDouble(sob.getData().getWayChildren().get((0)).getLongitude()));
//设置目的地坐标点
LatLonPoint endPoint = new LatLonPoint(Double.parseDouble(sob.getData().getWayChildren().get((sob.getData().getWayChildren().size() - 1)).getLatitude()),
Double.parseDouble(sob.getData().getWayChildren().get((sob.getData().getWayChildren().size() - 1)).getLongitude()));
//查询信息对象
for (int i = 0; i < sob.getData().getWayChildren().size(); i++) {
if (i != 0 && i != (sob.getData().getWayChildren().size() - 1)) {
LatLonPoint sp = new LatLonPoint(Double.parseDouble(sob.getData().getWayChildren().get(i).getLatitude()),
Double.parseDouble(sob.getData().getWayChildren().get((i)).getLongitude()));
lists.add(sp);
}
}
RouteSearch.FromAndTo fromAndTo = new RouteSearch.FromAndTo(startPoint, endPoint);
//设置搜索参数 1.fromAndTo 路径的起点终点 2.路径规划的策略(这里是驾车模式,具体看高德API) 3.
//经点可选 4.避让区域可选 5.避让道路 ,可选
RouteSearch.DriveRouteQuery query = new
RouteSearch.DriveRouteQuery(fromAndTo, RouteSearch.DRIVING_SINGLE_DEFAULT, lists, null, "");
//开始异步查询
mRouteSearch.calculateDriveRouteAsyn(query);
mLKMap.setMapStatus(MapStatusUpdateFactory.buildUpdateByLatLngBounds(new LatLngBounds(all),100,100,100,100));
}
/**
* 添加起始点标记
*/
private void addRouteMarker() {
mLKMap.removeOverlay(markers);
markers.clear();
MarkerOptions originOptions = new MarkerOptions()
.position(new LatLng(locationsInfos.get(0).getLat(),locationsInfos.get(0).getLon()))
.icon(BitmapDescriptorFactory.fromResource(R.mipmap.qi))
.iconGravity(Property.ICON_ANCHOR_BOTTOM)
.iconScale(0.5f);
markers.add((Marker) mLKMap.addOverlay(originOptions));
MarkerOptions destinationOptions = new MarkerOptions()
.position(new LatLng(locationsInfos.get(1).getLat(),locationsInfos.get(1).getLon()))
.icon(BitmapDescriptorFactory.fromResource(R.mipmap.zhong))
.iconGravity(Property.ICON_ANCHOR_BOTTOM)
.iconScale(0.5f);
markers.add((Marker) mLKMap.addOverlay(destinationOptions));
}
class OnRouteSearchListener implements RouteSearch.OnRouteSearchListener {
// private RouteSearch mRouteSearch;//路线查询器
// private List<LatLonPoint> lists = new ArrayList<>();
@Override
public void onBusRouteSearched(BusRouteResult busRouteResult, int i) {
}
// public void search() {
//// try {
//// AMapLocationClient.updatePrivacyShow(con,true,true);
//// AMapLocationClient.updatePrivacyAgree(con,true);
// mRouteSearch = new RouteSearch(this);
//// } catch (AMapException e) {
//// e.printStackTrace();
//// }
// //设置数据回调监听器
// mRouteSearch.setRouteSearchListener(new OnRouteSearchListener());
// //设置开始位置坐标点(注意经纬度不能写反,会报错1800(只能规划到中国区域里的地图路线))
// LatLonPoint startPoint = new LatLonPoint(Double.parseDouble(sob.getData().getWayChildren().get(0).getLatitude()),
// Double.parseDouble(sob.getData().getWayChildren().get((0)).getLongitude()));
// //设置目的地坐标点
// LatLonPoint endPoint = new LatLonPoint(Double.parseDouble(sob.getData().getWayChildren().get((sob.getData().getWayChildren().size() - 1)).getLatitude()),
// Double.parseDouble(sob.getData().getWayChildren().get((sob.getData().getWayChildren().size() - 1)).getLongitude()));
// //查询信息对象
// for (int i = 0; i < sob.getData().getWayChildren().size(); i++) {
// if (i != 0 && i != (sob.getData().getWayChildren().size() - 1)) {
// LatLonPoint sp = new LatLonPoint(Double.parseDouble(sob.getData().getWayChildren().get(i).getLatitude()),
// Double.parseDouble(sob.getData().getWayChildren().get((i)).getLongitude()));
// lists.add(sp);
// }
// }
// RouteSearch.FromAndTo fromAndTo = new RouteSearch.FromAndTo(startPoint, endPoint);
// //设置搜索参数 1.fromAndTo 路径的起点终点 2.路径规划的策略(这里是驾车模式,具体看高德API) 3.
// //经点可选 4.避让区域可选 5.避让道路 ,可选
// RouteSearch.DriveRouteQuery query = new
// RouteSearch.DriveRouteQuery(fromAndTo, RouteSearch.DRIVING_SINGLE_DEFAULT, lists, null, "");
// //开始异步查询
// mRouteSearch.calculateDriveRouteAsyn(query);
// }
@Override
public void onDriveRouteSearched(DriveRouteResult driveRouteResult, int rCode) {
if (rCode == 1000) {//获取规划路线成功,获取到的是了,路线坐标点的集合
List<DrivePath> paths = driveRouteResult.getPaths();
//创建存储坐标点的集合
List<LatLng> latLngs = new ArrayList<>();
//遍历获取规划的所有路线坐标点
for (DrivePath mDrivePath : paths) {
for (DriveStep mDriveStep : mDrivePath.getSteps()) {
for (LatLonPoint mLatLonPoint : mDriveStep.getPolyline()) {
latLngs.add(new
LatLng(mLatLonPoint.getLatitude(), mLatLonPoint.getLongitude()));
}
}
}
//先清除一下,避免重复显示
aMap.clear();
//绘制起始位置和目的地marker
aMap.addMarker(new MarkerOptions()
.icon(BitmapDescriptorFactory.fromResource(R.mipmap.qi))
.position(new LatLng(Double.parseDouble(sob.getData().getWayChildren().get(0).getLatitude()),
Double.parseDouble(sob.getData().getWayChildren().get(0).getLongitude()))));
for (int i = 0; i < sob.getData().getWayChildren().size(); i++) {
if (i != 0 && i != (sob.getData().getWayChildren().size() - 1)) {
StartOrderBean.DataDTO.WayChildrenDTO sdw = sob.getData().getWayChildren().get(i);
int icon = 0;
if (sdw.getType() == 1) {
icon = R.mipmap.z_loc;
} else {
icon = R.mipmap.x_loc;
}
aMap.addMarker(new MarkerOptions()
.icon(BitmapDescriptorFactory.fromResource(icon))
.position(new LatLng(Double.parseDouble(sdw.getLatitude()), Double.parseDouble(sdw.getLongitude()))));
}
}
aMap.addMarker(new MarkerOptions()
.icon(BitmapDescriptorFactory.fromResource(R.mipmap.zhong))
.position(new LatLng(Double.parseDouble(sob.getData().getWayChildren().get((sob.getData().getWayChildren().size() - 1)).getLatitude()),
Double.parseDouble(sob.getData().getWayChildren().get((sob.getData().getWayChildren().size() - 1)).getLongitude()))));
//绘制规划路径路线
aMap.addPolyline(new PolylineOptions()
//路线坐标点的集合
.addAll(latLngs)
//线的宽度
.width(8)
.color(getResources().getColor(R.color.theme_color)));
//设置画线的颜色
//显示完整包含所有marker地图路线
LatLngBounds.Builder builder = LatLngBounds.builder();
for (int i = 0; i < latLngs.size(); i++) {
builder.include(latLngs.get(i));
}
//显示全部marker,第二个参数是四周留空宽度
aMap.moveCamera(CameraUpdateFactory.newLatLngBounds(builder.build(), 200));
LatLng latLng = new LatLng(Double.parseDouble(sob.getData().getWayChildren().get(0).getLatitude()),
Double.parseDouble(sob.getData().getWayChildren().get((0)).getLongitude()));//构造一个位置
aMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 6));
}
}
@Override
public void onWalkRouteSearched(WalkRouteResult walkRouteResult, int i) {
}
@Override
public void onRideRouteSearched(RideRouteResult rideRouteResult, int i) {
}
}
// class OnRouteSearchListener implements RouteSearch.OnRouteSearchListener {
//
// @Override
// public void onBusRouteSearched(BusRouteResult busRouteResult, int i) {
//
// }
//
// @Override
// public void onDriveRouteSearched(DriveRouteResult driveRouteResult, int rCode) {
// if (rCode == 1000) {//获取规划路线成功,获取到的是了,路线坐标点的集合
// List<DrivePath> paths = driveRouteResult.getPaths();
// //创建存储坐标点的集合
// List<LatLng> latLngs = new ArrayList<>();
// //遍历获取规划的所有路线坐标点
// for (DrivePath mDrivePath : paths) {
// for (DriveStep mDriveStep : mDrivePath.getSteps()) {
// for (LatLonPoint mLatLonPoint : mDriveStep.getPolyline()) {
// latLngs.add(new
// LatLng(mLatLonPoint.getLatitude(), mLatLonPoint.getLongitude()));
// }
// }
// }
// //先清除一下,避免重复显示
// aMap.clear();
// //绘制起始位置和目的地marker
// aMap.addMarker(new MarkerOptions()
// .icon(BitmapDescriptorFactory.fromResource(R.mipmap.qi))
// .position(new LatLng(Double.parseDouble(sob.getData().getWayChildren().get(0).getLatitude()),
// Double.parseDouble(sob.getData().getWayChildren().get(0).getLongitude()))));
// for (int i = 0; i < sob.getData().getWayChildren().size(); i++) {
// if (i != 0 && i != (sob.getData().getWayChildren().size() - 1)) {
// StartOrderBean.DataDTO.WayChildrenDTO sdw = sob.getData().getWayChildren().get(i);
// int icon = 0;
// if (sdw.getType() == 1) {
// icon = R.mipmap.z_loc;
// } else {
// icon = R.mipmap.x_loc;
// }
// aMap.addMarker(new MarkerOptions()
// .icon(BitmapDescriptorFactory.fromResource(icon))
// .position(new LatLng(Double.parseDouble(sdw.getLatitude()), Double.parseDouble(sdw.getLongitude()))));
// }
// }
// aMap.addMarker(new MarkerOptions()
// .icon(BitmapDescriptorFactory.fromResource(R.mipmap.zhong))
// .position(new LatLng(Double.parseDouble(sob.getData().getWayChildren().get((sob.getData().getWayChildren().size() - 1)).getLatitude()),
// Double.parseDouble(sob.getData().getWayChildren().get((sob.getData().getWayChildren().size() - 1)).getLongitude()))));
// //绘制规划路径路线
// aMap.addPolyline(new PolylineOptions()
// //路线坐标点的集合
// .addAll(latLngs)
// //线的宽度
// .width(8)
// .color(getResources().getColor(R.color.theme_color)));
// //设置画线的颜色
//
// //显示完整包含所有marker地图路线
// LatLngBounds.Builder builder = LatLngBounds.builder();
// for (int i = 0; i < latLngs.size(); i++) {
// builder.include(latLngs.get(i));
// }
// //显示全部marker,第二个参数是四周留空宽度
// aMap.moveCamera(CameraUpdateFactory.newLatLngBounds(builder.build(), 200));
// LatLng latLng = new LatLng(Double.parseDouble(sob.getData().getWayChildren().get(0).getLatitude()),
// Double.parseDouble(sob.getData().getWayChildren().get((0)).getLongitude()));//构造一个位置
// aMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 6));
// }
// }
//
// @Override
// public void onWalkRouteSearched(WalkRouteResult walkRouteResult, int i) {
//
// }
//
// @Override
// public void onRideRouteSearched(RideRouteResult rideRouteResult, int i) {
//
// }
//
// }
public void up_traffic() {
// ShippingNoteInfo[] snis=new ShippingNoteInfo[1];
@ -697,4 +833,25 @@ public class StartYunDanActivity extends BaseActivity {
// });
}
@Override
protected void onStart() {
super.onStart();
mapView.onStart();
}
@Override
protected void onStop() {
super.onStop();
mapView.onStop();
}
@Override
public void onLowMemory() {
super.onLowMemory();
mapView.onDestroy();
}
}

View File

@ -24,7 +24,6 @@ import com.arpa.hndahesudintocctmsdriver.parts.ConfigParts;
import com.arpa.hndahesudintocctmsdriver.parts.StartOrderParts;
import com.arpa.hndahesudintocctmsdriver.parts.UserParts;
import com.arpa.hndahesudintocctmsdriver.ui.business.BusinessActivity;
import com.arpa.hndahesudintocctmsdriver.util.PicturlUtil;
import com.bumptech.glide.Glide;
import com.google.gson.Gson;
import com.lxj.xpopup.XPopup;

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -4,7 +4,12 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">
<com.amap.api.maps.MapView
<!-- <com.amap.api.maps.MapView-->
<!-- android:id="@+id/map"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="match_parent"/>-->
<com.lk.mapsdk.map.mapapi.map.MapView
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"/>

View File

@ -12,6 +12,7 @@ buildscript {
maven {
url 'https://maven.aliyun.com/repository/releases'
}
maven { url 'http://lbs-sdk.luokuang.com/repository/maven-releases/' }
}
dependencies {
classpath 'com.android.tools.build:gradle:4.2.2'
@ -31,9 +32,10 @@ allprojects {
maven {
url 'https://maven.aliyun.com/repository/releases'
}
maven { url 'http://lbs-sdk.luokuang.com/repository/maven-releases/' }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
}