1. 程式人生 > >Android應用內開啟高德、百度、騰訊地圖app

Android應用內開啟高德、百度、騰訊地圖app

     最近在專案中需要地圖導航功能,但是匯入第三方地圖導航包的話,應用打出包後會很大,所以考慮到可以通過呼叫外部地圖應用來解決,參考了微信開啟外部地圖的做法,有了下面的解決辦法:

1.主要思路:通過高德、百度、騰訊提供的Uri開啟應用外部地圖app.

2.關鍵程式碼(以高德地圖為例):

/**
     * 開啟高德
     *
     * @param latitude
     * @param longitude
     */
    private static void openGaode(Activity activity, String title, double latitude, double longitude) {
        if (AppUtils.isAvilible("com.autonavi.minimap")) {
            Intent intent = new Intent();
            intent.setAction(Intent.ACTION_VIEW);
            intent.addCategory(Intent.CATEGORY_DEFAULT);

            //將功能Scheme以URI的方式傳入data
            Uri uri = Uri.parse("androidamap://route/plan/?dlat=" + latitude + "&dlon=" + longitude + "&dname=" + title + "&dev=0&t=0");
            intent.setData(uri);

            //啟動該頁面即可
            activity.startActivity(intent);
        } else {
            ToastUtils.showToast("您尚未安裝高德地圖");
            Uri uri = Uri.parse("market://details?id=com.autonavi.minimap");
            Intent intent = new Intent(Intent.ACTION_VIEW, uri);
            if (intent.resolveActivity(activity.getPackageManager()) != null) {
                activity.startActivity(intent);
            }
        }
    }

3.高德、百度、騰訊官方uri調起app文件傳送門:

4.需要注意的地方

        由於自己應用中整合的是高德地圖,用的是GCJ-02座標系(火星座標系),所以當開啟百度地圖時需要進行座標轉換,將火星座標系轉換成百度座標系BD09。 具體看程式碼: CoodinateCovertor.java