如何以编程方式在Android中的内置地图上显示路线

时间:2013-07-11 07:51:43

标签: android android-mapview android-maps

在全天消费后,我找到了这个问题的解决方案:

如何使用经度/纬度或使用地址在 InBuilt MAP 中显示从一个当前位置到另一个位置的路线?

愿它对你有所帮助。

1 个答案:

答案 0 :(得分:0)

为Button创建布局文件:

<强> layout.xml

<Button
    android:id="@+id/showMap"
    android:layout_width="@dimen/visit_button_width"
    android:layout_height="wrap_content"
    android:layout_marginTop="25dp"
    android:background="@drawable/login_button_selector"
    android:text="@string/title_show_map"
    android:textColor="@color/white"
    android:textSize="@dimen/button_text_size" />
Button的

onClick 事件:

    ((Button)findViewById(R.id.showMap)).setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub

        /* Check Internet Connection */
        if(InternetConnection.checkConnection(context))
        {
            /** PROCESS for Get Longitude and Latitude **/
            locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);

            // getting GPS status
            isGPSEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
            Log.d("msg", "GPS:"+isGPSEnabled);

            // check if GPS enabled     
            if(isGPSEnabled){
                Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);

                if(location != null)
                {
                    longitude = String.valueOf(location.getLongitude());
                    latitude = String.valueOf(location.getLatitude());
                }

                //Add your Full Address Here
                String fullAddress = pref.getString("fulladdress", ""); 
                Log.d("msg", ""+fullAddress);

                Intent intent = new Intent(Intent.ACTION_VIEW, 
                        Uri.parse("http://maps.google.com/maps?f=d&daddr="+fullAddress));
                intent.setComponent(new ComponentName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity"));
                startActivity(intent);

            }else{
                showAlertforGPS();
            }
        }else
        {
            AlertDialog.Builder alertDialog = new AlertDialog.Builder(VisitAcitivity.this);

            // Setting Dialog Title
            alertDialog.setTitle("Internet Settings");

            // Setting Dialog Message
            alertDialog.setMessage("Internet Connection Not Available, Do you want to Connect?");

            // On pressing Settings button
            alertDialog.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog,int which) {
                    startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS));
                }
            });

            // on pressing cancel button
            alertDialog.setNegativeButton("No", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    dialog.cancel();
                }
            });

            // Showing Alert Message
            alertDialog.show();
        }
    }
});

AndroidManifest.xml 中添加此权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

您可以询问是否有任何疑问......