Construct uri and launch google maps navigation
This commit is contained in:
@@ -1,7 +1,9 @@
|
|||||||
package com.example.busroute
|
package com.example.busroute
|
||||||
|
|
||||||
|
import android.content.Intent
|
||||||
import android.location.Address
|
import android.location.Address
|
||||||
import android.location.Geocoder
|
import android.location.Geocoder
|
||||||
|
import android.net.Uri
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.provider.BaseColumns
|
import android.provider.BaseColumns
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
@@ -9,10 +11,12 @@ import android.view.View
|
|||||||
import android.widget.AdapterView
|
import android.widget.AdapterView
|
||||||
import android.widget.AdapterView.OnItemSelectedListener
|
import android.widget.AdapterView.OnItemSelectedListener
|
||||||
import android.widget.ArrayAdapter
|
import android.widget.ArrayAdapter
|
||||||
|
import android.widget.Button
|
||||||
import android.widget.Spinner
|
import android.widget.Spinner
|
||||||
import android.widget.TableLayout
|
import android.widget.TableLayout
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
|
import com.example.busroute.DataClass.BusStop
|
||||||
import com.example.busroute.DataClass.PathList
|
import com.example.busroute.DataClass.PathList
|
||||||
import com.example.busroute.Database.DbHelper
|
import com.example.busroute.Database.DbHelper
|
||||||
import com.example.busroute.Database.PathContract
|
import com.example.busroute.Database.PathContract
|
||||||
@@ -27,6 +31,7 @@ class PathToMaps: AppCompatActivity() {
|
|||||||
val dbHelper = DbHelper(this)
|
val dbHelper = DbHelper(this)
|
||||||
val db = dbHelper.readableDatabase
|
val db = dbHelper.readableDatabase
|
||||||
val geocoder = Geocoder(this, Locale.getDefault())
|
val geocoder = Geocoder(this, Locale.getDefault())
|
||||||
|
val StopPoint = ArrayList<String>()
|
||||||
setContentView(R.layout.select_path)
|
setContentView(R.layout.select_path)
|
||||||
|
|
||||||
|
|
||||||
@@ -64,6 +69,7 @@ class PathToMaps: AppCompatActivity() {
|
|||||||
id: Long
|
id: Long
|
||||||
) {
|
) {
|
||||||
stopTable.removeAllViews()
|
stopTable.removeAllViews()
|
||||||
|
StopPoint.clear()
|
||||||
val selectedPath = parentView!!.selectedItem
|
val selectedPath = parentView!!.selectedItem
|
||||||
if(selectedPath != null){
|
if(selectedPath != null){
|
||||||
val cursor = db.rawQuery("SELECT * " +
|
val cursor = db.rawQuery("SELECT * " +
|
||||||
@@ -80,6 +86,7 @@ class PathToMaps: AppCompatActivity() {
|
|||||||
val geoResults: MutableList<Address>? = geocoder.getFromLocation(latitude, longitude, 1)
|
val geoResults: MutableList<Address>? = geocoder.getFromLocation(latitude, longitude, 1)
|
||||||
text.text = "$latitude | $longitude\r${geoResults?.get(0)?.getAddressLine(0)}\n"
|
text.text = "$latitude | $longitude\r${geoResults?.get(0)?.getAddressLine(0)}\n"
|
||||||
stopTable.addView(text)
|
stopTable.addView(text)
|
||||||
|
StopPoint.add("$latitude|$longitude")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -89,5 +96,26 @@ class PathToMaps: AppCompatActivity() {
|
|||||||
// your code here
|
// your code here
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
val openMapsButton = findViewById<Button>(R.id.open_maps)
|
||||||
|
openMapsButton.setOnClickListener {
|
||||||
|
val lastPoint = StopPoint.last().split("|")
|
||||||
|
var uri = "google.navigation:q=${lastPoint[0]},${lastPoint[1]}&waypoints="
|
||||||
|
StopPoint.forEach {
|
||||||
|
if(StopPoint.indexOf(it) < StopPoint.size -1){
|
||||||
|
val position = it.split("|")
|
||||||
|
uri += "${position[0]},${position[1]}"
|
||||||
|
if(StopPoint.indexOf(it) < StopPoint.size -2){
|
||||||
|
uri += "%7C"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val mapIntentUri = Uri.parse(uri)
|
||||||
|
val mapIntent = Intent(Intent.ACTION_VIEW, mapIntentUri)
|
||||||
|
mapIntent.setPackage("com.google.android.apps.maps")
|
||||||
|
startActivity(mapIntent)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5,6 +5,11 @@
|
|||||||
<Spinner
|
<Spinner
|
||||||
android:id="@+id/combo_path">
|
android:id="@+id/combo_path">
|
||||||
</Spinner>
|
</Spinner>
|
||||||
|
<Button
|
||||||
|
android:id="@+id/open_maps"
|
||||||
|
android:text="Lancer le trajet dans Maps">
|
||||||
|
|
||||||
|
</Button>
|
||||||
<TableLayout
|
<TableLayout
|
||||||
android:id="@+id/stop_table"
|
android:id="@+id/stop_table"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|||||||
Reference in New Issue
Block a user