編輯:關於Android編程
前段時間做了一陣百度地圖的內容,還未來的及總結,很快有些問題及解決辦法都忘了,現在記錄下之前比較糾結的問題,分享如下
如題,現在的導航SDK2.0的導航發起函數如下
public boolean launchNavigator(Activity activity, java.util.Listnodes, int preference, boolean isGPSNav, BaiduNaviManager.RoutePlanListener listener)
文檔給出的參數釋義如下:
activity
- 建議是應用的主Activitynodes
- 傳入的算路節點,順序是起點、途經點、終點,其中途經點最多三個,參考 BNRoutePlanNodepreference
- 算路偏好,參考RoutePlanPreference定義isGPSNav
- true表示真實GPS導航,false表示模擬導航listener
- 開始導航回調監聽器,在該監聽器裡一般是進入導航過程頁面
取文檔的釋義如下:
public BNRoutePlanNode(double longitude, double latitude, java.lang.String name, java.lang.String description, BNRoutePlanNode.CoordinateType coType)算路節點構造方法.
longitude
- 經度latitude
- 緯度name
- 算路節點名description
- 算路節點地址描述coType
- 坐標類型,參考 CoordinateType 可見現在對於算路節點的坐標類型有了一個標准,也即
BD09_MC
百度墨卡托坐標
GCJ02
國測局坐標
WGS84
GPS坐標
坐標類型必須為以上三種,否則如果不指定或者默認匹配不到這三種坐標類型則都會導致算路失敗。
以此希望可以幫到尚不明白如何轉換的同學!
部分代碼如下:
// 發起算路 private void startCalcRoute(int calcMode) { // 顯示加載對話框 DialogUtil.getInstance().showProgressDialog(mActivity); if (mBdLocation == null) { Toast.makeText(this, getString(R.string.map_location_failed), Toast.LENGTH_LONG).show(); // 取消加載對話框 DialogUtil.getInstance().dismissProgressDialog(); return; } if (calcMode == 0) calcMode = BaiduNaviManager.RoutePlanPreference.ROUTE_PLAN_MOD_AVOID_TAFFICJAM; double sX = 0, sY = 0, eX = 0, eY = 0; sX = LocationClient.getBDLocationInCoorType(mBdLocation, BDLocation.BDLOCATION_BD09LL_TO_GCJ02).getLatitude(); sY = LocationClient.getBDLocationInCoorType(mBdLocation, BDLocation.BDLOCATION_BD09LL_TO_GCJ02).getLongitude(); BNRoutePlanNode startNode = new BNRoutePlanNode(sY, sX, 我的位置, 我的位置);
BDLocation bd = new BDLocation(); bd.setLatitude(destLat); bd.setLongitude(destLng); eX = LocationClient.getBDLocationInCoorType(bd, BDLocation.BDLOCATION_BD09LL_TO_GCJ02).getLatitude(); eY = LocationClient.getBDLocationInCoorType(bd, BDLocation.BDLOCATION_BD09LL_TO_GCJ02).getLongitude(); BNRoutePlanNode endNode = new BNRoutePlanNode(eY, eX, strDestAddress, strDestAddress); ArrayListnodeList = new ArrayList (2); nodeList.add(startNode); nodeList.add(endNode); BaiduNaviManager.getInstance().launchNavigator(mActivity, nodeList, calcMode, true, new MapRoutePlanListener(startNode)); }
.jni.h文件 : 了解 JNI 需要配合 jni.h 文件, jni.h 是 Google NDK 中的一個文件, 位置是 $/android-ndk-r9d/pla
android提供了四類常用的對話框,本文分享具體實現方法: 1.AlertDialog,功能最豐富,實際運用最廣泛 2.progressDialog,進度條對
這是在了解下拉刷新功能原理下的產物,下拉刷新可以說是國產APP裡面必有的功能,連Google都為此出了SwipeRefreshLayout,一種MD風格的下拉刷新。 不過
首先來看看效果圖:1,SweepGradient(梯度渲染)public SweepGradient (float cx, float cy, int[] colors,