Search code examples
androidandroid-mapviewandroid-maps

How to show route on Inbuilt Map in Android Programmatically


After Full day Spending, I Found the solution to this Question:

How to show route on InBuilt MAP from one current place to another place using longitude/latitude or using Address?

May it is helpful to you.


Solution

  • Create layout file for 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" />
    

    onClick event of Button:

        ((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();
            }
        }
    });
    

    In AndroidManifest.xml put this permission:

    <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" />
    

    You can ask if Any Question...