Skip to content

Commit 45d7dd6

Browse files
committed
feat : 임의의 버스 현재 위치 그리기 구현
1 parent aad18b6 commit 45d7dd6

File tree

6 files changed

+44
-8
lines changed

6 files changed

+44
-8
lines changed

data/src/main/java/com/stop/data/model/nowlocation/BusInfoRepositoryItem.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ data class BusInfoRepositoryItem(
1414
fun toUseCaseModel() = BusInfoUseCaseItem(
1515
isArrivedAtStation,
1616
sectionId,
17-
latitude,
18-
longitude,
17+
latitude.toDouble(),
18+
longitude.toDouble(),
1919
busId,
2020
busNumber,
2121
isRun,

data/src/main/java/com/stop/data/remote/model/nowlocation/BusInfo.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ data class BusInfo(
88
val isArrivedAtStation: String,
99
val sectionId: String,
1010
@Json(name = "gpsX")
11-
val latitude: String,
12-
@Json(name = "gpsY")
1311
val longitude: String,
12+
@Json(name = "gpsY")
13+
val latitude: String,
1414
@Json(name = "vehId")
1515
val busId: String,
1616
@Json(name = "plainNo")

domain/src/main/java/com/stop/domain/model/nowlocation/BusInfoUseCaseItem.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ package com.stop.domain.model.nowlocation
33
data class BusInfoUseCaseItem(
44
val isArrivedAtStation: String,
55
val sectionId: String,
6-
val latitude: String,
7-
val longitude: String,
6+
val latitude: Double,
7+
val longitude: Double,
88
val busId: String,
99
val busNumber: String,
1010
val isRun: String,

presentation/src/main/java/com/stop/ui/mission/MissionFragment.kt

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import android.animation.AnimatorListenerAdapter
55
import android.content.ContextWrapper
66
import android.graphics.Color
77
import android.os.Bundle
8+
import android.util.Log
89
import android.view.LayoutInflater
910
import android.view.View
1011
import android.view.ViewGroup
@@ -13,6 +14,7 @@ import androidx.fragment.app.viewModels
1314
import com.skt.tmap.TMapPoint
1415
import com.stop.R
1516
import com.stop.databinding.FragmentMissionBinding
17+
import com.stop.model.Location
1618
import dagger.hilt.android.AndroidEntryPoint
1719

1820
@AndroidEntryPoint
@@ -26,6 +28,8 @@ class MissionFragment : Fragment(), MissionHandler {
2628

2729
private lateinit var tMap: MissionTMap
2830

31+
private var beforeLocation = INIT_LOCATION
32+
2933
override fun onCreateView(
3034
inflater: LayoutInflater, container: ViewGroup?,
3135
savedInstanceState: Bundle?
@@ -124,9 +128,31 @@ class MissionFragment : Fragment(), MissionHandler {
124128
}
125129
}
126130

131+
private fun drawBusLocationLine() {
132+
viewModel.busNowLocationInfo.observe(viewLifecycleOwner) { nowLocation ->
133+
if (Location(nowLocation.latitude, nowLocation.longitude) != INIT_LOCATION) {
134+
tMap.drawMoveLine(
135+
TMapPoint(nowLocation.latitude, nowLocation.longitude),
136+
TMapPoint(beforeLocation.latitude, beforeLocation.longitude),
137+
BUS_LINE + BUS_LINE_NUM.toString(),
138+
BUS_LINE_COLOR
139+
)
140+
BUS_LINE_NUM += 1
141+
}
142+
beforeLocation = Location(nowLocation.latitude, nowLocation.longitude)
143+
144+
tMap.makeMarker(
145+
BUS_MARKER,
146+
BUS_MARKER_IMG,
147+
TMapPoint(nowLocation.latitude, nowLocation.longitude)
148+
)
149+
}
150+
}
151+
127152
override fun alertTMapReady() {
128153
//mimicUserMove()
129154
tMap.setTrackingMode()
155+
drawBusLocationLine()
130156
}
131157

132158
override fun setOnLocationChangeListener(nowLocation: TMapPoint, beforeLocation: TMapPoint) {
@@ -158,5 +184,10 @@ class MissionFragment : Fragment(), MissionHandler {
158184
private const val BUS_LINE = "bus_line"
159185
private const val BUS_LINE_COLOR = Color.BLUE
160186
private var BUS_LINE_NUM = 0
187+
188+
private val INIT_LOCATION = Location(0.0, 0.0)
189+
190+
private const val BUS_MARKER = "marker_bus_pin"
191+
private const val BUS_MARKER_IMG = R.drawable.ic_baseline_directions_bus_32
161192
}
162193
}

presentation/src/main/java/com/stop/ui/mission/MissionViewModel.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ class MissionViewModel @Inject constructor(
8888
private fun getBusNowLocation() {
8989
viewModelScope.launch {
9090
while (TIME_TEST < 60) {
91-
_busNowLocationInfo.value = getBusNowLocationUseCase.getBusNowLocation(BUS_441_ID)
91+
_busNowLocationInfo.value = getBusNowLocationUseCase.getBusNowLocation(BUS_540_ID)
9292
Log.d("MissionViewModel","busNowLocationInfo ${_busNowLocationInfo.value}")
9393
delay(1000)
9494
TIME_TEST += 1
@@ -106,7 +106,7 @@ class MissionViewModel @Inject constructor(
106106
private const val RANDOM_LIMIT = 5
107107
private const val ZERO = 0
108108

109-
private const val BUS_441_ID = "100100083"
109+
private const val BUS_540_ID = "100100083"
110110
private var TIME_TEST = 0
111111
}
112112
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<vector android:height="32dp" android:tint="#6B2EC9"
2+
android:viewportHeight="24" android:viewportWidth="24"
3+
android:width="32dp" xmlns:android="http://schemas.android.com/apk/res/android">
4+
<path android:fillColor="@android:color/white" android:pathData="M4,16c0,0.88 0.39,1.67 1,2.22L5,20c0,0.55 0.45,1 1,1h1c0.55,0 1,-0.45 1,-1v-1h8v1c0,0.55 0.45,1 1,1h1c0.55,0 1,-0.45 1,-1v-1.78c0.61,-0.55 1,-1.34 1,-2.22L20,6c0,-3.5 -3.58,-4 -8,-4s-8,0.5 -8,4v10zM7.5,17c-0.83,0 -1.5,-0.67 -1.5,-1.5S6.67,14 7.5,14s1.5,0.67 1.5,1.5S8.33,17 7.5,17zM16.5,17c-0.83,0 -1.5,-0.67 -1.5,-1.5s0.67,-1.5 1.5,-1.5 1.5,0.67 1.5,1.5 -0.67,1.5 -1.5,1.5zM18,11L6,11L6,6h12v5z"/>
5+
</vector>

0 commit comments

Comments
 (0)