Android 实现点击按钮 调用手机外部地图导航

//弹出Dialog 选择外部地图
    private void setMap(){
        final Dialog dia=new AlertDialog.Builder(mContext).create();

        View view=LayoutInflater.from(mContext).inflate(R.layout.dialog_map, null);

        dia.show();
        dia.getWindow().setContentView(view);


        TextView tv_baidu=(TextView) view.findViewById(R.id.tv_baidu);
        TextView tv_quxiao=(TextView) view.findViewById(R.id.tv_quxiao);
        TextView tv_gaode=(TextView) view.findViewById(R.id.tv_gaode);
     

//调用外部百度地图

  tv_baidu.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                baidu();
                dia.dismiss();
            }
        });

//调用外部高德地图
        tv_gaode.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                gaoDe();
                dia.dismiss();
            }
        });

//取消对话框
        tv_quxiao.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                dia.dismiss();
            }
        });
    }

//调用外部高德地图方法

private void gaoDe(){
        if (Contacts.isAvilible(mContext, "com.autonavi.minimap")) {
            try{  
                Intent intent = Intent.getIntent("androidamap://navi?sourceApplication=慧医&poiname=我的目的地&lat="+终点纬度+"&lon="+终点经度+"&dev=0");  
                mContext.startActivity(intent);   
            } catch (URISyntaxException e)  
            {e.printStackTrace(); } 
        }else{
            Toast.makeText(mContext, "您尚未安装高德地图", Toast.LENGTH_LONG).show();
            Uri uri = Uri.parse("market://details?id=com.autonavi.minimap");  
            Intent intent = new Intent(Intent.ACTION_VIEW, uri);   
            mContext.startActivity(intent);
        }

    }

    private void baidu(){
        //起点经纬度

LatLng sLatLng=new LatLng(Double.parseDouble(MyApp.getWeidu()),Double.parseDouble(MyApp.getJingdu()));
    //终点经纬度    

   LatLng eLatLng=new LatLng(Double.parseDouble(lat), Double.parseDouble(lng));

        RouteParaOption para = new RouteParaOption();
        para.startName("从这里开始");
        para.startPoint(sLatLng);
        para.endName(address);//起点位置
        para.endPoint(eLatLng);

        try {  
            BaiduMapRoutePlan.openBaiduMapDrivingRoute(para, this);
            //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 android.content.DialogInterface.OnClickListener() {  
                @Override  
                public void onClick(DialogInterface dialog, int which) {  
                    dialog.dismiss();  
                    OpenClientUtil.getLatestBaiduMapApp(mContext);
                    //BaiduMapNavigation.
                }  
            });  

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

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

 

//dialog 布局dialog_map


    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:background="@color/white"
    android:orientation="vertical" >

            android:id="@+id/tv_baidu"
        android:layout_width="200dp"
        android:layout_height="40dp"
        android:gravity="center"
        android:layout_gravity="center"
        android:text="百度地图"
        android:textColor="#006CD8"
        android:textSize="16sp" />
    
            android:layout_width="100dp"
        android:layout_height="0.5dp"
        android:background="@color/line"
        android:paddingLeft="5dp"
        android:layout_gravity="center_horizontal"
        android:paddingRight="5dp"
        />
            android:id="@+id/tv_gaode"
        android:layout_width="200dp"
        android:layout_height="40dp"
        android:gravity="center"
        android:layout_gravity="center"
        android:text="高德地图"
        android:textColor="#006CD8"
        android:textSize="16sp" />

            android:layout_width="match_parent"
        android:layout_height="0.5dp"
        android:background="@color/line" />

            android:layout_width="match_parent"
        android:layout_height="50dp"
        android:orientation="horizontal" >

                     android:id="@+id/tv_quxiao"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:text="取消"
            android:layout_gravity="center"
            android:textColor="#006CD8"
            android:textSize="18sp" />
   

转载于:https://my.oschina.net/u/2471738/blog/809442

你可能感兴趣的:(Android 实现点击按钮 调用手机外部地图导航)