調起Android百度地圖客戶端之導航功能

jopen 11年前發布 | 131K 次閱讀 百度地圖 Android開發 移動開發

該Demo的意思就是通過該程序去調起手機上已安裝了的百度地圖android客戶端來進行導航,其實,個人覺得該功能實際意義不大,因為如果手機上已安裝了百度地圖客戶端,我們可以直接就使用它進行導航,該程序只是負責去調起百度地圖客戶端的導航功能,而本程序并不任何導航功能,不過了解一下怎么調用也好,代碼如下:

Activity:

package com.home;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

import com.baidu.mapapi.navi.BaiduMapAppNotSupportNaviException;
import com.baidu.mapapi.navi.BaiduMapNavigation;
import com.baidu.mapapi.navi.NaviPara;
import com.baidu.platform.comapi.basestruct.GeoPoint;

public class NaviActivity extends Activity {

    // 天安門坐標
    double mLat1 = 39.915291;
    double mLon1 = 116.403857;
    // 百度大廈坐標
    double mLat2 = 40.056858;
    double mLon2 = 116.308194;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_navi_demo);
        TextView text = (TextView) findViewById(R.id.navi_info);
        text.setText(String.format("起點:(%f,%f)\n終點:(%f,%f)", mLat1, mLon1,
                mLat2, mLon2));
    }

    /**
     * 開始導航
     * 
     * @param view
     */
    public void startNavi(View view) {
        int lat = (int) (mLat1 * 1E6);
        int lon = (int) (mLon1 * 1E6);
        GeoPoint pt1 = new GeoPoint(lat, lon);
        lat = (int) (mLat2 * 1E6);
        lon = (int) (mLon2 * 1E6);
        GeoPoint pt2 = new GeoPoint(lat, lon);
        // 構建 導航參數
        NaviPara para = new NaviPara();
        para.startPoint = pt1;
        para.startName = "從這里開始";
        para.endPoint = pt2;
        para.endName = "到這里結束";

        try {

            BaiduMapNavigation.openBaiduMapNavi(para, this);

        } catch (BaiduMapAppNotSupportNaviException e) {
            e.printStackTrace();
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setMessage("您尚未安裝百度地圖app或app版本過低,點擊確認安裝?");
            builder.setTitle("提示");
            builder.setPositiveButton("確認", new OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
                    BaiduMapNavigation.GetLatestBaiduMapApp(NaviActivity.this);
                }
            });

            builder.setNegativeButton("取消", new OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
                }
            });

            builder.create().show();
        }
    }
}

布局XML:

<RelativeLayout 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:background="@android:color/white"
    tools:context=".NaviDemo" >

    <TextView
        android:id="@+id/navi_info"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:textColor="@android:color/black"
        android:textSize="16sp" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/navi_info"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="76dp"
        android:onClick="startNavi"
        android:text="開始導航" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/navi_info"
        android:layout_alignParentLeft="true"
        android:layout_marginBottom="57dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:text="@string/navi_tip"
        android:textColor="@android:color/black"
        android:textSize="16sp" />

</RelativeLayout>


String:navi_tip

<string name="navi_tip">本功能為調起百度地圖Android客戶端(V5.0及以上版本)的導航功能,用戶必須已安裝百度地圖客戶端,如果沒有安裝則提示用戶下載安裝百度地圖客戶端。</string>

附上圖片效果:

l1.png



l3.png

來自:http://blog.csdn.net/u010142437/article/details/11663485

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!