-2

What I want to do is just show driving routes to my Fragment Map when the Marker is Clicked.

This Tutorial is my source.

Right now the route only shows on OTHER app not in the myactivity layout. What I want to do is show the driving direction route in my fragment

Here is my MainActivity.Class

public class MainActivity extends ActionBarActivity implements GoogleMap.OnMarkerClickListener {

private LatLng Mark_Kantor_Gubernur = new LatLng(-0.9376155, 100.3600001);
private LatLng Mark_Bappeda_prov_Sumbar = new LatLng(-0.913884, 100.359176);

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //Getting Map From Google
    SupportMapFragment supportMapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.googleMap);
    googleMap = supportMapFragment.getMap();
    googleMap.setMyLocationEnabled(true);
    googleMap.getUiSettings().setCompassEnabled(true);
    googleMap.getUiSettings().setZoomControlsEnabled(true);
    googleMap.setTrafficEnabled(true);

    //Getting Location Based on Fused Location(GPS & Network)
    LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
    Criteria criteria = new Criteria();
    String bestProvider = locationManager.getBestProvider(criteria, true);
    Location location = locationManager.getLastKnownLocation(bestProvider);
    double latitude = location.getLatitude();
    double longitude = location.getLongitude();
    LatLng latLng = new LatLng(latitude, longitude);

    //Handle map when opened on first time
    googleMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
    googleMap.animateCamera(CameraUpdateFactory.zoomTo(13));


    //Setting UP Marker
    googleMap.addMarker(new MarkerOptions().position(Mark_Kantor_Gubernur)
                                           .title("Kantor Gubernur")
                                           .icon(BitmapDescriptorFactory.fromResource(R.drawable.marker_cp)));

    googleMap.addMarker(new MarkerOptions().position(Mark_Bappeda_prov_Sumbar)
                                           .title("Kantor Bappeda SUMBAR")
                                           .icon(BitmapDescriptorFactory
                                           .fromResource(R.drawable.marker_cp)));

    TextView locationTV = (TextView) findViewById(R.id.tvLatLongLocation);
    locationTV.setText("Latitude:" + latitude + ",Longitude:" + longitude);

    //Setting onclick marker & Direction to Marker
    googleMap.setOnMarkerClickListener(this);

}

@Override
public boolean onMarkerClick(Marker marker) {
    //you can handle marker click from here


    try {
        StringBuilder stringBuilder = new StringBuilder();
        String daddr = (String.valueOf(marker.getPosition().latitude)+","+String.valueOf(marker.getPosition().longitude));

        stringBuilder.append("http://maps.google.com/maps?f=d&hl=en");

        stringBuilder.append("&saddr="+String.valueOf(googleMap.getMyLocation().getLatitude())+","
                +String.valueOf(googleMap.getMyLocation().getLongitude()));

        stringBuilder.append("&daddr="+daddr);
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(stringBuilder.toString()));
        startActivity(intent);

    }catch (Exception ee)
        {
        Toast.makeText(getApplicationContext(), "Lokasi Saat Ini Belum Didapatkan, Coba Nyalakan GPS, Keluar Ruangan dan Tunggu Beberapa Saat", Toast.LENGTH_LONG).show();
        }
    return false;
}

I have looked at J2ME/Android/BlackBerry - Driving directions, Route Between Two Locations, Draw Route On Google Map but this is showing just straight lines between the users location and destination, what I want is driving route.

If I add this polyline code:

Polyline polyline = googleMap.addPolyline(new PolylineOptions().add(new LatLng(googleMap.getMyLocation().getLatitude(), googleMap.getMyLocation().getLongitude()),new LatLng(marker.getPosition().latitude, marker.getPosition().longitude)).width(2).color(Color.RED).geodesic(true));

It just shows straight lines in a Google map fragment

Note: Please include comments and an explanation on answer code, I'm very new in android and still learning.

Community
  • 1
  • 1
Syafenri Deputra
  • 127
  • 5
  • 15

1 Answers1

0

Selector elements should be placed in res\drawable. Right click on 'drawable', select 'new' then select 'Drawable resource file'. Name the file and you should be good to go.

PhilipBert
  • 25
  • 1
  • 3