Skip to content

Commit 7b5575e

Browse files
committed
feat : 지하철 sectionTime에 비례해 line 그리기 구현
1 parent adbb74c commit 7b5575e

File tree

3 files changed

+48
-1
lines changed

3 files changed

+48
-1
lines changed

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

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,14 @@ import android.view.View
1010
import android.view.ViewGroup
1111
import androidx.fragment.app.Fragment
1212
import androidx.fragment.app.viewModels
13+
import androidx.lifecycle.lifecycleScope
1314
import com.skt.tmap.TMapPoint
1415
import com.stop.R
1516
import com.stop.databinding.FragmentMissionBinding
1617
import com.stop.model.Location
1718
import dagger.hilt.android.AndroidEntryPoint
19+
import kotlinx.coroutines.delay
20+
import kotlinx.coroutines.launch
1821

1922
@AndroidEntryPoint
2023
class MissionFragment : Fragment(), MissionHandler {
@@ -178,10 +181,41 @@ class MissionFragment : Fragment(), MissionHandler {
178181
}
179182
}
180183

184+
private fun drawSubwayLocationLine() {
185+
viewModel.subwayRoute.observe(viewLifecycleOwner) { subwayRoute ->
186+
viewLifecycleOwner.lifecycleScope.launch {
187+
val timeUnit = (subwayRoute.sectionTime * SECOND_UNIT / subwayRoute.line.size).toLong()
188+
subwayRoute.line.forEachIndexed { index, nowLocation ->
189+
if (index == 0) return@forEachIndexed
190+
else {
191+
val beforeLocation = subwayRoute.line[index - 1]
192+
tMap.drawMoveLine(
193+
TMapPoint(nowLocation.latitude, nowLocation.longitude),
194+
TMapPoint(beforeLocation.latitude, beforeLocation.longitude),
195+
SUBWAY_LINE + (index - 1).toString(),
196+
SUBWAY_LINE_COLOR
197+
)
198+
}
199+
viewModel.busCurrentLocation = Location(nowLocation.latitude, nowLocation.longitude)
200+
201+
tMap.makeMarker(
202+
SUBWAY_MARKER,
203+
SUBWAY_MARKER_IMG,
204+
TMapPoint(nowLocation.latitude, nowLocation.longitude)
205+
)
206+
207+
delay(timeUnit)
208+
}
209+
}
210+
211+
}
212+
}
213+
181214
override fun alertTMapReady() {
182215
//mimicUserMove()
183216
tMap.setTrackingMode()
184217
drawBusLocationLine()
218+
drawSubwayLocationLine()
185219
}
186220

187221
override fun setOnLocationChangeListener(nowLocation: TMapPoint, beforeLocation: TMapPoint, canMakeLine: Boolean) {
@@ -221,10 +255,18 @@ class MissionFragment : Fragment(), MissionHandler {
221255
private const val BUS_LINE_COLOR = Color.BLUE
222256
private var BUS_LINE_NUM = 0
223257

258+
private const val SUBWAY_LINE = "bus_line"
259+
private const val SUBWAY_LINE_COLOR = Color.BLUE
260+
224261
private val INIT_LOCATION = Location(0.0, 0.0)
225262

226263
private const val BUS_MARKER = "marker_bus_pin"
227264
private const val BUS_MARKER_IMG = R.drawable.ic_bus_marker
228265

266+
private const val SUBWAY_MARKER = "marker_subway_pin"
267+
private const val SUBWAY_MARKER_IMG = R.drawable.ic_subway_marker
268+
269+
private const val SECOND_UNIT = 1000
270+
229271
}
230272
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ class MissionViewModel @Inject constructor(
170170

171171
private const val TEST_SUBWAY_NUMER = 4
172172
private const val LINE = "호선" //임시로.. 종성님이 어떻게 넘겨주시느냐에 따라 달림
173-
private const val TEST_TRAIN_NUMBER = "4645"
173+
private const val TEST_TRAIN_NUMBER = "4680"
174174

175175
private const val TMAP_VERSION = 1
176176

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="#AD87E7"
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="M12,2c-4.42,0 -8,0.5 -8,4v9.5C4,17.43 5.57,19 7.5,19L6,20.5v0.5h12v-0.5L16.5,19c1.93,0 3.5,-1.57 3.5,-3.5L20,6c0,-3.5 -3.58,-4 -8,-4zM7.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,17zM11,11L6,11L6,6h5v5zM16.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,11h-5L13,6h5v5z"/>
5+
</vector>

0 commit comments

Comments
 (0)