aboutsummaryrefslogtreecommitdiff
path: root/androidApp/src/main/java/mx/trackermap/TrackerMap/android/map/MarkerTransformations.kt
blob: fcde58d3827b7c9f1771b97a75e6335f7037e18c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
package mx.trackermap.TrackerMap.android.map

import mx.trackermap.TrackerMap.client.models.Position
import mx.trackermap.TrackerMap.client.models.Stop
import mx.trackermap.TrackerMap.client.models.UnitInformation
import mx.trackermap.TrackerMap.utils.MarkerType

object MarkerTransformations {
    fun unitToMarker(unit: UnitInformation): MapFragment.Marker? {
        if (unit.position == null || unit.position!!.latitude == null || unit.position!!.longitude == null) {
            return null
        }

        return MapFragment.Marker(
            unit.position!!.id!!,
            unit.position!!.latitude!!,
            unit.position!!.longitude!!,
            categoryToMarkerType(unit.device.category ?: "")
        )
    }

    fun positionToMarker(position: Position): MapFragment.Marker? {
        if (position.latitude == null || position.longitude == null) {
            return null
        }

        return MapFragment.Marker(
            position.id!!,
            position.latitude!!,
            position.longitude!!
        )
    }

    fun stopToMarker(stop: Stop): MapFragment.Marker? {
        if (stop.lat == null || stop.lon == null) {
            return null
        }

        return MapFragment.Marker(
            stop.deviceId!!,
            stop.lat!!,
            stop.lon!!
        )
    }

    private fun categoryToMarkerType(category: String): MarkerType {
        return when (category.lowercase()) {
            "animal" -> MarkerType.ANIMAL
            "bicycle" -> MarkerType.BICYCLE
            "boat" -> MarkerType.BOAT
            "bus" -> MarkerType.BUS
            "car" -> MarkerType.CAR
            "crane" -> MarkerType.CRANE
            "helicopter" -> MarkerType.HELICOPTER
            "motorcycle" -> MarkerType.MOTORCYCLE
            "offroad" -> MarkerType.OFFROAD
            "person" -> MarkerType.PERSON
            "pickup" -> MarkerType.PICKUP
            "plane" -> MarkerType.PLANE
            "scooter" -> MarkerType.SCOOTER
            "ship" -> MarkerType.SHIP
            "tractor" -> MarkerType.TRACTOR
            "train" -> MarkerType.TRAIN
            "tram" -> MarkerType.TRAM
            "trolleybus" -> MarkerType.TROLLEYBUS
            "truck" -> MarkerType.TRUCK
            "van" -> MarkerType.VAN
            else -> MarkerType.DEFAULT
        }
    }
}