feat: 单个数据增加路径规划功能
This commit is contained in:
parent
3da460c914
commit
c6a1737d63
@ -76,6 +76,7 @@ dependencies {
|
||||
testImplementation 'junit:junit:4.12'
|
||||
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
|
||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
|
||||
implementation "androidx.lifecycle:lifecycle-common:2.4.1"
|
||||
//友盟自动检测bug
|
||||
implementation 'com.umeng.umsdk:apm:1.2.0'
|
||||
//友盟基础库依赖(必须)
|
||||
|
@ -2,6 +2,7 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
package="com.navinfo.outdoor">
|
||||
|
||||
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
||||
<uses-permission android:name="android.permission.READ_CALENDAR" /> <!-- <uses-permission android:name="android.permission.WRITE_CALENDAR" /> -->
|
||||
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
|
||||
@ -9,9 +10,13 @@
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.CAMERA" /> <!-- <uses-sdk android:minSdkVersion="8"></uses-sdk> -->
|
||||
<!-- 在SDCard中创建与删除文件权限 -->
|
||||
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" tools:ignore="ProtectedPermissions" /> <!-- 安装APK权限 -->
|
||||
<uses-permission
|
||||
android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
|
||||
tools:ignore="ProtectedPermissions" /> <!-- 安装APK权限 -->
|
||||
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" /> <!-- 友盟检测bug -->
|
||||
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" tools:node="remove" /><!--移除自启动能力-->
|
||||
<uses-permission
|
||||
android:name="android.permission.RECEIVE_BOOT_COMPLETED"
|
||||
tools:node="remove" /> <!-- 移除自启动能力 -->
|
||||
<!-- <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> -->
|
||||
<!-- <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> -->
|
||||
<!-- <uses-permission android:name="android.permission.READ_PHONE_STATE" /> -->
|
||||
@ -34,11 +39,13 @@
|
||||
<uses-feature
|
||||
android:name="android.hardware.camera"
|
||||
android:required="true" />
|
||||
|
||||
<queries>
|
||||
<intent>
|
||||
<action android:name="android.intent.action.TTS_SERVICE" />
|
||||
</intent>
|
||||
</queries>
|
||||
|
||||
<application
|
||||
android:name=".api.UserApplication"
|
||||
android:allowBackup="true"
|
||||
@ -51,6 +58,13 @@
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/Theme.WhiteScreen"
|
||||
tools:targetApi="n">
|
||||
<activity
|
||||
android:name=".NaviActivity"
|
||||
android:exported="false">
|
||||
<meta-data
|
||||
android:name="android.app.lib_name"
|
||||
android:value="" />
|
||||
</activity>
|
||||
<activity android:name=".activity.RegardMapActivity" />
|
||||
<activity android:name=".activity.StatementActivity" />
|
||||
<activity
|
||||
@ -65,35 +79,37 @@
|
||||
android:name=".activity.PhotographActivity"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|navigation"
|
||||
android:launchMode="singleTop" />
|
||||
|
||||
<meta-data
|
||||
android:name="android.webkit.WebView.EnableSafeBrowsing"
|
||||
android:value="true" />
|
||||
<!-- <meta-data-->
|
||||
<!-- android:name="TencentMapSDK"-->
|
||||
<!-- android:value="EWWBZ-2PB62-6JXUL-CEX7G-N7UE6-XRB4V" />-->
|
||||
android:value="true" /> <!-- <meta-data -->
|
||||
<!-- android:name="TencentMapSDK" -->
|
||||
<!-- android:value="EWWBZ-2PB62-6JXUL-CEX7G-N7UE6-XRB4V" /> -->
|
||||
<meta-data
|
||||
android:name="TencentMapSDK"
|
||||
android:value="7UEBZ-TWAYK-5JFJM-A5SJI-FA4U6-3IBMX" />
|
||||
<!-- 今日头屏幕适配 -->
|
||||
android:value="7UEBZ-TWAYK-5JFJM-A5SJI-FA4U6-3IBMX" /> <!-- 今日头屏幕适配 -->
|
||||
<meta-data
|
||||
android:name="design_width_in_dp"
|
||||
android:value="360" />
|
||||
<meta-data
|
||||
android:name="design_height_in_dp"
|
||||
android:value="640" />
|
||||
|
||||
<activity
|
||||
android:name=".activity.MainActivity"
|
||||
android:screenOrientation="portrait">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<!-- <activity
|
||||
<!--
|
||||
<activity
|
||||
android:name=".activity.UMClickActivity"
|
||||
android:launchMode="singleTask"
|
||||
android:exported="true" />-->
|
||||
|
||||
android:exported="true" />
|
||||
-->
|
||||
<activity
|
||||
android:name=".activity.LoginActivity"
|
||||
android:configChanges="keyboardHidden|orientation"
|
||||
@ -107,16 +123,15 @@
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".activity.FragmentManagement"
|
||||
android:screenOrientation="portrait"
|
||||
android:configChanges="orientation|keyboardHidden|screenSize"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
<activity
|
||||
android:name=".activity.ImageShowActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".activity.VideoActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<!--自动拍照界面-->
|
||||
android:screenOrientation="portrait" /> <!-- 自动拍照界面 -->
|
||||
<activity
|
||||
android:name=".activity.AutoTakePictureActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
@ -127,6 +142,15 @@
|
||||
<activity
|
||||
android:name=".activity.GuidanceActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".activity.NaviCarActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".activity.NaviRideActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".activity.NaviWalkActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
|
||||
<provider
|
||||
android:name="androidx.core.content.FileProvider"
|
||||
@ -136,8 +160,7 @@
|
||||
<meta-data
|
||||
android:name="android.support.FILE_PROVIDER_PATHS"
|
||||
android:resource="@xml/file_paths" />
|
||||
</provider>
|
||||
<!--移除关联启动能力-->
|
||||
</provider> <!-- 移除关联启动能力 -->
|
||||
<service
|
||||
android:name="com.taobao.accs.ChannelService"
|
||||
android:exported="false"
|
||||
@ -146,6 +169,7 @@
|
||||
android:name="com.taobao.accs.data.MsgDistributeService"
|
||||
android:exported="false"
|
||||
tools:replace="android:exported" />
|
||||
|
||||
<receiver
|
||||
android:name="com.taobao.accs.EventReceiver"
|
||||
android:exported="false"
|
||||
@ -154,6 +178,7 @@
|
||||
android:name="com.taobao.accs.ServiceReceiver"
|
||||
android:exported="false"
|
||||
tools:replace="android:exported" />
|
||||
|
||||
<service
|
||||
android:name="org.android.agoo.accs.AgooService"
|
||||
android:exported="false"
|
||||
@ -166,15 +191,16 @@
|
||||
android:name="com.umeng.message.XiaomiIntentService"
|
||||
android:exported="false"
|
||||
tools:replace="android:exported" />
|
||||
|
||||
<receiver
|
||||
android:name="com.taobao.agoo.AgooCommondReceiver"
|
||||
android:exported="false"
|
||||
tools:replace="android:exported" />
|
||||
|
||||
<service
|
||||
android:name="com.umeng.message.UmengMessageIntentReceiverService"
|
||||
android:exported="false"
|
||||
tools:replace="android:exported" />
|
||||
</application>
|
||||
|
||||
|
||||
</manifest>
|
@ -0,0 +1,46 @@
|
||||
package com.navinfo.outdoor.activity;
|
||||
import androidx.lifecycle.LifecycleObserver;
|
||||
|
||||
import com.navinfo.outdoor.R;
|
||||
import com.navinfo.outdoor.api.Constant;
|
||||
import com.navinfo.outdoor.base.BaseActivity;
|
||||
import com.navinfo.outdoor.base.NaviLifeCycle;
|
||||
import com.navinfo.outdoor.util.NaviUtils;
|
||||
import com.tencent.map.navi.TencentNaviManager;
|
||||
import com.tencent.map.navi.car.CarNaviView;
|
||||
import com.tencent.map.navi.data.NaviPoi;
|
||||
import com.tencent.tencentmap.mapsdk.maps.model.LatLng;
|
||||
|
||||
public class NaviCarActivity extends BaseActivity {
|
||||
private CarNaviView carNaviView;
|
||||
private LifecycleObserver lifecycleObserver;
|
||||
@Override
|
||||
protected int getLayout() {
|
||||
return R.layout.activity_navi_car;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initView() {
|
||||
super.initView();
|
||||
carNaviView = findViewById(R.id.carnaviview);
|
||||
lifecycleObserver = new NaviLifeCycle(carNaviView);
|
||||
getLifecycle().addObserver(lifecycleObserver);
|
||||
TencentNaviManager naviManager = NaviUtils.getInstance().obitainnaviManager(this, Constant.currentNaviType, carNaviView);
|
||||
// 获取起终点
|
||||
LatLng startLatlng = (LatLng) getIntent().getExtras().get("start");
|
||||
LatLng endLatlng = (LatLng) getIntent().getExtras().get("end");
|
||||
try {
|
||||
NaviUtils.getInstance().searchRoute(Constant.currentNaviType, naviManager, new NaviPoi(startLatlng.latitude, startLatlng.longitude), new NaviPoi(endLatlng.latitude, endLatlng.longitude));
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
getLifecycle().removeObserver(lifecycleObserver);
|
||||
// 如果当前正在导航,自动停止
|
||||
NaviUtils.getInstance().stopNavi();
|
||||
}
|
||||
}
|
@ -0,0 +1,48 @@
|
||||
package com.navinfo.outdoor.activity;
|
||||
|
||||
import androidx.lifecycle.LifecycleObserver;
|
||||
|
||||
import com.navinfo.outdoor.R;
|
||||
import com.navinfo.outdoor.api.Constant;
|
||||
import com.navinfo.outdoor.base.BaseActivity;
|
||||
import com.navinfo.outdoor.base.NaviLifeCycle;
|
||||
import com.navinfo.outdoor.util.NaviUtils;
|
||||
import com.tencent.map.navi.TencentNaviManager;
|
||||
import com.tencent.map.navi.car.CarNaviView;
|
||||
import com.tencent.map.navi.data.NaviPoi;
|
||||
import com.tencent.map.navi.ride.RideNaviView;
|
||||
import com.tencent.tencentmap.mapsdk.maps.model.LatLng;
|
||||
|
||||
public class NaviRideActivity extends BaseActivity {
|
||||
private RideNaviView rideNaviView;
|
||||
private LifecycleObserver lifecycleObserver;
|
||||
@Override
|
||||
protected int getLayout() {
|
||||
return R.layout.activity_navi_car;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initView() {
|
||||
super.initView();
|
||||
rideNaviView = findViewById(R.id.ridenaviview);
|
||||
lifecycleObserver = new NaviLifeCycle(rideNaviView);
|
||||
getLifecycle().addObserver(lifecycleObserver);
|
||||
TencentNaviManager naviManager = NaviUtils.getInstance().obitainnaviManager(this, Constant.currentNaviType, rideNaviView);
|
||||
// 获取起终点
|
||||
LatLng startLatlng = (LatLng) getIntent().getSerializableExtra("start");
|
||||
LatLng endLatlng = (LatLng) getIntent().getSerializableExtra("end");
|
||||
try {
|
||||
NaviUtils.getInstance().searchRoute(Constant.currentNaviType, naviManager, new NaviPoi(startLatlng.latitude, startLatlng.longitude), new NaviPoi(endLatlng.latitude, endLatlng.longitude));
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
getLifecycle().removeObserver(lifecycleObserver);
|
||||
// 如果当前正在导航,自动停止
|
||||
NaviUtils.getInstance().stopNavi();
|
||||
}
|
||||
}
|
@ -0,0 +1,48 @@
|
||||
package com.navinfo.outdoor.activity;
|
||||
|
||||
import androidx.lifecycle.LifecycleObserver;
|
||||
|
||||
import com.navinfo.outdoor.R;
|
||||
import com.navinfo.outdoor.api.Constant;
|
||||
import com.navinfo.outdoor.base.BaseActivity;
|
||||
import com.navinfo.outdoor.base.NaviLifeCycle;
|
||||
import com.navinfo.outdoor.util.NaviUtils;
|
||||
import com.tencent.map.navi.TencentNaviManager;
|
||||
import com.tencent.map.navi.data.NaviPoi;
|
||||
import com.tencent.map.navi.ride.RideNaviView;
|
||||
import com.tencent.map.navi.walk.WalkNaviView;
|
||||
import com.tencent.tencentmap.mapsdk.maps.model.LatLng;
|
||||
|
||||
public class NaviWalkActivity extends BaseActivity {
|
||||
private WalkNaviView walkNaviView;
|
||||
private LifecycleObserver lifecycleObserver;
|
||||
@Override
|
||||
protected int getLayout() {
|
||||
return R.layout.activity_navi_car;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initView() {
|
||||
super.initView();
|
||||
walkNaviView = findViewById(R.id.walknaviview);
|
||||
lifecycleObserver = new NaviLifeCycle(walkNaviView);
|
||||
getLifecycle().addObserver(lifecycleObserver);
|
||||
TencentNaviManager naviManager = NaviUtils.getInstance().obitainnaviManager(this, Constant.currentNaviType, walkNaviView);
|
||||
// 获取起终点
|
||||
LatLng startLatlng = (LatLng) getIntent().getSerializableExtra("start");
|
||||
LatLng endLatlng = (LatLng) getIntent().getSerializableExtra("end");
|
||||
try {
|
||||
NaviUtils.getInstance().searchRoute(Constant.currentNaviType, naviManager, new NaviPoi(startLatlng.latitude, startLatlng.longitude), new NaviPoi(endLatlng.latitude, endLatlng.longitude));
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
getLifecycle().removeObserver(lifecycleObserver);
|
||||
// 如果当前正在导航,自动停止
|
||||
NaviUtils.getInstance().stopNavi();
|
||||
}
|
||||
}
|
@ -0,0 +1,46 @@
|
||||
package com.navinfo.outdoor.base;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.lifecycle.DefaultLifecycleObserver;
|
||||
import androidx.lifecycle.LifecycleOwner;
|
||||
|
||||
import com.tencent.map.navi.car.CarNaviView;
|
||||
import com.tencent.map.ui.c;
|
||||
|
||||
public class NaviLifeCycle implements DefaultLifecycleObserver {
|
||||
private com.tencent.map.ui.c naviView;
|
||||
|
||||
public NaviLifeCycle(c naviView) {
|
||||
this.naviView = naviView;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStart(@NonNull LifecycleOwner owner) {
|
||||
DefaultLifecycleObserver.super.onStart(owner);
|
||||
naviView.onStart();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume(@NonNull LifecycleOwner owner) {
|
||||
DefaultLifecycleObserver.super.onResume(owner);
|
||||
naviView.onResume();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause(@NonNull LifecycleOwner owner) {
|
||||
DefaultLifecycleObserver.super.onPause(owner);
|
||||
naviView.onPause();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStop(@NonNull LifecycleOwner owner) {
|
||||
DefaultLifecycleObserver.super.onStop(owner);
|
||||
naviView.onStop();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy(@NonNull LifecycleOwner owner) {
|
||||
DefaultLifecycleObserver.super.onDestroy(owner);
|
||||
naviView.onDestroy();
|
||||
}
|
||||
}
|
@ -2,6 +2,7 @@ package com.navinfo.outdoor.fragment;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Bundle;
|
||||
import android.os.Message;
|
||||
@ -21,6 +22,9 @@ import com.kongzue.dialog.util.DialogSettings;
|
||||
import com.kongzue.dialog.v3.MessageDialog;
|
||||
import com.lzy.okgo.model.HttpParams;
|
||||
import com.navinfo.outdoor.R;
|
||||
import com.navinfo.outdoor.activity.NaviCarActivity;
|
||||
import com.navinfo.outdoor.activity.NaviRideActivity;
|
||||
import com.navinfo.outdoor.activity.NaviWalkActivity;
|
||||
import com.navinfo.outdoor.api.Constant;
|
||||
import com.navinfo.outdoor.base.BaseFragment;
|
||||
import com.navinfo.outdoor.bean.PolygonTaskBean;
|
||||
@ -224,14 +228,20 @@ public class GatherGetFragment extends BaseFragment implements View.OnClickListe
|
||||
ToastUtils.Message(getActivity(), "无法获取当前数据的位置,请重新打开此数据尝试!");
|
||||
return;
|
||||
}
|
||||
// 使用当前数据起点作为导航的终点,规划路径
|
||||
NaviPoi startPoi = new NaviPoi(Constant.currentLocation.getLatitude(), Constant.currentLocation.getLongitude());
|
||||
NaviPoi endPoi = new NaviPoi(Double.parseDouble(poiEntity.getY()), Double.parseDouble(poiEntity.getX()));
|
||||
try {
|
||||
NaviUtils.getInstance().searchRoute(Constant.currentNaviType, NaviUtils.getInstance().obitainnaviManager(getActivity(), Constant.currentNaviType), startPoi, endPoi);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
// 跳转到指定的Activity
|
||||
Class toClass = null;
|
||||
if (Constant.currentNaviType == Constant.NAV_TYPE.CAR) {
|
||||
toClass = NaviCarActivity.class;
|
||||
} else if (Constant.currentNaviType == Constant.NAV_TYPE.RIDE) {
|
||||
toClass = NaviRideActivity.class;
|
||||
} else {
|
||||
toClass = NaviWalkActivity.class;
|
||||
}
|
||||
Intent naviIntent = new Intent(getActivity(), toClass);
|
||||
// 使用当前数据起点作为导航的终点,规划路径
|
||||
naviIntent.putExtra("start", new LatLng(Constant.currentLocation.getLatitude(), Constant.currentLocation.getLongitude()));
|
||||
naviIntent.putExtra("end", new LatLng(Double.parseDouble(poiEntity.getY()), Double.parseDouble(poiEntity.getX())));
|
||||
getActivity().startActivity(naviIntent);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -283,8 +283,6 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
|
||||
initUM();
|
||||
//检查是否有没有填完的页面
|
||||
initSharePre();
|
||||
// 初始化导航工具类
|
||||
NaviUtils.getInstance().init(getActivity(), tencentMap, findViewById(R.id.fram_navi_view));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -1152,8 +1150,6 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
|
||||
}
|
||||
removableScreenMarker.clear();
|
||||
}
|
||||
// 如果当前正在导航,自动停止
|
||||
NaviUtils.getInstance().stopNavi();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -3,8 +3,8 @@ package com.navinfo.outdoor.http;
|
||||
public class HttpInterface {
|
||||
// public static final String IP = "http://172.23.138.133:9999/m4";//测试接口-IP
|
||||
public static final String IPm = "http://dtxbmaps.navinfo.com/dtxb/dev/m4";//开发接口-外网
|
||||
public static final String IP1 = "http://dtxbmaps.navinfo.com/dtxb/test/m4";//测试接口-外网
|
||||
public static final String IP = "http://dtxbmaps.navinfo.com/dtxb/m4";//正式接口
|
||||
public static final String IP = "http://dtxbmaps.navinfo.com/dtxb/test/m4";//测试接口-外网
|
||||
public static final String IP1 = "http://dtxbmaps.navinfo.com/dtxb/m4";//正式接口
|
||||
public static final String USER_PATH = "/user/";//我的
|
||||
public static final String MSG_LIST_PATH = "/msgList/";//发现
|
||||
public static final String USER_LOGIN_PATH = "/userlogin/";//登录
|
||||
|
@ -1,5 +1,6 @@
|
||||
package com.navinfo.outdoor.util;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
@ -15,13 +16,20 @@ import com.navinfo.outdoor.R;
|
||||
import com.navinfo.outdoor.api.Constant;
|
||||
import com.tencent.map.navi.CalcRouteCallback;
|
||||
import com.tencent.map.navi.INaviView;
|
||||
import com.tencent.map.navi.TencentNaviCallback;
|
||||
import com.tencent.map.navi.TencentNaviManager;
|
||||
import com.tencent.map.navi.TencentRideNaviListener;
|
||||
import com.tencent.map.navi.TencentRouteSearchCallback;
|
||||
import com.tencent.map.navi.TencentWalkNaviListener;
|
||||
import com.tencent.map.navi.car.CarNaviView;
|
||||
import com.tencent.map.navi.car.CarRouteSearchOptions;
|
||||
import com.tencent.map.navi.car.TencentCarNaviManager;
|
||||
import com.tencent.map.navi.data.AttachedLocation;
|
||||
import com.tencent.map.navi.data.CalcRouteResult;
|
||||
import com.tencent.map.navi.data.NaviPoi;
|
||||
import com.tencent.map.navi.data.NaviTts;
|
||||
import com.tencent.map.navi.data.NavigationData;
|
||||
import com.tencent.map.navi.data.ParallelRoadStatus;
|
||||
import com.tencent.map.navi.data.RouteColors;
|
||||
import com.tencent.map.navi.data.RouteData;
|
||||
import com.tencent.map.navi.data.TrafficItem;
|
||||
@ -47,10 +55,6 @@ public class NaviUtils {
|
||||
private static NaviUtils instance;
|
||||
private Context mContext;
|
||||
private TencentMap tencentMap;
|
||||
private View framNaviView; // 各类型导航界面的父界面,可以通过该view获取驾车导航、骑行导航和步行导航的view
|
||||
private CarNaviView carNaviView; // 驾车导航界面
|
||||
private RideNaviView rideNaviView; // 骑行导航界面
|
||||
private WalkNaviView walkNaviView; // 步行导航界面
|
||||
private TencentNaviManager naviManager = null;
|
||||
public static NaviUtils getInstance() {
|
||||
if (instance == null) {
|
||||
@ -59,16 +63,6 @@ public class NaviUtils {
|
||||
return instance;
|
||||
}
|
||||
|
||||
// 在调用路径规划和导航前必须提前调用该方法,后续流程都需要用到参数中的内容
|
||||
public void init(Context mContext, TencentMap tencentMap, View framNaviView) {
|
||||
this.mContext = mContext;
|
||||
this.tencentMap = tencentMap;
|
||||
this.framNaviView = framNaviView;
|
||||
this.carNaviView = framNaviView.findViewById(R.id.carnaviview);
|
||||
this.rideNaviView = framNaviView.findViewById(R.id.ridenaviview);
|
||||
this.walkNaviView = framNaviView.findViewById(R.id.walknaviview);
|
||||
}
|
||||
|
||||
public void selectNaviType(AppCompatActivity mContext, SelectNaviTypeListener selectNaviTypeListener) {
|
||||
CustomDialog selectNaviTypeDialog = CustomDialog.build(mContext, R.layout.dialog_select_navi_type, new CustomDialog.OnBindView() {
|
||||
@Override
|
||||
@ -122,12 +116,9 @@ public class NaviUtils {
|
||||
selectNaviTypeDialog.show();
|
||||
}
|
||||
|
||||
public TencentNaviManager obitainnaviManager(Context mContext, Constant.NAV_TYPE nav_type) {
|
||||
framNaviView.setVisibility(View.VISIBLE);
|
||||
carNaviView.setVisibility(View.GONE);
|
||||
rideNaviView.setVisibility(View.GONE);
|
||||
walkNaviView.setVisibility(View.GONE);
|
||||
public TencentNaviManager obitainnaviManager(Activity mContext, Constant.NAV_TYPE nav_type, com.tencent.map.ui.c naviView) {
|
||||
if (nav_type == Constant.NAV_TYPE.CAR) { // 驾车
|
||||
CarNaviView carNaviView = (CarNaviView) naviView;
|
||||
naviManager = new TencentCarNaviManager(mContext);
|
||||
carNaviView.setVisibility(View.VISIBLE);
|
||||
naviManager.addNaviView(carNaviView);
|
||||
@ -136,13 +127,100 @@ public class NaviUtils {
|
||||
@Override
|
||||
public void onBackClick() {
|
||||
((TencentCarNaviManager)naviManager).stopNavi();
|
||||
|
||||
framNaviView.setVisibility(View.GONE);
|
||||
carNaviView.setVisibility(View.GONE);
|
||||
SystemTTS.getInstance(mContext).playText("结束导航");
|
||||
mContext.finish();
|
||||
}
|
||||
});
|
||||
((TencentCarNaviManager)naviManager).addTencentNaviCallback(new TencentNaviCallback() {
|
||||
@Override
|
||||
public void onStartNavi() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStopNavi() {
|
||||
NaviTts naviTts = new NaviTts();
|
||||
naviTts.setText("结束导航");
|
||||
mContext.finish();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onOffRoute() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRecalculateRouteSuccess(int i, ArrayList<RouteData> arrayList) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRecalculateRouteSuccessInFence(int i) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRecalculateRouteFailure(int i, int i1, String s) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRecalculateSuccess(CalcRouteResult calcRouteResult) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRecalculateFailure(CalcRouteResult calcRouteResult) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRecalculateRouteStarted(int i) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRecalculateRouteCanceled() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onArrivedDestination() {
|
||||
mContext.finish();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPassedWayPoint(int i) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUpdateRoadType(int i) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUpdateParallelRoadStatus(ParallelRoadStatus parallelRoadStatus) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUpdateAttachedLocation(AttachedLocation attachedLocation) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFollowRouteClick(String s, ArrayList<LatLng> arrayList) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public int onVoiceBroadcast(NaviTts naviTts) {
|
||||
return 0;
|
||||
}
|
||||
});
|
||||
} else if (nav_type == Constant.NAV_TYPE.RIDE) { // 骑行
|
||||
RideNaviView rideNaviView = (RideNaviView) naviView;
|
||||
naviManager = new TencentRideNaviManager(mContext);
|
||||
rideNaviView.setVisibility(View.VISIBLE);
|
||||
((TencentRideNaviManager)naviManager).addTencentNaviListener(rideNaviView);
|
||||
@ -151,13 +229,90 @@ public class NaviUtils {
|
||||
@Override
|
||||
public void onBackClick() {
|
||||
((TencentRideNaviManager)naviManager).stopNavi();
|
||||
|
||||
framNaviView.setVisibility(View.GONE);
|
||||
rideNaviView.setVisibility(View.GONE);
|
||||
SystemTTS.getInstance(mContext).playText("结束导航");
|
||||
mContext.finish();
|
||||
}
|
||||
});
|
||||
((TencentRideNaviManager) naviManager).addTencentNaviListener(new TencentRideNaviListener() {
|
||||
@Override
|
||||
public void onRecalculateRouteSuccess(ArrayList<RouteData> arrayList) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDirectionUpdateBySensor(float v) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStartNavi() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStopNavi() {
|
||||
NaviTts naviTts = new NaviTts();
|
||||
naviTts.setText("结束导航");
|
||||
mContext.finish();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onOffRoute() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public int onVoiceBroadcast(NaviTts naviTts) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onArrivedDestination() {
|
||||
mContext.finish();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUpdateAttachedLocation(AttachedLocation attachedLocation) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGpsRssiChanged(int i) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUpdateNavigationData(NavigationData navigationData) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGpsWeakNotify() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGpsStrongNotify() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGpsStatusChanged(boolean b) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUpdateCurrentRoute(RouteData routeData) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChangeRes(boolean b) {
|
||||
|
||||
}
|
||||
});
|
||||
} else {
|
||||
WalkNaviView walkNaviView = (WalkNaviView) naviView;
|
||||
naviManager = new TencentRideNaviManager(mContext);
|
||||
walkNaviView.setVisibility(View.VISIBLE);
|
||||
((TencentWalkNaviManager)naviManager).addTencentNaviListener(walkNaviView);
|
||||
@ -166,15 +321,100 @@ public class NaviUtils {
|
||||
@Override
|
||||
public void onBackClick() {
|
||||
((TencentWalkNaviManager)naviManager).stopNavi();
|
||||
|
||||
framNaviView.setVisibility(View.GONE);
|
||||
walkNaviView.setVisibility(View.GONE);
|
||||
SystemTTS.getInstance(mContext).playText("结束导航");
|
||||
mContext.finish();
|
||||
}
|
||||
});
|
||||
((TencentWalkNaviManager) naviManager).addTencentNaviListener(new TencentWalkNaviListener() {
|
||||
@Override
|
||||
public void onRecalculateRouteSuccess(ArrayList<RouteData> arrayList) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDirectionUpdateBySensor(float v) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStartNavi() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStopNavi() {
|
||||
NaviTts naviTts = new NaviTts();
|
||||
naviTts.setText("结束导航");
|
||||
mContext.finish();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onOffRoute() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public int onVoiceBroadcast(NaviTts naviTts) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onArrivedDestination() {
|
||||
mContext.finish();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUpdateAttachedLocation(AttachedLocation attachedLocation) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGpsRssiChanged(int i) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUpdateNavigationData(NavigationData navigationData) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGpsWeakNotify() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGpsStrongNotify() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGpsStatusChanged(boolean b) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUpdateCurrentRoute(RouteData routeData) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChangeRes(boolean b) {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
if (tencentMap == null) {
|
||||
tencentMap = naviView.getMap();
|
||||
}
|
||||
if (this.mContext == null) {
|
||||
this.mContext = mContext;
|
||||
}
|
||||
|
||||
// 开启语音播报
|
||||
naviManager.setInternalTtsEnabled(true);
|
||||
naviManager.setIsDefaultRes(true);
|
||||
naviManager.setUseExtraLocationData(true);
|
||||
return naviManager;
|
||||
}
|
||||
|
||||
@ -215,14 +455,14 @@ public class NaviUtils {
|
||||
try {
|
||||
// 自动开始导航
|
||||
if (Constant.currentNaviType == Constant.NAV_TYPE.CAR) {
|
||||
((TencentCarNaviManager)naviManager).startNavi(0);
|
||||
// ((TencentCarNaviManager)naviManager).startSimulateNavi(0);
|
||||
// ((TencentCarNaviManager)naviManager).startNavi(0);
|
||||
((TencentCarNaviManager)naviManager).startSimulateNavi(0);
|
||||
} else if (Constant.currentNaviType == Constant.NAV_TYPE.RIDE) {
|
||||
((TencentRideNaviManager)naviManager).startNavi(0);
|
||||
// ((TencentRideNaviManager)naviManager).startSimulateNavi(0);
|
||||
// ((TencentRideNaviManager)naviManager).startNavi(0);
|
||||
((TencentRideNaviManager)naviManager).startSimulateNavi(0);
|
||||
} else {
|
||||
((TencentWalkNaviManager)naviManager).startNavi(0);
|
||||
// ((TencentWalkNaviManager)naviManager).startSimulateNavi(0);
|
||||
// ((TencentWalkNaviManager)naviManager).startNavi(0);
|
||||
((TencentWalkNaviManager)naviManager).startSimulateNavi(0);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
|
||||
|
12
app/src/main/res/layout/activity_navi_car.xml
Normal file
12
app/src/main/res/layout/activity_navi_car.xml
Normal file
@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".activity.NaviCarActivity">
|
||||
<com.tencent.map.navi.car.CarNaviView
|
||||
android:id="@+id/carnaviview"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
12
app/src/main/res/layout/activity_navi_ride.xml
Normal file
12
app/src/main/res/layout/activity_navi_ride.xml
Normal file
@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".activity.NaviCarActivity">
|
||||
<com.tencent.map.navi.ride.RideNaviView
|
||||
android:id="@+id/ridenaviview"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
12
app/src/main/res/layout/activity_navi_walk.xml
Normal file
12
app/src/main/res/layout/activity_navi_walk.xml
Normal file
@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".activity.NaviCarActivity">
|
||||
<com.tencent.map.navi.walk.WalkNaviView
|
||||
android:id="@+id/walknaviview"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
@ -164,24 +164,6 @@
|
||||
app:layout_constraintTop_toBottomOf="@id/iv_refrish" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/fram_navi_view"
|
||||
android:visibility="gone"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
<com.tencent.map.navi.car.CarNaviView
|
||||
android:id="@+id/carnaviview"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
<com.tencent.map.navi.ride.RideNaviView
|
||||
android:id="@+id/ridenaviview"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
<com.tencent.map.navi.walk.WalkNaviView
|
||||
android:id="@+id/walknaviview"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
</FrameLayout>
|
||||
</FrameLayout>
|
||||
|
||||
<LinearLayout
|
||||
|
Loading…
x
Reference in New Issue
Block a user