日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

关于Android高德地图路线规划的学习

發(fā)布時(shí)間:2023/12/14 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于Android高德地图路线规划的学习 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

其實(shí)一開始我是懵逼的
后來看了demo的源碼才磕磕絆絆的做了出來。

線路規(guī)劃屬于Android地圖SDK。
首先是流程,要有一個(gè)MainActivity主類,布局里面有MapView、點(diǎn)擊規(guī)劃路線的按鈕以及顯示規(guī)劃結(jié)果布局。
然后是一個(gè)設(shè)置規(guī)劃樣式的工具類。
首先:

布局的代碼

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><includeandroid:id="@+id/shop_detail_title"layout="@layout/common_title_layout" /><Buttonandroid:id="@+id/shop_detail_rode"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_below="@+id/shop_detail_title"android:text="規(guī)劃路線" /><com.amap.api.maps.MapViewandroid:id="@+id/g_map"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_below="@+id/shop_detail_rode" /><RelativeLayoutandroid:id="@+id/bottom_layout"android:layout_width="match_parent"android:layout_height="70dp"android:layout_alignParentBottom="true"android:background="@drawable/bg_bottom_bar"android:gravity="center_vertical"android:padding="5dp"android:visibility="gone"><TextViewandroid:id="@+id/firstline"android:layout_width="wrap_content"android:layout_height="35dp"android:layout_marginLeft="12dp"android:singleLine="true"android:textColor="#333333"android:textSize="16sp" /><TextViewandroid:id="@+id/secondline"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@+id/firstline"android:layout_marginLeft="12dp"android:gravity="right"android:singleLine="true"android:textColor="#999999"android:textSize="13sp"android:visibility="gone" /><LinearLayoutandroid:id="@+id/detail"android:layout_width="wrap_content"android:layout_height="35dp"android:layout_alignParentRight="true"android:layout_marginRight="10dp"android:gravity="center_vertical"android:orientation="horizontal"><TextViewandroid:layout_width="wrap_content"android:layout_height="match_parent"android:gravity="center_vertical"android:text="詳情"android:textColor="@color/blue"android:textSize="14sp" /><Buttonandroid:layout_width="7dp"android:layout_height="13dp"android:layout_marginLeft="4dp"android:background="@drawable/arrow_right_blue"android:gravity="center_vertical" /></LinearLayout></RelativeLayout></RelativeLayout>

我們現(xiàn)在有了規(guī)劃路線的點(diǎn)擊按鈕、顯示地圖的MapView和顯示規(guī)劃文字詳情結(jié)果bottom_layout。
下面構(gòu)建MainActivity類。我就不貼完整的代碼了,太麻煩,貼些核心的吧。
首先是聲明一些必要的東西:

private AMap aMap; private Context mContext; // 搜索類 private RouteSearch mRouteSearch; // 搜索結(jié)果類 private DriveRouteResult mDriveRouteResult; // 起點(diǎn) private LatLonPoint mStartPoint = new LatLonPoint(38.3066333311, 116.7742073536); // 終點(diǎn) private LatLonPoint mEndPoint = new LatLonPoint(39.3066333311, 116.7742073536);

眾所周知,要重寫生命周期的一些方法:

@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);mContext = this.getApplicationContext();mMapView.onCreate(savedInstanceState);}@Overrideprotected void onDestroy() {super.onDestroy();//在activity執(zhí)行onDestroy時(shí)執(zhí)行mMapView.onDestroy(),銷毀地圖mMapView.onDestroy();}@Overrideprotected void onResume() {super.onResume();//在activity執(zhí)行onResume時(shí)執(zhí)行mMapView.onResume (),重新繪制加載地圖mMapView.onResume();}@Overrideprotected void onPause() {super.onPause();//在activity執(zhí)行onPause時(shí)執(zhí)行mMapView.onPause (),暫停地圖的繪制mMapView.onPause();}@Overrideprotected void onSaveInstanceState(Bundle outState) {super.onSaveInstanceState(outState);//在activity執(zhí)行onSaveInstanceState時(shí)執(zhí)行mMapView.onSaveInstanceState (outState),保存地圖當(dāng)前的狀態(tài)mMapView.onSaveInstanceState(outState);}

然后是執(zhí)行規(guī)劃,當(dāng)然了,實(shí)現(xiàn)一些監(jiān)聽接口:

if (aMap == null) {aMap = mMapView.getMap(); } // 注冊監(jiān)聽 aMap.setOnMapClickListener(this); aMap.setOnMarkerClickListener(this); mRouteSearch = new RouteSearch(this); mRouteSearch.setRouteSearchListener(this); // 規(guī)劃路線 RouteSearch.FromAndTo fromAndTo = new RouteSearch.FromAndTo(mStartPoint, mEndPoint); // 起點(diǎn)終點(diǎn),駕車模式,途徑點(diǎn),避讓區(qū)域,避讓道路 RouteSearch.DriveRouteQuery query = new RouteSearch.DriveRouteQuery(fromAndTo, RouteSearch.DrivingDefault, null, null, ""); mRouteSearch.calculateDriveRouteAsyn(query);// 異步路線規(guī)劃駕駛模式查詢

到這里都不難,或者說不復(fù)雜。下面就是解析返回的規(guī)劃結(jié)果。

總結(jié)

以上是生活随笔為你收集整理的关于Android高德地图路线规划的学习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。