@@ -9,7 +9,12 @@ import com.mapbox.android.core.location.LocationEngine
99import com.mapbox.android.core.location.LocationEnginePriority
1010import com.mapbox.android.core.location.LocationEngineProvider
1111import com.mapbox.api.directions.v5.models.DirectionsRoute
12+ import com.mapbox.api.geocoding.v5.GeocodingCriteria
13+ import com.mapbox.api.geocoding.v5.MapboxGeocoding
14+ import com.mapbox.api.geocoding.v5.models.GeocodingResponse
1215import com.mapbox.geojson.Point
16+ import com.mapbox.mapboxsdk.Mapbox
17+ import com.mapbox.mapboxsdk.geometry.LatLng
1318import com.mapbox.services.android.navigation.testapp.NavigationApplication
1419import com.mapbox.services.android.navigation.testapp.NavigationApplication.Companion.instance
1520import com.mapbox.services.android.navigation.testapp.R
@@ -21,6 +26,10 @@ import com.mapbox.services.android.navigation.ui.v5.voice.SpeechPlayerProvider
2126import com.mapbox.services.android.navigation.v5.milestone.Milestone
2227import com.mapbox.services.android.navigation.v5.navigation.MapboxNavigation
2328import com.mapbox.services.android.navigation.v5.routeprogress.RouteProgress
29+ import retrofit2.Call
30+ import retrofit2.Callback
31+ import retrofit2.Response
32+ import timber.log.Timber
2433import java.util.Locale.US
2534
2635class ExampleViewModel (application : Application ) : AndroidViewModel(application) {
@@ -34,6 +43,7 @@ class ExampleViewModel(application: Application) : AndroidViewModel(application)
3443 val progress: MutableLiveData <RouteProgress > = MutableLiveData ()
3544 val milestone: MutableLiveData <Milestone > = MutableLiveData ()
3645 val destination: MutableLiveData <Point > = MutableLiveData ()
46+ val geocode: MutableLiveData <GeocodingResponse > = MutableLiveData ()
3747 var collapsedBottomSheet: Boolean = false
3848
3949 private val locationEngine: LocationEngine
@@ -102,6 +112,23 @@ class ExampleViewModel(application: Application) : AndroidViewModel(application)
102112 return navigation
103113 }
104114
115+ fun reverseGeocode (point : LatLng ) {
116+ val reverseGeocode = MapboxGeocoding .builder()
117+ .accessToken(Mapbox .getAccessToken()!! )
118+ .query(Point .fromLngLat(point.longitude, point.latitude))
119+ .geocodingTypes(GeocodingCriteria .TYPE_ADDRESS )
120+ .build()
121+ reverseGeocode.enqueueCall(object : Callback <GeocodingResponse > {
122+ override fun onResponse (call : Call <GeocodingResponse >, response : Response <GeocodingResponse >) {
123+ geocode.value = response.body()
124+ }
125+
126+ override fun onFailure (call : Call <GeocodingResponse >, t : Throwable ) {
127+ Timber .e(t, " Geocoding request failed" )
128+ }
129+ })
130+ }
131+
105132 fun onDestroy () {
106133 navigation.onDestroy()
107134 speechPlayer.onDestroy()
0 commit comments