Mad 32
Mad 32
: 2215770085
Roll No.: 14 Batch No.: T1
<androidx.fragment.app.FragmentContainerView
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<EditText
android:id="@+id/origin_edittext"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:hint="@string/enter_origin"
android:imeOptions="actionDone"
android:inputType="text"
android:minHeight="48dp"
android:textColorHint="#546E7A"
android:autofillHints=""
tools:ignore="VisualLintTextFieldSize" />
<EditText
android:id="@+id/destination_edittext"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:hint="@string/enter_destination"
android:imeOptions="actionDone"
android:inputType="text"
android:minHeight="48dp"
android:textColorHint="#546E7A"
android:autofillHints=""
tools:ignore="VisualLintTextFieldSize" />
<Button
android:id="@+id/draw_route_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/draw_route"
android:layout_gravity="center_horizontal"
android:layout_marginTop="16dp"
android:layout_marginBottom="16dp"/>
</LinearLayout>
MainActivity.java:
package com.example.route;
import android.graphics.Color;
import android.location.Address;
import android.location.Geocoder;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
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.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
import com.google.android.gms.maps.model.PolylineOptions;
import java.util.List;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
originEditText = findViewById(R.id.origin_edittext);
destinationEditText = findViewById(R.id.destination_edittext);
Button drawRouteButton = findViewById(R.id.draw_route_button);
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(originLatLng, 10));
mMap.addPolyline(new PolylineOptions()
.add(originLatLng, destinationLatLng)
.width(5)
.color(Color.RED));
}
}
try {
address = coder.getFromLocationName(strAddress, 5);
if (address == null) {
return null;
}
Address location = address.get(0);
latLng = new LatLng(location.getLatitude(), location.getLongitude());
} catch (Exception ex) {
ex.printStackTrace();
}
return latLng;
}
@Override
public void onMapReady(@NonNull GoogleMap googleMap) {
mMap = googleMap;
}
}
AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Route"
tools:targetApi="31">
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</manifest>
Build.gradle:
dependencies {
implementation libs.appcompat
implementation libs.material
implementation libs.activity
implementation libs.constraintlayout
implementation libs.play.services.maps
implementation libs.play.services.location
testImplementation libs.junit
androidTestImplementation libs.ext.junit
androidTestImplementation libs.espresso.core
}: