Vous êtes sur la page 1sur 4

package com.example.hp.

track_car4;

import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.support.v4.app.FragmentActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import com.directions.route.AbstractRouting;
import com.directions.route.Route;
import com.directions.route.RouteException;
import com.directions.route.Routing;
import com.directions.route.RoutingListener;
import com.example.hp.track_car4.directionhelpers.TaskLoadedCallback;
import com.google.android.gms.maps.CameraUpdate;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
import com.google.android.gms.maps.model.Polyline;
import com.google.android.gms.maps.model.PolylineOptions;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;

import com.example.hp.track_car4.directionhelpers.FetchURL;

import java.util.ArrayList;
import java.util.List;

import static java.sql.DriverManager.println;

public class MapsActivity extends FragmentActivity implements


OnMapReadyCallback,RoutingListener{

private GoogleMap mMap;

TextView routeTV,distance,duration;

MarkerOptions p1,p2,place1,place2;
private List<Polyline> polylines;
private static final int[] COLORS = new int[]
{R.color.colorPrimary,R.color.primary_dark_material_light};

@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.mainlayout);
// Obtain the SupportMapFragment and get notified when the map is ready to
be used.
SupportMapFragment mapFragment = (SupportMapFragment)
getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
polylines=new ArrayList<>();

routeTV=findViewById(R.id.route);
distance=findViewById(R.id.distance);
duration=findViewById(R.id.duration);

LatLng latLng = new LatLng(31, -9.68);


p1=new MarkerOptions().position(latLng);
p2=new MarkerOptions().position(latLng);
place1 = new MarkerOptions().position(new LatLng(27.658143,
85.3199503)).title("Location 1");
place2 = new MarkerOptions().position(new LatLng(27.667491,
85.3208583)).title("Location 2");
getRoute(place2.getPosition());

@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
mMap.addMarker(place1);
mMap.addMarker(place2);
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new
LatLng(place1.getPosition().latitude, place1.getPosition().longitude), 15.0f));
}

@Override
public void onRoutingFailure(RouteException e) {
if(e != null) {
Toast.makeText(this, "Error: " + e.getMessage(),
Toast.LENGTH_LONG).show();
}else {
Toast.makeText(this, "Something went wrong, Try again",
Toast.LENGTH_SHORT).show();
}
}

@Override
public void onRoutingStart() {

}
@Override
public void onRoutingSuccess(ArrayList<Route> route, int shortestRouteIndex)
{

CameraUpdate center = CameraUpdateFactory.newLatLng(place1.getPosition());


CameraUpdate zoom = CameraUpdateFactory.zoomTo(15.0f);

mMap.moveCamera(center);

if(polylines.size()>0) {
for (Polyline poly : polylines) {
poly.remove();
}
}

polylines = new ArrayList<>();


//add route(s) to the map.
for ( int i = 0; i <route.size(); i++) {

//In case of more than 5 alternative routes


int colorIndex = i % COLORS.length;

PolylineOptions polyOptions = new PolylineOptions();


polyOptions.color(getResources().getColor(COLORS[colorIndex]));
polyOptions.width(10 + i * 3);
polyOptions.addAll(route.get(i).getPoints());
Polyline polyline = mMap.addPolyline(polyOptions);
polylines.add(polyline);

String str_route=String.valueOf(i+1);
routeTV.setText("Routes: "+str_route);
String str_distance=String.valueOf(route.get(i).getDistanceValue());
distance.setText("Distance: "+str_distance);
String str_duration=String.valueOf(route.get(i).getDurationValue());
duration.setText("Duration: "+str_duration);
//Toast.makeText(getApplicationContext(),"Route "+ (i+1) +": distance -
"+ route.get(i).getDistanceValue()+": duration - "+
route.get(i).getDurationValue(),Toast.LENGTH_SHORT).show();
}

// Start marker
MarkerOptions options = new MarkerOptions();
options.position(place1.getPosition());

//options.icon(BitmapDescriptorFactory.fromResource(R.drawable.common_full_open_on_
phone));
mMap.addMarker(options);

// End marker
options = new MarkerOptions();
options.position(place2.getPosition());

//options.icon(BitmapDescriptorFactory.fromResource(R.drawable.common_google_signin
_btn_icon_dark));
mMap.addMarker(options);

mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new
LatLng(place1.getPosition().latitude, place1.getPosition().longitude), 15.0f));
}

@Override
public void onRoutingCancelled() {
Toast.makeText(getApplicationContext(),"Route "
,Toast.LENGTH_SHORT).show();

public void getRoute(LatLng end)


{

Routing routing = new Routing.Builder()


.travelMode(AbstractRouting.TravelMode.DRIVING)
.withListener(this)
.alternativeRoutes(true)
.waypoints(place1.getPosition(), end)
.key("AIzaSyBc6qGUA8jBSkHOWsCFAhAkYzdeNMzXs4g")
.build();
routing.execute();
}
}

Vous aimerez peut-être aussi