فهرست منبع

1.增加高德地图两点路线。

石慧云 4 سال پیش
والد
کامیت
43369cea2d
28فایلهای تغییر یافته به همراه1493 افزوده شده و 412 حذف شده
  1. 2 2
      app/src/main/java/com/quansu/heifengwuliu/activity/GrabDetailsActivity.kt
  2. 3 1
      app/src/main/java/com/quansu/heifengwuliu/activity/SourceDetailsActivity.kt
  3. 3 1
      app/src/main/java/com/quansu/heifengwuliu/activity/WaybillDetailsActivity.kt
  4. 17 1
      app/src/main/java/com/quansu/heifengwuliu/adapter/OrderInfoadapter.kt
  5. 1 1
      app/src/main/java/com/quansu/heifengwuliu/utils/net/ApiService.kt
  6. 18 7
      app/src/main/java/com/quansu/heifengwuliu/vmodel/GrabDetailsVModel.kt
  7. 403 397
      app/src/main/res/layout/activity_grabdetails.xml
  8. 1 0
      app/src/main/res/layout/item_peopleinfo.xml
  9. 19 1
      base/src/main/java/com/ysnows/base/model/PositionBean.java
  10. 5 0
      base/src/main/java/com/ysnows/base/route/IGaode.kt
  11. 1 0
      gaode/src/main/AndroidManifest.xml
  12. 347 0
      gaode/src/main/java/com/quansu/gaode/activity/RouteActivity.java
  13. 15 1
      gaode/src/main/java/com/quansu/gaode/componnent/CpGaode.java
  14. 57 0
      gaode/src/main/java/com/quansu/gaode/utils/AMapServicesUtil.java
  15. 151 0
      gaode/src/main/java/com/quansu/gaode/utils/AMapUtil.java
  16. 217 0
      gaode/src/main/java/com/quansu/gaode/utils/RouteOverlay.java
  17. 114 0
      gaode/src/main/java/com/quansu/gaode/utils/WalkRouteOverlay.java
  18. BIN
      gaode/src/main/res/drawable-xxhdpi/amap_bus.png
  19. BIN
      gaode/src/main/res/drawable-xxhdpi/amap_car.png
  20. BIN
      gaode/src/main/res/drawable-xxhdpi/amap_end.png
  21. BIN
      gaode/src/main/res/drawable-xxhdpi/amap_enter.webp
  22. BIN
      gaode/src/main/res/drawable-xxhdpi/amap_man.png
  23. BIN
      gaode/src/main/res/drawable-xxhdpi/amap_out.webp
  24. BIN
      gaode/src/main/res/drawable-xxhdpi/amap_start.png
  25. BIN
      gaode/src/main/res/drawable-xxhdpi/end.png
  26. BIN
      gaode/src/main/res/drawable-xxhdpi/start.png
  27. 117 0
      gaode/src/main/res/layout/map_layout.xml
  28. 2 0
      gaode/src/main/res/values/strings.xml

+ 2 - 2
app/src/main/java/com/quansu/heifengwuliu/activity/GrabDetailsActivity.kt

@@ -16,8 +16,8 @@ class GrabDetailsActivity : MBActivity<GrabDetailsVModel, ActivityGrabdetailsBin
 
     override fun init(savedInstanceState: Bundle?) {
         super.init(savedInstanceState)
-        titleBar()?.tvRight?.text = getString(R.string.share)
-        titleBar()?.tvRight?.setTextColor(parseColor("#FFBC00"))
+//        titleBar()?.tvRight?.text = getString(R.string.share)
+//        titleBar()?.tvRight?.setTextColor(parseColor("#FFBC00"))
 
         var info_id = intent?.extras?.getString("info_id", "")
 

+ 3 - 1
app/src/main/java/com/quansu/heifengwuliu/activity/SourceDetailsActivity.kt

@@ -44,7 +44,9 @@ class SourceDetailsActivity: MBActivity<SourceDetailsVModel, ActivitySourcedetai
 
 
    private fun initViewPager(bean:DataInfoBean){
-       var  adapterOut= OrderInfoadapter()
+       var positionName=bean.order.receive[bean.order.receive.size-1].province.name+bean.order.receive[bean.order.receive.size-1].city.name+bean.order.receive[bean.order.receive.size-1].city.name
+
+       var  adapterOut= OrderInfoadapter(positionName,bean.order.receive[bean.order.receive.size-1].lat,bean.order.receive[bean.order.receive.size-1].lng)
        binding.recyclerViewOut.adapter=adapterOut
        var  outList = bean.order.send
        adapterOut!!.addData(outList)

+ 3 - 1
app/src/main/java/com/quansu/heifengwuliu/activity/WaybillDetailsActivity.kt

@@ -49,7 +49,9 @@ class WaybillDetailsActivity : MBActivity<WaybillDetailsVModel, ActivityWaybilld
     }
 
     private fun initViewPager(bean: WaybillDetails) {
-        var adapterOut = OrderInfoadapter()
+
+        var positionName=bean.info.receive[bean.info.receive.size-1].province.name+bean.info.receive[bean.info.receive.size-1].city.name+bean.info.receive[bean.info.receive.size-1].city.name
+        var adapterOut = OrderInfoadapter(positionName,bean.info.receive[bean.info.receive.size-1].lat,bean.info.receive[bean.info.receive.size-1].lng)
         binding.recyclerViewOut.adapter = adapterOut
         var outList = bean.info.send
         adapterOut!!.addData(outList)

+ 17 - 1
app/src/main/java/com/quansu/heifengwuliu/adapter/OrderInfoadapter.kt

@@ -1,14 +1,30 @@
 package com.quansu.heifengwuliu.adapter
 
 import com.chad.library.adapter.base.viewholder.BaseDataBindingHolder
+import com.qmuiteam.qmui.kotlin.onClick
 import com.quansu.heifengwuliu.R
 import com.quansu.heifengwuliu.databinding.ItemPeopleinfoBinding
 import com.quansu.heifengwuliu.model.DataInfoBean
 import com.ysnows.base.base.BAdapter
+import com.ysnows.base.ccretrofit.CCRetrofit
+import com.ysnows.base.model.PositionBean
+import com.ysnows.base.route.IGaode
 
-class OrderInfoadapter : BAdapter<DataInfoBean.OrderBean.SendBean, BaseDataBindingHolder<ItemPeopleinfoBinding>>(R.layout.item_peopleinfo) {
+class OrderInfoadapter(val positionName:String,val latEnd:String,val lngEnd:String) : BAdapter<DataInfoBean.OrderBean.SendBean, BaseDataBindingHolder<ItemPeopleinfoBinding>>(R.layout.item_peopleinfo) {
     override fun convert(holder: BaseDataBindingHolder<ItemPeopleinfoBinding>, item: DataInfoBean.OrderBean.SendBean) {
         holder.dataBinding?.item = item
 
+        holder.dataBinding?.imgMap!!.onClick {
+
+            var start=item.province.name+item.city.name+item.area.name
+            var item= PositionBean(start,item.lat,item.lng,positionName,latEnd,lngEnd)
+
+            CCRetrofit.instance()
+                    .with(context)
+                    .create(IGaode::class.java)
+                    .goRouteLocation(item)
+                    .subscribe()
+        }
+
     }
 }

+ 1 - 1
app/src/main/java/com/quansu/heifengwuliu/utils/net/ApiService.kt

@@ -388,7 +388,7 @@ interface ApiService {
      * @return
      */
     @GET("api/order/infoGet")
-    fun infoGetDriver(@Query("info_id") info_id: String?): Observable<Resp<DataInfoBean>>
+    suspend fun infoGetDriver(@Query("info_id") info_id: String?): Resp<DataInfoBean>
 
 
     /**

+ 18 - 7
app/src/main/java/com/quansu/heifengwuliu/vmodel/GrabDetailsVModel.kt

@@ -8,6 +8,7 @@ import android.content.Intent
 import android.net.Uri
 import android.text.TextUtils
 import androidx.lifecycle.MutableLiveData
+import androidx.lifecycle.viewModelScope
 import com.qmuiteam.qmui.widget.dialog.QMUIDialog
 import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction
 import com.quansu.heifengwuliu.model.DataInfoBean
@@ -16,6 +17,7 @@ import com.yanzhenjie.permission.Action
 import com.yanzhenjie.permission.AndPermission
 import com.ysnows.base.base.BRepository
 import com.ysnows.base.base.BViewModel
+import kotlinx.coroutines.launch
 
 /**
  *Created by shihuiyun
@@ -25,16 +27,23 @@ open class GrabDetailsVModel(application: Application) : BViewModel<BRepository>
 
     val info: MutableLiveData<DataInfoBean> = MutableLiveData<DataInfoBean>()
 
+    val tips: MutableLiveData<String> = MutableLiveData<String>()
+
+
     fun getInfo(info_id: String) {
-        repository().rxLreq(NetEngine.service.infoGetDriver(info_id))
-                .doOnNext() {
-                    if (it.ok()) {
 
-                        info.value = it.data() as DataInfoBean
+        viewModelScope.launch {
+
+           val it=repository().preq { NetEngine.service.infoGetDriver(info_id) }
+            if(it.ok()){
+                info.value = it.data()
+                tips.value="*货主共计需要"+info.value!!.order.nums+"辆车,当前已有"+info.value!!.order.car_nums+"辆车接单"
+
+            }
+
+
+        }
 
-                    }
-                }
-                .subscribe()
     }
 
 
@@ -95,5 +104,7 @@ open class GrabDetailsVModel(application: Application) : BViewModel<BRepository>
     }
 
 
+
+
 }
 

+ 403 - 397
app/src/main/res/layout/activity_grabdetails.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
-    xmlns:android="http://schemas.android.com/apk/res/android">
+<layout 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">
 
     <data>
 
@@ -17,541 +17,547 @@
         android:background="#F5F5F5"
         android:orientation="vertical">
 
-        <ScrollView
+        <FrameLayout
             android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:layout_marginStart="17dp"
-            android:layout_marginEnd="16dp"
-            android:scrollbars="none">
+            android:layout_height="match_parent">
 
-
-            <LinearLayout
+            <ScrollView
                 android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:orientation="vertical">
+                android:layout_height="match_parent"
+                android:layout_marginStart="17dp"
+                android:layout_marginEnd="16dp"
+                android:scrollbars="none">
 
 
-                <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundLinearLayout
+                <LinearLayout
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:orientation="vertical"
-                    android:paddingStart="@dimen/dp_11"
-                    android:paddingEnd="@dimen/dp_16"
-                    app:qmui_backgroundColor="@color/white"
-                    app:qmui_radius="@dimen/dp_4">
+                    android:orientation="vertical">
 
-                    <LinearLayout
+
+                    <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundLinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
-                        android:layout_marginTop="16dp"
-                        android:gravity="center_vertical"
-                        android:orientation="horizontal">
+                        android:orientation="vertical"
+                        android:paddingStart="@dimen/dp_11"
+                        android:layout_marginTop="12dp"
+                        android:paddingEnd="@dimen/dp_16"
+                        app:qmui_backgroundColor="@color/white"
+                        app:qmui_radius="@dimen/dp_4">
 
                         <LinearLayout
-                            android:layout_width="0dp"
+                            android:layout_width="match_parent"
                             android:layout_height="wrap_content"
-                            android:layout_weight="1"
-                            android:gravity="center_vertical">
-
-                            <ImageView
-                                android:id="@+id/iv_yellow"
-                                android:layout_width="9dp"
-                                android:layout_height="10dp"
-                                android:src="@drawable/ic_circle_yellow" />
+                            android:layout_marginTop="16dp"
+                            android:gravity="center_vertical"
+                            android:orientation="horizontal">
 
-                            <TextView
-                                android:id="@+id/tv_from"
-                                android:layout_width="wrap_content"
+                            <LinearLayout
+                                android:layout_width="0dp"
                                 android:layout_height="wrap_content"
-                                android:layout_marginStart="22dp"
-                                android:textColor="@color/text_title"
-                                android:textSize="@dimen/sp_15"
-                                android:textStyle="bold"
-                                android:text="@{vm.info.order.send[0].province.name+vm.info.order.send[0].city.name}"
-                               tools:text="12344" />
-
-
-                    </LinearLayout>
-
-
-                    <ImageView
-                        android:id="@+id/img_arrow"
-                        android:layout_width="26dp"
-                        android:layout_height="4dp"
-                        android:src="@drawable/ic_long_arrow" />
-
-
-                    <LinearLayout
-                        android:layout_width="0dp"
-                        android:layout_height="wrap_content"
-                        android:layout_weight="1"
-                        android:gravity="center_vertical">
-
-                        <ImageView
-                            android:id="@+id/iv_red"
-                            android:layout_width="9dp"
-                            android:layout_height="10dp"
-                            android:layout_marginStart="14dp"
-                            android:src="@drawable/ic_circle_red" />
-
-                        <TextView
-                            android:id="@+id/tv_to"
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:layout_marginStart="22dp"
-                            android:textColor="@color/text_title"
-                            android:textSize="@dimen/sp_15"
-                            android:textStyle="bold"
-                            android:text="@{vm.info.order.receive[vm.info.order.receive.size()-1].province.name+vm.info.order.send[vm.info.order.receive.size()-1].city.name}"
-                            tools:text="12344" />
+                                android:layout_weight="1"
+                                android:gravity="center_vertical">
 
-                        </LinearLayout>
+                                <ImageView
+                                    android:id="@+id/iv_yellow"
+                                    android:layout_width="9dp"
+                                    android:layout_height="10dp"
+                                    android:src="@drawable/ic_circle_yellow" />
 
+                                <TextView
+                                    android:id="@+id/tv_from"
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_marginStart="22dp"
+                                    android:text="@{vm.info.order.send[0].province.name+vm.info.order.send[0].city.name}"
+                                    android:textColor="@color/text_title"
+                                    android:textSize="@dimen/sp_15"
+                                    android:textStyle="bold"
+                                    tools:text="12344" />
 
 
-                    </LinearLayout>
+                            </LinearLayout>
 
-                    <LinearLayout
-                        android:layout_width="match_parent"
-                        android:layout_height="wrap_content"
-                        android:layout_marginTop="8dp"
-                        android:layout_marginBottom="25dp"
-                        android:orientation="horizontal">
 
-                        <TextView
-                            android:layout_width="0dp"
-                            android:layout_height="wrap_content"
-                            android:layout_weight="1"
-                            android:gravity="center"
-                            tools:text="经开区香港路9号"
-                            android:text="@{vm.info.order.send[0].address}"
-                            android:textColor="@color/text_title"
-                            android:textSize="13sp" />
+                            <ImageView
+                                android:id="@+id/img_arrow"
+                                android:layout_width="26dp"
+                                android:layout_height="4dp"
+                                android:src="@drawable/ic_long_arrow" />
 
 
+                            <LinearLayout
+                                android:layout_width="0dp"
+                                android:layout_height="wrap_content"
+                                android:layout_weight="1"
+                                android:gravity="center_vertical">
+
+                                <ImageView
+                                    android:id="@+id/iv_red"
+                                    android:layout_width="9dp"
+                                    android:layout_height="10dp"
+                                    android:layout_marginStart="14dp"
+                                    android:src="@drawable/ic_circle_red" />
+
+                                <TextView
+                                    android:id="@+id/tv_to"
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_marginStart="22dp"
+                                    android:text="@{vm.info.order.receive[vm.info.order.receive.size()-1].province.name+vm.info.order.receive[vm.info.order.receive.size()-1].city.name}"
+                                    android:textColor="@color/text_title"
+                                    android:textSize="@dimen/sp_15"
+                                    android:textStyle="bold"
+                                    tools:text="12344" />
+
+                            </LinearLayout>
 
 
+                        </LinearLayout>
 
-                        <TextView
-                            android:layout_width="0dp"
+                        <LinearLayout
+                            android:layout_width="match_parent"
                             android:layout_height="wrap_content"
-                            android:layout_weight="1"
-                            android:gravity="center"
-                            tools:text="经开区香港路9号"
-                            android:text="@{vm.info.order.receive[vm.info.order.receive.size()-1].address}"
-                            android:textColor="@color/text_title"
-                            android:textSize="13sp" />
+                            android:layout_marginTop="8dp"
+                            android:layout_marginBottom="25dp"
+                            android:orientation="horizontal">
 
+                            <TextView
+                                android:layout_width="0dp"
+                                android:layout_height="wrap_content"
+                                android:layout_weight="1"
+                                android:gravity="center"
+                                android:text="@{vm.info.order.send[0].address}"
+                                android:textColor="@color/text_title"
+                                android:textSize="13sp"
+                                tools:text="经开区香港路9号" />
 
 
-                    </LinearLayout>
+                            <TextView
+                                android:layout_width="0dp"
+                                android:layout_height="wrap_content"
+                                android:layout_weight="1"
+                                android:gravity="center"
+                                android:text="@{vm.info.order.receive[vm.info.order.receive.size()-1].address}"
+                                android:textColor="@color/text_title"
+                                android:textSize="13sp"
+                                tools:text="经开区香港路9号" />
 
 
-                </com.qmuiteam.qmui.widget.roundwidget.QMUIRoundLinearLayout>
+                        </LinearLayout>
 
-                <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundLinearLayout
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:layout_marginTop="@dimen/dp_12"
-                    android:gravity="center_vertical"
-                    android:orientation="horizontal"
-                    android:paddingStart="@dimen/dp_11"
-                    android:paddingEnd="@dimen/dp_16"
-                    app:qmui_backgroundColor="@color/white"
-                    app:qmui_radius="@dimen/dp_4">
-
-                    <ImageView
-                        android:layout_width="40dp"
-                        android:layout_height="40dp"
-                        android:layout_marginTop="21dp"
-                        android:layout_marginBottom="21dp"
-                        android:src="@drawable/bg_need_error" />
 
-                    <LinearLayout
-                        android:layout_width="0dp"
-                        android:layout_height="match_parent"
-                        android:layout_marginStart="8dp"
-                        android:layout_marginEnd="8dp"
-                        android:layout_weight="1"
-                        android:orientation="vertical">
+                    </com.qmuiteam.qmui.widget.roundwidget.QMUIRoundLinearLayout>
 
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:layout_marginTop="16dp"
-                            android:textColor="@color/text_title"
-                            android:textSize="16sp"
-                            android:textStyle="bold"
-                            android:text="@{vm.info.company.company_name}"
-                            tools:text="临沂市昆仑物流有限公司" />
+                    <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundLinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="@dimen/dp_12"
+                        android:gravity="center_vertical"
+                        android:orientation="horizontal"
+                        android:paddingStart="@dimen/dp_11"
+                        android:paddingEnd="@dimen/dp_16"
+                        app:qmui_backgroundColor="@color/white"
+                        app:qmui_radius="@dimen/dp_4">
 
+                        <ImageView
+                            android:layout_width="40dp"
+                            android:layout_height="40dp"
+                            android:layout_marginTop="21dp"
+                            android:layout_marginBottom="21dp"
+                            android:src="@drawable/bg_need_error" />
 
                         <LinearLayout
-                            android:layout_width="match_parent"
-                            android:layout_height="wrap_content"
-                            android:layout_marginTop="7dp"
-                            android:orientation="horizontal">
+                            android:layout_width="0dp"
+                            android:layout_height="match_parent"
+                            android:layout_marginStart="8dp"
+                            android:layout_marginEnd="8dp"
+                            android:layout_weight="1"
+                            android:orientation="vertical">
 
                             <TextView
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:textColor="#979899"
-                                android:textSize="16sp"
-                                android:text="累计交易"
-                                android:layout_marginEnd="@dimen/dp_10"
-                                />
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:textColor="#979899"
+                                android:layout_marginTop="16dp"
+                                android:text="@{vm.info.company.company_name}"
+                                android:textColor="@color/text_title"
                                 android:textSize="16sp"
-                                android:text="@{vm.info.company.info_nums+@string/single}"
-                                tools:text="@string/single" />
-
+                                android:textStyle="bold"
+                                tools:text="临沂市昆仑物流有限公司" />
 
 
-                            <TextView
-                                android:layout_width="wrap_content"
+                            <LinearLayout
+                                android:layout_width="match_parent"
                                 android:layout_height="wrap_content"
-                                android:layout_marginStart="@dimen/dp_10"
-                                android:textColor="#979899"
-                                android:textSize="16sp"
-                                android:layout_marginEnd="@dimen/dp_10"
-                                android:text="好评率" />
+                                android:layout_marginTop="7dp"
+                                android:orientation="horizontal">
 
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:textColor="#979899"
-                                android:textSize="16sp"
-                                android:text="@{vm.info.company.hpl+@string/percent_sign}"
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_marginEnd="@dimen/dp_10"
+                                    android:text="累计交易"
+                                    android:textColor="#979899"
+                                    android:textSize="16sp" />
 
-                                tools:text="@string/percent_sign" />
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:text="@{vm.info.company.info_nums+@string/single}"
+                                    android:textColor="#979899"
+                                    android:textSize="16sp"
+                                    tools:text="@string/single" />
 
 
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_marginStart="@dimen/dp_10"
+                                    android:layout_marginEnd="@dimen/dp_10"
+                                    android:text="好评率"
+                                    android:textColor="#979899"
+                                    android:textSize="16sp" />
 
-                        </LinearLayout>
+                                <TextView
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:text="@{vm.info.company.hpl+@string/percent_sign}"
+                                    android:textColor="#979899"
+                                    android:textSize="16sp"
 
+                                    tools:text="@string/percent_sign" />
 
-                    </LinearLayout>
 
-                  <LinearLayout
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                      android:onClick="@{v->vm.toCallPhone(vm.info.company.mobile)}"
-                      android:orientation="vertical">
+                            </LinearLayout>
 
-                        <ImageView
-                            android:layout_width="24dp"
-                            android:layout_height="24dp"
-                            android:src="@drawable/ic_details_phone" />
 
+                        </LinearLayout>
 
-                        <TextView
+                        <LinearLayout
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:layout_marginTop="4dp"
-                            android:textColor="@color/text_title"
-                            android:textSize="13sp"
-                            android:text="@{vm.info.company.name}"
-                            tools:text="马勇" />
+                            android:onClick="@{v->vm.toCallPhone(vm.info.company.mobile)}"
+                            android:orientation="vertical">
 
+                            <ImageView
+                                android:layout_width="24dp"
+                                android:layout_height="24dp"
+                                android:src="@drawable/ic_details_phone" />
 
-                    </LinearLayout>
 
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:layout_marginTop="4dp"
+                                android:text="@{vm.info.company.name}"
+                                android:textColor="@color/text_title"
+                                android:textSize="13sp"
+                                tools:text="马勇" />
 
-                </com.qmuiteam.qmui.widget.roundwidget.QMUIRoundLinearLayout>
 
+                        </LinearLayout>
 
-                <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundLinearLayout
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:layout_marginTop="@dimen/dp_12"
-                    android:gravity="center_vertical"
-                    android:orientation="vertical"
-                    android:paddingStart="21dp"
-                    android:paddingEnd="16dp"
-                    app:qmui_backgroundColor="@color/white"
-                    app:qmui_radius="@dimen/dp_4">
 
-                    <TextView
-                        android:layout_width="match_parent"
-                        android:layout_height="wrap_content"
-                        android:layout_marginTop="16dp"
-                        android:gravity="center"
-                        android:text="详细信息"
-                        android:textColor="@color/text_title"
-                        android:textSize="15sp"
-                        android:textStyle="bold" />
+                    </com.qmuiteam.qmui.widget.roundwidget.QMUIRoundLinearLayout>
 
-                    <LinearLayout
+
+                    <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundLinearLayout
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
-                        android:layout_marginTop="21dp"
-                        android:orientation="horizontal">
+                        android:layout_marginTop="@dimen/dp_12"
+                        android:gravity="center_vertical"
+                        android:orientation="vertical"
+                        android:paddingStart="21dp"
+                        android:paddingEnd="16dp"
+                        app:qmui_backgroundColor="@color/white"
+                        app:qmui_radius="@dimen/dp_4">
 
                         <TextView
-                            android:layout_width="wrap_content"
+                            android:layout_width="match_parent"
                             android:layout_height="wrap_content"
-                            android:text="装货时间"
-                            android:textColor="#767778"
-                            android:textSize="14sp" />
-
+                            android:layout_marginTop="16dp"
+                            android:gravity="center"
+                            android:text="详细信息"
+                            android:textColor="@color/text_title"
+                            android:textSize="15sp"
+                            android:textStyle="bold" />
 
-                        <TextView
-                            android:layout_width="0dp"
+                        <LinearLayout
+                            android:layout_width="match_parent"
                             android:layout_height="wrap_content"
-                            android:layout_weight="1"
-                            android:gravity="right"
-                            android:textColor="@color/text_title"
-                            android:textSize="@dimen/sp_13"
-                            android:text="@{vm.info.order.send[0].time}"
+                            android:layout_marginTop="21dp"
+                            android:orientation="horizontal">
 
-                            tools:text="2020-09-03 下午" />
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="装货时间"
+                                android:textColor="#767778"
+                                android:textSize="14sp" />
 
 
-                    </LinearLayout>
+                            <TextView
+                                android:layout_width="0dp"
+                                android:layout_height="wrap_content"
+                                android:layout_weight="1"
+                                android:gravity="right"
+                                android:text="@{vm.info.order.send[0].time}"
+                                android:textColor="@color/text_title"
+                                android:textSize="@dimen/sp_13"
 
-                    <LinearLayout
-                        android:layout_width="match_parent"
-                        android:layout_height="wrap_content"
-                        android:layout_marginTop="13dp"
-                        android:orientation="horizontal">
+                                tools:text="2020-09-03 下午" />
 
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:text="卸货时间"
-                            android:textColor="#767778"
-                            android:textSize="14sp" />
 
+                        </LinearLayout>
 
-                        <TextView
-                            android:layout_width="0dp"
+                        <LinearLayout
+                            android:layout_width="match_parent"
                             android:layout_height="wrap_content"
-                            android:layout_weight="1"
-                            android:gravity="right"
-                            android:textColor="@color/text_title"
-                            android:textSize="@dimen/sp_13"
-                            android:text="@{vm.info.order.receive[vm.info.order.receive.size()-1].time}"
-                            tools:text="2020-09-03 下午" />
+                            android:layout_marginTop="13dp"
+                            android:orientation="horizontal">
 
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="卸货时间"
+                                android:textColor="#767778"
+                                android:textSize="14sp" />
 
-                    </LinearLayout>
 
-                    <LinearLayout
-                        android:layout_width="match_parent"
-                        android:layout_height="wrap_content"
-                        android:layout_marginTop="13dp"
-                        android:orientation="horizontal">
+                            <TextView
+                                android:layout_width="0dp"
+                                android:layout_height="wrap_content"
+                                android:layout_weight="1"
+                                android:gravity="right"
+                                android:text="@{vm.info.order.receive[vm.info.order.receive.size()-1].time}"
+                                android:textColor="@color/text_title"
+                                android:textSize="@dimen/sp_13"
+                                tools:text="2020-09-03 下午" />
 
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:text="货物信息"
-                            android:textColor="#767778"
-                            android:textSize="14sp" />
 
+                        </LinearLayout>
 
-                        <TextView
-                            android:layout_width="0dp"
+                        <LinearLayout
+                            android:layout_width="match_parent"
                             android:layout_height="wrap_content"
-                            android:layout_weight="1"
-                            android:gravity="right"
-                            android:textColor="@color/text_title"
-                            android:textSize="@dimen/sp_13"
-                            android:text="@{vm.info.order.receive[vm.info.order.receive.size()-1].goods+@string/left_bracket+vm.info.order.receive[vm.info.order.receive.size()-1].goods_type.name+@string/right_bracket}"
-                            tools:text="苹果(农产品)" />
+                            android:layout_marginTop="13dp"
+                            android:orientation="horizontal">
 
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="货物信息"
+                                android:textColor="#767778"
+                                android:textSize="14sp" />
 
-                    </LinearLayout>
 
-                    <LinearLayout
-                        android:layout_width="match_parent"
-                        android:layout_height="wrap_content"
-                        android:layout_marginTop="13dp"
-                        android:orientation="horizontal">
+                            <TextView
+                                android:layout_width="0dp"
+                                android:layout_height="wrap_content"
+                                android:layout_weight="1"
+                                android:gravity="right"
+                                android:text="@{vm.info.order.receive[vm.info.order.receive.size()-1].goods+@string/left_bracket+vm.info.order.receive[vm.info.order.receive.size()-1].goods_type.name+@string/right_bracket}"
+                                android:textColor="@color/text_title"
+                                android:textSize="@dimen/sp_13"
+                                tools:text="苹果(农产品)" />
 
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:text="车辆类型"
-                            android:textColor="#767778"
-                            android:textSize="14sp" />
 
+                        </LinearLayout>
 
-                        <TextView
-                            android:layout_width="0dp"
+                        <LinearLayout
+                            android:layout_width="match_parent"
                             android:layout_height="wrap_content"
-                            android:layout_weight="1"
-                            android:gravity="right"
-                            android:textColor="@color/text_title"
-                            android:textSize="@dimen/sp_13"
-                            android:text="@{vm.info.order.type_info.type_name+@string/spot+vm.info.order.type_info.length}"
-                            tools:text="平板货车 · 13米" />
+                            android:layout_marginTop="13dp"
+                            android:orientation="horizontal">
 
-                    </LinearLayout>
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="车辆类型"
+                                android:textColor="#767778"
+                                android:textSize="14sp" />
 
-                    <LinearLayout
-                        android:layout_width="match_parent"
-                        android:layout_height="wrap_content"
-                        android:layout_marginTop="13dp"
-                        android:orientation="horizontal">
 
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:text="本单重量"
-                            android:textColor="#767778"
-                            android:textSize="14sp" />
+                            <TextView
+                                android:layout_width="0dp"
+                                android:layout_height="wrap_content"
+                                android:layout_weight="1"
+                                android:gravity="right"
+                                android:text="@{vm.info.order.type_info.type_name+@string/spot+vm.info.order.type_info.length}"
+                                android:textColor="@color/text_title"
+                                android:textSize="@dimen/sp_13"
+                                tools:text="平板货车 · 13米" />
 
+                        </LinearLayout>
 
-                        <TextView
-                            android:layout_width="0dp"
+                        <LinearLayout
+                            android:layout_width="match_parent"
                             android:layout_height="wrap_content"
-                            android:layout_weight="1"
-                            android:gravity="right"
-                            android:textColor="@color/text_title"
-                            android:textSize="@dimen/sp_13"
-                            android:text="@{vm.info.order.receive[vm.info.order.receive.size()-1].nums+vm.info.order.receive[vm.info.order.receive.size()-1].nums_type.name}"
-                            tools:text="35吨" />
+                            android:layout_marginTop="13dp"
+                            android:orientation="horizontal">
 
-                    </LinearLayout>
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="本单重量"
+                                android:textColor="#767778"
+                                android:textSize="14sp" />
 
-                    <LinearLayout
-                        android:layout_width="match_parent"
-                        android:layout_height="wrap_content"
-                        android:layout_marginTop="13dp"
-                        android:orientation="horizontal">
 
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:text="本单价格"
-                            android:textColor="#767778"
-                            android:textSize="14sp" />
+                            <TextView
+                                android:layout_width="0dp"
+                                android:layout_height="wrap_content"
+                                android:layout_weight="1"
+                                android:gravity="right"
+                                android:text="@{vm.info.order.receive[vm.info.order.receive.size()-1].nums+vm.info.order.receive[vm.info.order.receive.size()-1].nums_type.name}"
+                                android:textColor="@color/text_title"
+                                android:textSize="@dimen/sp_13"
+                                tools:text="35吨" />
 
+                        </LinearLayout>
 
-                        <TextView
-                            android:layout_width="0dp"
+                        <LinearLayout
+                            android:layout_width="match_parent"
                             android:layout_height="wrap_content"
-                            android:layout_weight="1"
-                            android:gravity="right"
-                            android:textColor="@color/text_title"
-                            android:textSize="@dimen/sp_13"
-                            android:text="@{@string/total_img+vm.info.order.receive[vm.info.order.receive.size()-1].price}"
-                            tools:text="¥3500" />
+                            android:layout_marginTop="13dp"
+                            android:orientation="horizontal">
 
-                    </LinearLayout>
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="本单价格"
+                                android:textColor="#767778"
+                                android:textSize="14sp" />
 
-                    <LinearLayout
-                        android:layout_width="match_parent"
-                        android:layout_height="wrap_content"
-                        android:layout_marginTop="13dp"
-                        android:layout_marginBottom="20dp"
-                        android:orientation="horizontal">
 
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:text="备注信息"
-                            android:textColor="#767778"
-                            android:textSize="14sp" />
+                            <TextView
+                                android:layout_width="0dp"
+                                android:layout_height="wrap_content"
+                                android:layout_weight="1"
+                                android:gravity="right"
+                                android:text="@{@string/total_img+vm.info.order.receive[vm.info.order.receive.size()-1].price}"
+                                android:textColor="@color/text_title"
+                                android:textSize="@dimen/sp_13"
+                                tools:text="¥3500" />
 
+                        </LinearLayout>
 
-                        <TextView
-                            android:layout_width="0dp"
+                        <LinearLayout
+                            android:layout_width="match_parent"
                             android:layout_height="wrap_content"
-                            android:layout_weight="1"
-                            android:gravity="right"
-                            android:textColor="@color/text_title"
-                            android:textSize="@dimen/sp_13"
-                            android:text="@{vm.info.order.data}"
-                            tools:text="稳中求快" />
+                            android:layout_marginTop="13dp"
+                            android:layout_marginBottom="20dp"
+                            android:orientation="horizontal">
 
-                    </LinearLayout>
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="备注信息"
+                                android:textColor="#767778"
+                                android:textSize="14sp" />
 
 
-                </com.qmuiteam.qmui.widget.roundwidget.QMUIRoundLinearLayout>
+                            <TextView
+                                android:layout_width="0dp"
+                                android:layout_height="wrap_content"
+                                android:layout_weight="1"
+                                android:gravity="right"
+                                android:text="@{vm.info.order.data}"
+                                android:textColor="@color/text_title"
+                                android:textSize="@dimen/sp_13"
+                                tools:text="稳中求快" />
 
-                <TextView
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:layout_marginStart="66dp"
-                    android:layout_marginTop="20dp"
-                    android:layout_marginEnd="66dp"
-                    android:gravity="center"
-                    android:textColor="@color/text_title"
-                    android:textSize="14sp"
-                    tools:text="*货主共计需要10辆车,运输350吨货物 当前已有7辆车接单">
+                        </LinearLayout>
 
-                </TextView>
 
+                    </com.qmuiteam.qmui.widget.roundwidget.QMUIRoundLinearLayout>
 
+                    <TextView
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginStart="66dp"
+                        android:layout_marginTop="20dp"
+                        android:layout_marginEnd="66dp"
+                        android:gravity="center"
+                        android:textColor="@color/text_title"
+                        android:textSize="14sp"
+                        android:text="@{vm.tips}"
+                        tools:text="*货主共计需要10辆车,运输350吨货物 当前已有7辆车接单">
+
+                    </TextView>
 
-                <LinearLayout
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:gravity="center"
-                    android:layout_marginTop="56dp"
-                    android:orientation="vertical">
 
                     <LinearLayout
-                        android:layout_width="wrap_content"
+                        android:layout_width="match_parent"
                         android:layout_height="wrap_content"
-                        android:orientation="horizontal">
+                        android:layout_marginTop="56dp"
+                        android:paddingBottom="106dp"
+                        android:gravity="center"
+                        android:orientation="vertical">
 
-                        <TextView
+                        <LinearLayout
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:layout_marginEnd="20dp"
-                            android:text="使用协议"
-                            android:textColor="#FFBC00"
-                            android:textSize="13sp"></TextView>
+                            android:orientation="horizontal">
 
-                        <View
-                            android:layout_width="1dp"
-                            android:layout_height="15dp"
-                            android:background="#979899" />
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:layout_marginEnd="20dp"
+                                android:text="使用协议"
+                                android:textColor="#FFBC00"
+                                android:textSize="13sp"></TextView>
 
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:layout_marginStart="20dp"
-                            android:text="操作指引"
-                            android:textColor="#FFBC00"
-                            android:textSize="13sp"></TextView>
+                            <View
+                                android:layout_width="1dp"
+                                android:layout_height="15dp"
+                                android:background="#979899" />
 
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:layout_marginStart="20dp"
+                                android:text="操作指引"
+                                android:textColor="#FFBC00"
+                                android:textSize="13sp"></TextView>
 
-                    </LinearLayout>
+
+                        </LinearLayout>
 
 
-                    <FrameLayout
-                        android:layout_width="match_parent"
-                        android:onClick="@{v->vm.toGrab(vm.info.order.info_id)}"
-                        android:layout_height="wrap_content">
-                    <ImageView
-                        android:layout_width="match_parent"
-                        android:layout_height="106dp"
-                        android:src="@drawable/ic_details_grab" />
 
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_gravity="center"
-                            android:text="抢单"
-                            android:textColor="@color/white"
-                            android:textSize="16sp"
-                            android:layout_height="wrap_content">
 
-                        </TextView>
 
-                    </FrameLayout>
+                    </LinearLayout>
 
 
                 </LinearLayout>
+            </ScrollView>
+
+
+            <FrameLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_gravity="bottom"
+                android:onClick="@{v->vm.toGrab(vm.info.order.info_id)}">
+
+                <ImageView
+                    android:layout_width="match_parent"
+                    android:layout_height="106dp"
+                    android:src="@drawable/ic_details_grab" />
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center"
+                    android:text="抢单"
+                    android:textColor="@color/white"
+                    android:textSize="16sp">
+
+                </TextView>
 
+            </FrameLayout>
 
-            </LinearLayout>
-        </ScrollView>
+        </FrameLayout>
     </LinearLayout>
 </layout>

+ 1 - 0
app/src/main/res/layout/item_peopleinfo.xml

@@ -67,6 +67,7 @@
                 tools:text="山东省临沂市 河东区 香港路999号" />
 
             <ImageView
+                android:id="@+id/img_map"
                 android:layout_width="17dp"
                 android:layout_height="22dp"
                 android:layout_marginStart="32dp"

+ 19 - 1
base/src/main/java/com/ysnows/base/model/PositionBean.java

@@ -1,10 +1,12 @@
 package com.ysnows.base.model;
 
+import java.io.Serializable;
+
 /**
  * Created by shihuiyun
  * on 2020-01-11
  */
-public class PositionBean {
+public class PositionBean  {
 
     public String position;
     public String latitude;
@@ -17,6 +19,7 @@ public class PositionBean {
 
 
 
+
     public PositionBean(String position, String latitude, String longitude,
                         String provincename, String cityname, String areaname ,
                         String areacode) {
@@ -31,4 +34,19 @@ public class PositionBean {
 
 
     }
+
+    public String positionEnd;
+    public String latitudeEnd;
+    public String longitudeEnd;
+
+
+    public PositionBean(String position, String latitude, String longitude,
+                        String positionEnd, String latitudeEnd, String longitudeEnd) {
+        this.position = position;
+        this.latitude = latitude;
+        this.longitude = longitude;
+        this.positionEnd = positionEnd;
+        this.latitudeEnd = latitudeEnd;
+        this.longitudeEnd = longitudeEnd;
+    }
 }

+ 5 - 0
base/src/main/java/com/ysnows/base/route/IGaode.kt

@@ -2,6 +2,8 @@ package com.ysnows.base.route
 
 import com.billy.cc.core.component.CCResult
 import com.ysnows.base.ccretrofit.IRoute
+import com.ysnows.base.ccretrofit.annotation.Param
+import com.ysnows.base.model.PositionBean
 import io.reactivex.Observable
 
 /**
@@ -12,4 +14,7 @@ interface  IGaode : IRoute {
 
     fun selectLocation(): Observable<CCResult>
 
+    fun goRouteLocation(@Param("item") item: PositionBean): Observable<CCResult>
+
+
 }

+ 1 - 0
gaode/src/main/AndroidManifest.xml

@@ -61,6 +61,7 @@
 
         </activity >
         <activity android:name=".activity.SearchAddressActivity"></activity>
+        <activity android:name=".activity.RouteActivity"/>
 
 
 

+ 347 - 0
gaode/src/main/java/com/quansu/gaode/activity/RouteActivity.java

@@ -0,0 +1,347 @@
+package com.quansu.gaode.activity;
+
+import android.app.ProgressDialog;
+import android.graphics.Color;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+
+import com.amap.api.maps.AMap;
+import com.amap.api.maps.CameraUpdateFactory;
+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.Marker;
+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.WalkPath;
+import com.amap.api.services.route.WalkRouteResult;
+import com.githang.statusbar.StatusBarCompat;
+import com.google.gson.Gson;
+import com.quansu.gaode.R;
+import com.quansu.gaode.utils.AMapUtil;
+import com.quansu.gaode.utils.WalkRouteOverlay;
+import com.ysnows.base.model.PositionBean;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by shihuiyun
+ * on 2020/9/25
+ */
+public class RouteActivity extends AppCompatActivity implements AMap.OnMapClickListener,
+        AMap.OnMarkerClickListener, AMap.OnInfoWindowClickListener, AMap.InfoWindowAdapter, RouteSearch.OnRouteSearchListener {
+
+    private AMap aMap;
+    private MapView mapView;
+    private RouteSearch mRouteSearch;
+    private WalkRouteResult mWalkRouteResult;
+    private LatLonPoint mStartPoint;
+    private LatLonPoint mEndPoint;
+    private final int ROUTE_TYPE_DRIVE = 3;
+    private ProgressDialog progDialog = null;// 搜索时进度条
+    private ImageView imgBack;
+    private TextView tvStart;
+    private TextView tvEnd;
+    private LatLng mStartLat;
+    private LatLng mEndLat;
+
+
+    @Override
+    protected void onCreate(@Nullable Bundle bundle) {
+        StatusBarCompat.setStatusBarColor(this, Color.parseColor("#00ffffff"));
+        super.onCreate(bundle);
+        setContentView(R.layout.map_layout);
+
+        PositionBean item = new Gson().fromJson(getIntent().getStringExtra("item"), PositionBean.class);
+        imgBack = findViewById(R.id.img_back);
+        tvStart = findViewById(R.id.tv_start);
+        tvEnd = findViewById(R.id.tv_end);
+        tvStart.setText(item.position);
+        tvEnd.setText(item.positionEnd);
+
+
+        mStartLat = new LatLng(Double.parseDouble(item.latitude), Double.parseDouble(item.longitude));
+        mEndLat = new LatLng(Double.parseDouble(item.latitudeEnd), Double.parseDouble(item.longitudeEnd));
+
+        mStartPoint = new LatLonPoint(Double.parseDouble(item.latitude), Double.parseDouble(item.longitude));//起点
+        mEndPoint = new LatLonPoint(Double.parseDouble(item.latitudeEnd), Double.parseDouble(item.longitudeEnd));//终点
+
+
+        mapView = (MapView) findViewById(R.id.map);
+        mapView.onCreate(bundle);
+        init();
+        setfromandtoMarker();
+        searchRouteResult(ROUTE_TYPE_DRIVE, RouteSearch.WalkDefault);
+        initView();
+
+    }
+
+    /****
+     * 起点终点图标设置
+     */
+    private void setfromandtoMarker() {
+        aMap.addMarker(new MarkerOptions()
+                .position(AMapUtil.convertToLatLng(mStartPoint))
+                .icon(BitmapDescriptorFactory.fromResource(R.drawable.start)));
+        aMap.addMarker(new MarkerOptions()
+                .position(AMapUtil.convertToLatLng(mEndPoint))
+                .icon(BitmapDescriptorFactory.fromResource(R.drawable.end)));
+    }
+
+    /**
+     * 初始化AMap对象
+     */
+    private void init() {
+        if (aMap == null) {
+            aMap = mapView.getMap();
+        }
+        registerListener();
+        mRouteSearch = new RouteSearch(this);
+        mRouteSearch.setRouteSearchListener(this);
+    }
+
+    /**
+     * 注册监听
+     */
+    private void registerListener() {
+        aMap.setOnMapClickListener(RouteActivity.this);
+        aMap.setOnMarkerClickListener(RouteActivity.this);
+        aMap.setOnInfoWindowClickListener(RouteActivity.this);
+        aMap.setInfoWindowAdapter(RouteActivity.this);
+
+    }
+
+    @Override
+    public View getInfoContents(Marker arg0) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    @Override
+    public View getInfoWindow(Marker arg0) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    @Override
+    public void onInfoWindowClick(Marker arg0) {
+        // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public boolean onMarkerClick(Marker arg0) {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+    @Override
+    public void onMapClick(LatLng arg0) {
+        // TODO Auto-generated method stub
+
+    }
+
+    /**
+     * 开始搜索路线规划方案
+     */
+    public void searchRouteResult(int routeType, int mode) {
+        if (mStartPoint == null) {
+            Toast.makeText(RouteActivity.this, "起点未设置", Toast.LENGTH_LONG).show();
+            return;
+        }
+        if (mEndPoint == null) {
+            Toast.makeText(RouteActivity.this, "终点未设置", Toast.LENGTH_LONG).show();
+        }
+        showProgressDialog();
+        final RouteSearch.FromAndTo fromAndTo = new RouteSearch.FromAndTo(
+                mStartPoint, mEndPoint);
+        if (routeType == ROUTE_TYPE_DRIVE) {
+
+            RouteSearch.DriveRouteQuery query = new RouteSearch.DriveRouteQuery(fromAndTo, RouteSearch.DRIVING_SINGLE_DEFAULT, null, null, "");
+            mRouteSearch.calculateDriveRouteAsyn(query);
+
+//            RouteSearch.WalkRouteQuery query = new RouteSearch.WalkRouteQuery(fromAndTo, mode);//步行
+//            mRouteSearch.calculateWalkRouteAsyn(query);
+        }
+    }
+
+    @Override
+    public void onBusRouteSearched(BusRouteResult result, int errorCode) {
+
+    }
+
+    @Override
+    public void onDriveRouteSearched(DriveRouteResult driveRouteResult, int rCode) {
+
+        if (rCode == 1000) {//获取规划路线成功,获取到的是了,路线坐标点的集合
+            dissmissProgressDialog();
+            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.drawable.amap_start))
+                    .position(mStartLat));
+            aMap.addMarker(new MarkerOptions()
+                    .icon(BitmapDescriptorFactory.fromResource(R.drawable.amap_end))
+                    .position(mEndLat));
+
+            //绘制规划路径路线
+            aMap.addPolyline(new PolylineOptions()
+                    //路线坐标点的集合
+                    .addAll(latLngs)
+                    //线的宽度
+                    .width(30)
+                    .color(getResources().getColor(R.color.refresh_colorPrimaryDark)));
+            //设置画线的颜色
+
+            //显示完整包含所有marker地图路线
+            LatLngBounds.Builder builder = new LatLngBounds.Builder();
+            for (int i = 0; i < latLngs.size(); i++) {
+                builder.include(latLngs.get(i));
+            }
+            //显示全部marker,第二个参数是四周留空宽度
+            aMap.moveCamera(CameraUpdateFactory.newLatLngBounds(builder.build(), 200));
+        }
+
+    }
+
+    @Override
+    public void onWalkRouteSearched(WalkRouteResult result, int errorCode) {
+        dissmissProgressDialog();
+        aMap.clear();// 清理地图上的所有覆盖物
+        if (errorCode == AMapException.CODE_AMAP_SUCCESS) {
+            if (result != null && result.getPaths() != null) {
+                if (result.getPaths().size() > 0) {
+                    mWalkRouteResult = result;
+                    final WalkPath walkPath = mWalkRouteResult.getPaths()
+                            .get(0);
+                    WalkRouteOverlay walkRouteOverlay = new WalkRouteOverlay(
+                            this, aMap, walkPath,
+                            mWalkRouteResult.getStartPos(),
+                            mWalkRouteResult.getTargetPos());
+                    walkRouteOverlay.getWalkColor();//轨迹颜色修改
+                    walkRouteOverlay.removeFromMap();
+                    walkRouteOverlay.addToMap();
+                    walkRouteOverlay.zoomToSpan();
+                    walkRouteOverlay.setNodeIconVisibility(false);//关闭行走图标轨迹
+                    int dis = (int) walkPath.getDistance();
+                    int dur = (int) walkPath.getDuration();
+                    String des = AMapUtil.getFriendlyTime(dur) + "(" + AMapUtil.getFriendlyLength(dis) + ")";
+                } else if (result != null && result.getPaths() == null) {
+                    Toast.makeText(RouteActivity.this, R.string.no_result, Toast.LENGTH_LONG).show();
+                }
+            } else {
+                Toast.makeText(RouteActivity.this, R.string.no_result, Toast.LENGTH_LONG).show();
+            }
+        } else {
+
+            Log.e("-shy-", "errorCode=: " + errorCode);
+            Toast.makeText(RouteActivity.this, errorCode, Toast.LENGTH_LONG).show();
+        }
+    }
+
+
+    /**
+     * 显示进度框
+     */
+    private void showProgressDialog() {
+        if (progDialog == null)
+            progDialog = new ProgressDialog(this);
+        progDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
+        progDialog.setIndeterminate(false);
+        progDialog.setCancelable(true);
+        progDialog.setMessage("正在搜索");
+        progDialog.show();
+    }
+
+    /**
+     * 隐藏进度框
+     */
+    private void dissmissProgressDialog() {
+        if (progDialog != null) {
+            progDialog.dismiss();
+        }
+    }
+
+    /**
+     * 方法必须重写
+     */
+    @Override
+    protected void onResume() {
+        super.onResume();
+        mapView.onResume();
+    }
+
+    /**
+     * 方法必须重写
+     */
+    @Override
+    protected void onPause() {
+        super.onPause();
+        mapView.onPause();
+    }
+
+    /**
+     * 方法必须重写
+     */
+    @Override
+    protected void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        mapView.onSaveInstanceState(outState);
+    }
+
+    /**
+     * 方法必须重写
+     */
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        mapView.onDestroy();
+    }
+
+    @Override
+    public void onRideRouteSearched(RideRouteResult arg0, int arg1) {
+        // TODO Auto-generated method stub
+
+    }
+
+    private void initView() {
+        imgBack.setOnClickListener(v -> {
+            finish();
+        });
+    }
+
+}

+ 15 - 1
gaode/src/main/java/com/quansu/gaode/componnent/CpGaode.java

@@ -5,10 +5,12 @@ import android.util.Log;
 import com.billy.cc.core.component.CC;
 import com.billy.cc.core.component.CCResult;
 import com.billy.cc.core.component.IComponent;
+import com.google.gson.Gson;
 import com.quansu.gaode.activity.GaodeActivity;
+import com.quansu.gaode.activity.RouteActivity;
 import com.ysnows.base.base.BApp;
 import com.ysnows.base.ccextension.BIComponent;
-
+import com.ysnows.base.model.PositionBean;
 
 
 public class CpGaode extends BIComponent implements IComponent {
@@ -30,6 +32,18 @@ public class CpGaode extends BIComponent implements IComponent {
     }
 
 
+    public boolean goRouteLocation(CC cc,PositionBean item){
+
+
+        Intent intent = new Intent(BApp.instance().getApplicationContext(), RouteActivity.class);
+        intent.putExtra("item",new Gson().toJson(item));
+        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
+        BApp.instance().getApplicationContext().startActivity(intent);
+
+        CC.sendCCResult(cc.getCallId(), CCResult.success());
+        return false;
+    }
+
 }
 
 

+ 57 - 0
gaode/src/main/java/com/quansu/gaode/utils/AMapServicesUtil.java

@@ -0,0 +1,57 @@
+package com.quansu.gaode.utils;
+
+/**
+ * 
+ */
+
+import android.graphics.Bitmap;
+
+import com.amap.api.maps.model.LatLng;
+import com.amap.api.services.core.LatLonPoint;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+class AMapServicesUtil {
+	public static int BUFFER_SIZE = 2048;
+
+	public static byte[] inputStreamToByte(InputStream in) throws IOException {
+
+		ByteArrayOutputStream outStream = new ByteArrayOutputStream();
+		byte[] data = new byte[BUFFER_SIZE];
+		int count = -1;
+		while ((count = in.read(data, 0, BUFFER_SIZE)) != -1)
+			outStream.write(data, 0, count);
+
+		data = null;
+		return outStream.toByteArray();
+	}
+	public static LatLonPoint convertToLatLonPoint(LatLng latlon) {
+		return new LatLonPoint(latlon.latitude, latlon.longitude);
+	}
+	public static LatLng convertToLatLng(LatLonPoint latLonPoint) {
+		return new LatLng(latLonPoint.getLatitude(), latLonPoint.getLongitude());
+	}
+	public static ArrayList<LatLng> convertArrList(List<LatLonPoint> shapes) {
+		ArrayList<LatLng> lineShapes = new ArrayList<LatLng>();
+		for (LatLonPoint point : shapes) {
+			LatLng latLngTemp = AMapServicesUtil.convertToLatLng(point);
+			lineShapes.add(latLngTemp);
+		}
+		return lineShapes;
+	}
+	public static Bitmap zoomBitmap(Bitmap bitmap, float res) {
+		if (bitmap == null) {
+			return null;
+		}
+		int width, height;
+		width = (int) (bitmap.getWidth() * res);
+		height = (int) (bitmap.getHeight() * res);
+		Bitmap newbmp = Bitmap.createScaledBitmap(bitmap, width, height, true);
+		return newbmp;
+	}
+
+}

+ 151 - 0
gaode/src/main/java/com/quansu/gaode/utils/AMapUtil.java

@@ -0,0 +1,151 @@
+package com.quansu.gaode.utils;
+
+import com.amap.api.maps.model.LatLng;
+import com.amap.api.services.core.LatLonPoint;
+import com.amap.api.services.route.BusPath;
+import com.amap.api.services.route.BusStep;
+import com.amap.api.services.route.RouteBusLineItem;
+import com.amap.api.services.route.RouteRailwayItem;
+
+import java.text.DecimalFormat;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class AMapUtil {
+
+    public static String getFriendlyLength(int lenMeter) {
+        if (lenMeter > 10000) // 10 km
+        {
+            int dis = lenMeter / 1000;
+            return dis + "";
+        }
+
+        if (lenMeter > 1000) {
+            float dis = (float) lenMeter / 1000;
+            DecimalFormat fnum = new DecimalFormat("##0.0");
+            String dstr = fnum.format(dis);
+            return dstr;
+        }
+
+        if (lenMeter > 100) {
+            int dis = lenMeter / 50 * 50;
+            return dis + "";
+        }
+
+        int dis = lenMeter / 10 * 10;
+        if (dis == 0) {
+            dis = 10;
+        }
+
+        return dis + "";
+    }
+
+    public static boolean IsEmptyOrNullString(String s) {
+        return (s == null) || (s.trim().length() == 0);
+    }
+
+    /**
+     * 把LatLng对象转化为LatLonPoint对象
+     */
+    public static LatLonPoint convertToLatLonPoint(LatLng latlon) {
+        return new LatLonPoint(latlon.latitude, latlon.longitude);
+    }
+
+    /**
+     * 把LatLonPoint对象转化为LatLon对象
+     */
+    public static LatLng convertToLatLng(LatLonPoint latLonPoint) {
+        return new LatLng(latLonPoint.getLatitude(), latLonPoint.getLongitude());
+    }
+
+    /**
+     * 把集合体的LatLonPoint转化为集合体的LatLng
+     */
+    public static ArrayList<LatLng> convertArrList(List<LatLonPoint> shapes) {
+        ArrayList<LatLng> lineShapes = new ArrayList<LatLng>();
+        for (LatLonPoint point : shapes) {
+            LatLng latLngTemp = AMapUtil.convertToLatLng(point);
+            lineShapes.add(latLngTemp);
+        }
+        return lineShapes;
+    }
+
+    /**
+     * long类型时间格式化
+     */
+    public static String convertToTime(long time) {
+        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        Date date = new Date(time);
+        return df.format(date);
+    }
+
+    public static final String HtmlBlack = "#000000";
+    public static final String HtmlGray = "#808080";
+
+    public static String getFriendlyTime(int second) {
+        if (second > 3600) {
+            int hour = second / 3600;
+            int miniate = (second % 3600) / 60;
+            return hour + "小时" + miniate + "分钟";
+        }
+        if (second >= 60) {
+            int miniate = second / 60;
+            return miniate + "分钟";
+        }
+        return second + "秒";
+    }
+
+
+    public static String getBusPathTitle(BusPath busPath) {
+        if (busPath == null) {
+            return String.valueOf("");
+        }
+        List<BusStep> busSetps = busPath.getSteps();
+        if (busSetps == null) {
+            return String.valueOf("");
+        }
+        StringBuffer sb = new StringBuffer();
+        for (BusStep busStep : busSetps) {
+            if (busStep.getBusLines().size() > 0) {
+                RouteBusLineItem busline = busStep.getBusLines().get(0);
+                if (busline == null) {
+                    continue;
+                }
+                String buslineName = getSimpleBusLineName(busline.getBusLineName());
+                sb.append(buslineName);
+                sb.append(" > ");
+            }
+            if (busStep.getRailway() != null) {
+                RouteRailwayItem railway = busStep.getRailway();
+                sb.append(railway.getTrip() + "(" + railway.getDeparturestop().getName()
+                        + " - " + railway.getArrivalstop().getName() + ")");
+                sb.append(" > ");
+            }
+        }
+        return sb.substring(0, sb.length() - 3);
+    }
+
+    public static String getBusPathDes(BusPath busPath) {
+        if (busPath == null) {
+            return String.valueOf("");
+        }
+        long second = busPath.getDuration();
+        String time = getFriendlyTime((int) second);
+        float subDistance = busPath.getDistance();
+        String subDis = getFriendlyLength((int) subDistance);
+        float walkDistance = busPath.getWalkDistance();
+        String walkDis = getFriendlyLength((int) walkDistance);
+        return String.valueOf(time + " | " + subDis + " | 步行" + walkDis);
+    }
+
+    public static String getSimpleBusLineName(String busLineName) {
+        if (busLineName == null) {
+            return String.valueOf("");
+        }
+        return busLineName.replaceAll("\\(.*?\\)", "");
+    }
+
+
+}

+ 217 - 0
gaode/src/main/java/com/quansu/gaode/utils/RouteOverlay.java

@@ -0,0 +1,217 @@
+package com.quansu.gaode.utils;
+
+import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.Color;
+
+import com.amap.api.maps.AMap;
+import com.amap.api.maps.CameraUpdateFactory;
+import com.amap.api.maps.model.BitmapDescriptor;
+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.Marker;
+import com.amap.api.maps.model.MarkerOptions;
+import com.amap.api.maps.model.Polyline;
+import com.amap.api.maps.model.PolylineOptions;
+import com.quansu.gaode.R;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+public class RouteOverlay {
+	protected List<Marker> stationMarkers = new ArrayList<Marker>();
+	protected List<Polyline> allPolyLines = new ArrayList<Polyline>();
+	protected Marker startMarker;
+	protected Marker endMarker;
+	protected LatLng startPoint;
+	protected LatLng endPoint;
+	protected AMap mAMap;
+	private Context mContext;
+	private Bitmap startBit, endBit, busBit, walkBit, driveBit;
+	protected boolean nodeIconVisible = true;
+
+	public RouteOverlay(Context context) {
+		mContext = context;
+	}
+
+	/**
+	 * 去掉BusRouteOverlay上所有的Marker。
+	 * @since V2.1.0
+	 */
+	public void removeFromMap() {
+		if (startMarker != null) {
+			startMarker.remove();
+
+		}
+		if (endMarker != null) {
+			endMarker.remove();
+		}
+		for (Marker marker : stationMarkers) {
+			marker.remove();
+		}
+		for (Polyline line : allPolyLines) {
+			line.remove();
+		}
+		destroyBit();
+	}
+
+	private void destroyBit() {
+		if (startBit != null) {
+			startBit.recycle();
+			startBit = null;
+		}
+		if (endBit != null) {
+			endBit.recycle();
+			endBit = null;
+		}
+		if (busBit != null) {
+			busBit.recycle();
+			busBit = null;
+		}
+		if (walkBit != null) {
+			walkBit.recycle();
+			walkBit = null;
+		}
+		if (driveBit != null) {
+			driveBit.recycle();
+			driveBit = null;
+		}
+	}
+	/**
+	 * 给起点Marker设置图标,并返回更换图标的图片。如不用默认图片,需要重写此方法。
+	 * @return 更换的Marker图片。
+	 * @since V2.1.0
+	 */
+	protected BitmapDescriptor getStartBitmapDescriptor() {
+		return BitmapDescriptorFactory.fromResource(R.drawable.amap_start);
+	}
+	/**
+	 * 给终点Marker设置图标,并返回更换图标的图片。如不用默认图片,需要重写此方法。
+	 * @return 更换的Marker图片。
+	 * @since V2.1.0
+	 */
+	protected BitmapDescriptor getEndBitmapDescriptor() {
+		return BitmapDescriptorFactory.fromResource(R.drawable.amap_end);
+	}
+	/**
+	 * 设置图标,并返回更换图标的图片。如不用默认图片,需要重写此方法。
+	 * @return 更换的Marker图片。
+	 * @since V2.1.0
+	 */
+	protected BitmapDescriptor getBusBitmapDescriptor() {
+		return BitmapDescriptorFactory.fromResource(R.drawable.amap_bus);
+	}
+	/**
+	 * 设置图标,并返回更换图标的图片。如不用默认图片,需要重写此方法。
+	 * @return 更换的Marker图片。
+	 * @since V2.1.0
+	 */
+	protected BitmapDescriptor getWalkBitmapDescriptor() {
+		return BitmapDescriptorFactory.fromResource(R.drawable.amap_man);
+	}
+
+	protected BitmapDescriptor getDriveBitmapDescriptor() {
+		return BitmapDescriptorFactory.fromResource(R.drawable.amap_car);
+	}
+
+	protected void addStartAndEndMarker() {
+		startMarker = mAMap.addMarker((new MarkerOptions())
+				.position(startPoint).icon(getStartBitmapDescriptor())
+				.title("\u8D77\u70B9"));
+		// startMarker.showInfoWindow();
+
+		endMarker = mAMap.addMarker((new MarkerOptions()).position(endPoint)
+				.icon(getEndBitmapDescriptor()).title("\u7EC8\u70B9"));
+		// mAMap.moveCamera(CameraUpdateFactory.newLatLngZoom(startPoint,
+		// getShowRouteZoom()));
+	}
+	/**
+	 * 移动镜头到当前的视角。
+	 * @since V2.1.0
+	 */
+	public void zoomToSpan() {
+		if (startPoint != null) {
+			if (mAMap == null)
+				return;
+			try {
+				LatLngBounds bounds = getLatLngBounds();
+				mAMap.animateCamera(CameraUpdateFactory
+						.newLatLngBounds(bounds, 50));
+			} catch (Throwable e) {
+				e.printStackTrace();
+			}
+		}
+	}
+
+	protected LatLngBounds getLatLngBounds() {
+		LatLngBounds.Builder b = LatLngBounds.builder();
+		b.include(new LatLng(startPoint.latitude, startPoint.longitude));
+		b.include(new LatLng(endPoint.latitude, endPoint.longitude));
+		return b.build();
+	}
+	/**
+	 * 路段节点图标控制显示接口。
+	 * @param visible true为显示节点图标,false为不显示。
+	 * @since V2.3.1
+	 */
+	public void setNodeIconVisibility(boolean visible) {
+		try {
+			nodeIconVisible = visible;
+			if (this.stationMarkers != null && this.stationMarkers.size() > 0) {
+				for (int i = 0; i < this.stationMarkers.size(); i++) {
+					this.stationMarkers.get(i).setVisible(visible);
+				}
+			}
+		} catch (Throwable e) {
+			e.printStackTrace();
+		}
+	}
+	
+	protected void addStationMarker(MarkerOptions options) {
+		if(options == null) {
+			return;
+		}
+		Marker marker = mAMap.addMarker(options);
+		if(marker != null) {
+			stationMarkers.add(marker);
+		}
+		
+	}
+
+	protected void addPolyLine(PolylineOptions options) {
+		if(options == null) {
+			return;
+		}
+		Polyline polyline = mAMap.addPolyline(options);
+		if(polyline != null) {
+			allPolyLines.add(polyline);
+		}
+	}
+
+	/***
+	 * 线的宽度
+	 * @return
+     */
+	protected float getRouteWidth() {
+		return 15f;
+	}
+
+	protected int getWalkColor() {
+		return Color.parseColor("#6db74d");
+	}
+
+	/**
+	 * 自定义路线颜色。
+	 * return 自定义路线颜色。
+	 * @since V2.2.1
+	 */
+	protected int getBusColor() {
+		return Color.parseColor("#537edc");
+	}
+
+	protected int getDriveColor() {
+		return Color.parseColor("#537edc");
+	}
+}

+ 114 - 0
gaode/src/main/java/com/quansu/gaode/utils/WalkRouteOverlay.java

@@ -0,0 +1,114 @@
+package com.quansu.gaode.utils;
+
+import android.content.Context;
+import android.graphics.Color;
+
+import com.amap.api.maps.AMap;
+import com.amap.api.maps.model.BitmapDescriptor;
+import com.amap.api.maps.model.LatLng;
+import com.amap.api.maps.model.MarkerOptions;
+import com.amap.api.maps.model.PolylineOptions;
+import com.amap.api.services.core.LatLonPoint;
+import com.amap.api.services.route.WalkPath;
+import com.amap.api.services.route.WalkStep;
+
+import java.util.List;
+
+
+public class WalkRouteOverlay extends RouteOverlay {
+
+    private PolylineOptions mPolylineOptions;
+
+    private BitmapDescriptor walkStationDescriptor= null;
+
+    private WalkPath walkPath;
+	public WalkRouteOverlay(Context context, AMap amap, WalkPath path,
+                            LatLonPoint start, LatLonPoint end) {
+		super(context);
+		this.mAMap = amap;
+		this.walkPath = path;
+		startPoint = AMapServicesUtil.convertToLatLng(start);
+		endPoint = AMapServicesUtil.convertToLatLng(end);
+	}
+	/**
+	 * 添加路线到地图中。
+	 * @since V2.1.0
+	 */
+    public void addToMap() {
+
+        initPolylineOptions();
+        try {
+            List<WalkStep> walkPaths = walkPath.getSteps();
+            mPolylineOptions.add(startPoint);
+            for (int i = 0; i < walkPaths.size(); i++) {
+                WalkStep walkStep = walkPaths.get(i);
+                LatLng latLng = AMapServicesUtil.convertToLatLng(walkStep
+                        .getPolyline().get(0));
+                
+				addWalkStationMarkers(walkStep, latLng);
+                addWalkPolyLines(walkStep);
+               
+            }
+            mPolylineOptions.add(endPoint);
+            addStartAndEndMarker();
+
+            showPolyline();
+        } catch (Throwable e) {
+            e.printStackTrace();
+        }
+    }
+	
+
+    /**
+     * @param walkStep
+     */
+    private void addWalkPolyLines(WalkStep walkStep) {
+        mPolylineOptions.addAll(AMapServicesUtil.convertArrList(walkStep.getPolyline()));
+    }
+
+    /**
+     * @param walkStep
+     * @param position
+     */
+    private void addWalkStationMarkers(WalkStep walkStep, LatLng position) {
+        addStationMarker(new MarkerOptions()
+                .position(position)
+                .title("\u65B9\u5411:" + walkStep.getAction()
+                        + "\n\u9053\u8DEF:" + walkStep.getRoad())
+                .snippet(walkStep.getInstruction()).visible(nodeIconVisible)
+                .anchor(0.5f, 0.5f).icon(walkStationDescriptor));
+    }
+
+    /**
+     * 初始化线段属性
+     */
+    private void initPolylineOptions() {
+
+        if(walkStationDescriptor == null) {
+            walkStationDescriptor = getWalkBitmapDescriptor();
+        }
+        mPolylineOptions = null;
+        mPolylineOptions = new PolylineOptions();
+        mPolylineOptions.setDottedLine(false);//设置是否为虚线
+        mPolylineOptions.geodesic(false);//是否为大地曲线
+        mPolylineOptions.visible(true);//线段是否可见
+        mPolylineOptions.useGradient(false);//设置线段是否使用渐变色
+        //设置线颜色,宽度
+        mPolylineOptions.color(getWalkColor()).width(getRouteWidth());
+
+    }
+
+
+    private void showPolyline() {
+        addPolyLine(mPolylineOptions);
+    }
+
+	/***
+	 * 轨迹颜色修改
+	 * 默认颜色在父类中
+	 * @return
+	 */
+	public int getWalkColor() {
+		return Color.parseColor("#E62BCA");
+	}
+}

BIN
gaode/src/main/res/drawable-xxhdpi/amap_bus.png


BIN
gaode/src/main/res/drawable-xxhdpi/amap_car.png


BIN
gaode/src/main/res/drawable-xxhdpi/amap_end.png


BIN
gaode/src/main/res/drawable-xxhdpi/amap_enter.webp


BIN
gaode/src/main/res/drawable-xxhdpi/amap_man.png


BIN
gaode/src/main/res/drawable-xxhdpi/amap_out.webp


BIN
gaode/src/main/res/drawable-xxhdpi/amap_start.png


BIN
gaode/src/main/res/drawable-xxhdpi/end.png


BIN
gaode/src/main/res/drawable-xxhdpi/start.png


+ 117 - 0
gaode/src/main/res/layout/map_layout.xml

@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:orientation="horizontal"
+        android:gravity="center_vertical"
+        android:layout_height="50dp">
+        <ImageView
+            android:id="@+id/img_back"
+            android:layout_width="20dp"
+            android:src="@drawable/ic_back_black"
+            android:layout_marginStart="15dp"
+            android:layout_height="20dp"/>
+
+
+         <TextView
+             android:layout_width="match_parent"
+             android:layout_marginEnd="35dp"
+             android:text="轨迹信息"
+             android:gravity="center"
+             android:textSize="20sp"
+             android:textColor="#26292F"
+             android:layout_height="wrap_content"/>
+        
+        
+        
+    </LinearLayout>
+
+
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="1dp"
+        android:background="#E3E4E5" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="25dp"
+        android:orientation="horizontal"
+        android:paddingStart="19dp"
+        android:paddingEnd="18dp">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="发货位置"
+            android:textColor="#636465"
+            android:textSize="15sp" />
+
+        <TextView
+            android:id="@+id/tv_start"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:gravity="right"
+            android:textColor="#26292F"
+            android:textSize="15sp"
+            tools:text="山东省 临沂市 河东区" />
+
+        <ImageView
+            android:layout_width="17dp"
+            android:layout_height="22dp"
+            android:layout_marginStart="7dp"
+            android:src="@drawable/amap_out" />
+
+
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="19dp"
+        android:layout_marginBottom="26dp"
+        android:orientation="horizontal"
+        android:paddingStart="19dp"
+        android:paddingEnd="18dp">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="卸货位置"
+            android:textColor="#636465"
+            android:textSize="15sp" />
+
+        <TextView
+            android:id="@+id/tv_end"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:gravity="right"
+            android:textColor="#26292F"
+            android:textSize="15sp"
+            tools:text="山东省 临沂市 河东区" />
+
+        <ImageView
+            android:layout_width="17dp"
+            android:layout_height="22dp"
+            android:layout_marginStart="7dp"
+            android:src="@drawable/amap_enter" />
+
+
+    </LinearLayout>
+
+
+    <com.amap.api.maps.MapView
+        android:id="@+id/map"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"/>
+
+
+</LinearLayout>

+ 2 - 0
gaode/src/main/res/values/strings.xml

@@ -8,4 +8,6 @@
     <string name="no_data">暂无数据</string>
     <string name="more">加载中</string>
     <string name="d">图片描述</string>
+    <string name="no_result">对不起,没有搜索到相关数据!</string>
+
 </resources >