Nominatim

This commit is contained in:
Dimitris
2025-11-27 10:34:18 +01:00
parent ce382e304c
commit c79fd157e4
51 changed files with 827 additions and 285 deletions

View File

@@ -16,7 +16,7 @@
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Places">
android:theme="@style/Theme.Navigation">
<meta-data
android:name="com.google.android.gms.car.application"
@@ -25,7 +25,7 @@
<activity
android:name="com.kouros.navigation.MainActivity"
android:exported="true"
android:theme="@style/Theme.Places">
android:theme="@style/Theme.Navigation">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />

View File

@@ -48,12 +48,13 @@ import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.Observer
import com.example.places.ui.theme.PlacesTheme
import com.kouros.navigation.ui.theme.NavigationTheme
import com.google.accompanist.permissions.ExperimentalPermissionsApi
import com.google.accompanist.permissions.rememberMultiplePermissionsState
import com.kouros.android.cars.carappservice.R
import com.kouros.navigation.car.BuildingLayer
import com.kouros.navigation.car.Puck
import com.kouros.navigation.car.PuckState
import com.kouros.navigation.car.RouteLayer
import com.kouros.navigation.data.Category
@@ -68,15 +69,11 @@ import com.kouros.navigation.utils.NavigationUtils.snapLocation
import com.kouros.navigation.utils.calculateZoom
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.coroutineScope
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import org.koin.androidx.compose.koinViewModel
import org.maplibre.compose.camera.CameraPosition
import org.maplibre.compose.camera.rememberCameraState
import org.maplibre.compose.expressions.dsl.const
import org.maplibre.compose.layers.FillLayer
import org.maplibre.compose.layers.LineLayer
import org.maplibre.compose.location.DesiredAccuracy
import org.maplibre.compose.location.LocationPuck
import org.maplibre.compose.location.LocationPuckColors
@@ -85,9 +82,7 @@ import org.maplibre.compose.location.LocationTrackingEffect
import org.maplibre.compose.location.rememberDefaultLocationProvider
import org.maplibre.compose.location.rememberUserLocationState
import org.maplibre.compose.map.MaplibreMap
import org.maplibre.compose.sources.GeoJsonData
import org.maplibre.compose.sources.getBaseSource
import org.maplibre.compose.sources.rememberGeoJsonSource
import org.maplibre.compose.style.BaseStyle
import org.maplibre.spatialk.geojson.Position
import kotlin.time.Duration.Companion.seconds
@@ -143,7 +138,7 @@ class MainActivity : ComponentActivity() {
val scope = rememberCoroutineScope()
val snackbarHostState = remember { SnackbarHostState() }
PlacesTheme {
NavigationTheme {
ModalNavigationDrawer(
drawerContent = {
ModalDrawerSheet {
@@ -271,7 +266,7 @@ class MainActivity : ComponentActivity() {
@Composable
fun MapView() {
val locationProvider = rememberDefaultLocationProvider(
updateInterval = 0.1.seconds,
updateInterval = 0.5.seconds,
desiredAccuracy = DesiredAccuracy.Highest
)
val userLocationState = rememberUserLocationState(locationProvider)
@@ -304,7 +299,7 @@ class MainActivity : ComponentActivity() {
baseStyle = BaseStyle.Uri(Constants.STYLE),
) {
getBaseSource(id = "openmaptiles")?.let { tiles ->
if (!getBooleanKeyValue(context = applicationContext, SHOW_THREED_BUILDING) && Constants.STYLE.contains("liberty")) {
if (!getBooleanKeyValue(context = applicationContext, SHOW_THREED_BUILDING)) {
BuildingLayer(tiles)
}
RouteLayer(route, "")
@@ -313,20 +308,8 @@ class MainActivity : ComponentActivity() {
val location = Location(LocationManager.GPS_PROVIDER)
location.longitude = userLocationState.location!!.position.longitude
location.latitude = userLocationState.location!!.position.latitude
Puck(cameraState, location,)
PuckState(cameraState, userLocationState,)
}
LocationPuck(
idPrefix = "user-location1",
locationState = userLocationState,
cameraState = cameraState,
accuracyThreshold = 10f,
showBearing = false,
sizes = LocationPuckSizes(dotRadius = 10.dp),
colors = LocationPuckColors(
dotFillColorCurrentLocation = Color.Cyan,
accuracyStrokeColor = Color.Green
)
)
}
LocationTrackingEffect(

View File

@@ -2,7 +2,8 @@ package com.kouros.navigation
import android.app.Application
import android.content.Context
import com.example.places.di.appModule
import com.kouros.navigation.data.ObjectBox
import com.kouros.navigation.di.appModule
import org.koin.android.ext.koin.androidContext
import org.koin.android.ext.koin.androidLogger
import org.koin.core.context.startKoin
@@ -11,6 +12,7 @@ class MainApplication : Application() {
override fun onCreate() {
super.onCreate()
ObjectBox.init(applicationContext);
appContext = applicationContext
startKoin {
androidLogger(Level.DEBUG)

View File

@@ -1,4 +1,4 @@
package com.example.places.di
package com.kouros.navigation.di
import com.kouros.navigation.data.NavigationRepository
import com.kouros.navigation.model.ViewModel

View File

@@ -1,4 +1,4 @@
package com.example.places.ui.theme
package com.kouros.navigation.ui.theme
import androidx.compose.ui.graphics.Color

View File

@@ -1,4 +1,4 @@
package com.example.places.ui.theme
package com.kouros.navigation.ui.theme
import android.os.Build
import androidx.compose.foundation.isSystemInDarkTheme
@@ -33,7 +33,7 @@ private val LightColorScheme = lightColorScheme(
)
@Composable
fun PlacesTheme(
fun NavigationTheme(
darkTheme: Boolean = isSystemInDarkTheme(),
// Dynamic color is available on Android 12+
dynamicColor: Boolean = true,

View File

@@ -1,4 +1,4 @@
package com.example.places.ui.theme
package com.kouros.navigation.ui.theme
import androidx.compose.material3.Typography
import androidx.compose.ui.text.TextStyle

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.Places" parent="android:Theme.Material.Light.NoActionBar" />
<style name="Theme.Navigation" parent="android:Theme.Material.Light.NoActionBar" />
</resources>