|
1 | 1 | package com.kathmandulivinglabs.osmnavigationapp; |
2 | 2 |
|
| 3 | +import androidx.annotation.NonNull; |
3 | 4 | import androidx.appcompat.app.AppCompatActivity; |
4 | 5 |
|
5 | 6 | import android.os.Bundle; |
| 7 | +import android.util.Log; |
6 | 8 |
|
7 | | -//import com.kathmandulivinglabs.navigationlibrary.ToasterMessage; |
| 9 | +import com.google.android.material.snackbar.Snackbar; |
| 10 | +import com.kathmandulivinglabs.navigationlibrary.BaatoUtil; |
| 11 | +import com.kathmandulivinglabs.navigationlibrary.ToasterMessage; |
| 12 | +import com.kathmandulivinglabs.navigationlibrary.models.Geometry; |
| 13 | +import com.mapbox.api.directions.v5.models.DirectionsResponse; |
| 14 | +import com.mapbox.api.directions.v5.models.DirectionsRoute; |
| 15 | +import com.mapbox.geojson.Point; |
| 16 | +import com.mapbox.mapboxsdk.Mapbox; |
| 17 | +import com.mapbox.mapboxsdk.geometry.LatLng; |
| 18 | +import com.mapbox.mapboxsdk.location.LocationComponent; |
| 19 | +import com.mapbox.mapboxsdk.location.modes.CameraMode; |
| 20 | +import com.mapbox.mapboxsdk.location.modes.RenderMode; |
| 21 | +import com.mapbox.mapboxsdk.maps.MapView; |
| 22 | +import com.mapbox.mapboxsdk.maps.MapboxMap; |
| 23 | +import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; |
| 24 | +import com.mapbox.mapboxsdk.maps.Style; |
| 25 | +import com.mapbox.services.android.navigation.ui.v5.route.NavigationMapRoute; |
| 26 | +import com.mapbox.services.android.navigation.v5.navigation.NavigationRoute; |
8 | 27 |
|
9 | | -public class MainActivity extends AppCompatActivity { |
| 28 | +import java.util.List; |
| 29 | + |
| 30 | +import retrofit2.Call; |
| 31 | +import retrofit2.Callback; |
| 32 | +import retrofit2.Response; |
| 33 | + |
| 34 | +public class MainActivity extends AppCompatActivity implements OnMapReadyCallback, |
| 35 | + MapboxMap.OnMapLongClickListener, Callback<DirectionsResponse> { |
| 36 | + |
| 37 | + private static final String TAG = "apple"; |
| 38 | + private MapboxMap mapboxMap; |
| 39 | + private MapView mapView; |
| 40 | + private NavigationMapRoute navigationMapRoute; |
| 41 | + String encoded = "wv{gD_`lhOQvAO^c@h@Yj@IZKhADXj@|ABrAElB@NLLp@LHFDJJvDb@pBx@~B`AjBBP@fCArBW|KSxEQbHGbAYhBKVmA`C}A`EuBrGcAxC}@hBA^BJb@`@dBr@tBbAh@RdDbBs@fCYxAmBnKy@`F_Gj[]zBS~AWjDC~AA|BBbBj@|JpB~YRrDbAjONlDD~AAbCuArj@o@nSkB~w@CzB{@x\\e@rLa@jN@zBO|DE|EQjBKp@W~@Sf@o@dAs@x@i@d@_@RkAj@_AP_AJmCDkBD}IDoFF_ETc@@iARyAf@UKa@_@YKk@KuBGu@Kq@MkA[k@SsB{@wCwAgAo@g@SsDiBa@OcJmE{IcEiAm@kJmEmAc@U?QA[IUK]EmI_@wBCk@Dm@FiCt@k@ViNvJ_BlAcAj@{@Xc@JuALsGN{@F_@Da@NeAn@WXWb@]fAIf@Al@Bt@`AvKVhDDpAMjB[jASb@yAzBiAvAuCfEYxAe@SmE}AsGeA_FiBwG_CsB_@sGq@{AWcA]eASuC{@g@IiDs@_BWy@FiG`BqCx@sFvA{JlC_APq@DqA?[CcAOgCg@qFqAgGkA{@Gk@@i@Dg@Je@NmAl@_^~R^p@lAlAdAv@^T~Al@t@l@F?b@MjChANBl@ATIDCFl@APNH?Ho@`CTf@HJ`@FJN?Je@fA[d@CJBJHJ@POv@HPFVd@ZBJAJa@v@bAf@JjAw@`@yAf@s@d@SHQAAf@c@C@p@YAm@R?n@SPkAPAB?|@g@HCLaAB"; |
10 | 42 |
|
11 | 43 | @Override |
12 | 44 | protected void onCreate(Bundle savedInstanceState) { |
13 | 45 | super.onCreate(savedInstanceState); |
| 46 | + Mapbox.getInstance(this, getString(R.string.mapbox_access_token)); |
14 | 47 | setContentView(R.layout.activity_main); |
| 48 | + mapView = findViewById(R.id.mapView); |
| 49 | + mapView.onCreate(savedInstanceState); |
| 50 | + mapView.getMapAsync(this); |
| 51 | + ToasterMessage.s(this, "Hello Good Morning"); |
| 52 | + Geometry geometry = BaatoUtil.getGeoJsonFromEncodedPolyLine(encoded); |
| 53 | + NavigationRoute.builder(this) |
| 54 | + .accessToken(Mapbox.getAccessToken()) |
| 55 | + .origin(Point.fromLngLat(85.4278774, 27.6721352)) |
| 56 | + .destination(Point.fromLngLat(85.3346386, 27.7340328)) |
| 57 | + .alternatives(true) |
| 58 | + .build() |
| 59 | + .getRoute(this); |
| 60 | + Log.d("hello", "onCreate: " + geometry.coordinates); |
| 61 | + } |
| 62 | + |
| 63 | + @Override |
| 64 | + public boolean onMapLongClick(@NonNull LatLng point) { |
| 65 | + return false; |
| 66 | + } |
15 | 67 |
|
16 | | -// ToasterMessage.s(this,"Hello Good Morning"); |
| 68 | + @Override |
| 69 | + public void onMapReady(@NonNull MapboxMap mapboxMap) { |
| 70 | + this.mapboxMap = mapboxMap; |
| 71 | + mapboxMap.setStyle(Style.MAPBOX_STREETS, style -> { |
| 72 | + initializeLocationComponent(mapboxMap); |
| 73 | + navigationMapRoute = new NavigationMapRoute(null, mapView, mapboxMap); |
| 74 | + mapboxMap.addOnMapLongClickListener(this); |
| 75 | + Snackbar.make(mapView, "Long press to select route", Snackbar.LENGTH_SHORT).show(); |
| 76 | + }); |
| 77 | + } |
17 | 78 |
|
| 79 | + @SuppressWarnings("MissingPermission") |
| 80 | + private void initializeLocationComponent(MapboxMap mapboxMap) { |
| 81 | + LocationComponent locationComponent = mapboxMap.getLocationComponent(); |
| 82 | + locationComponent.activateLocationComponent(this, mapboxMap.getStyle()); |
| 83 | + locationComponent.setLocationComponentEnabled(true); |
| 84 | + locationComponent.setRenderMode(RenderMode.COMPASS); |
| 85 | + locationComponent.setCameraMode(CameraMode.TRACKING); |
| 86 | + locationComponent.zoomWhileTracking(10d); |
18 | 87 | } |
| 88 | + |
| 89 | + @Override |
| 90 | + public void onResponse(Call<DirectionsResponse> call, Response<DirectionsResponse> response) { |
| 91 | + if (response.isSuccessful() |
| 92 | + && response.body() != null |
| 93 | + && !response.body().routes().isEmpty()) { |
| 94 | + List<DirectionsRoute> routes = response.body().routes(); |
| 95 | + navigationMapRoute.addRoutes(routes); |
| 96 | + } |
| 97 | + } |
| 98 | + |
| 99 | + @Override |
| 100 | + public void onFailure(Call<DirectionsResponse> call, Throwable t) { |
| 101 | + Log.d(TAG, "onFailure: " + t.getMessage()); |
| 102 | + } |
| 103 | + |
| 104 | + @Override |
| 105 | + public void onResume() { |
| 106 | + super.onResume(); |
| 107 | + mapView.onResume(); |
| 108 | + } |
| 109 | + |
| 110 | + @Override |
| 111 | + protected void onStart() { |
| 112 | + super.onStart(); |
| 113 | + mapView.onStart(); |
| 114 | + if (navigationMapRoute != null) { |
| 115 | + navigationMapRoute.onStart(); |
| 116 | + } |
| 117 | + } |
| 118 | + |
| 119 | + @Override |
| 120 | + protected void onStop() { |
| 121 | + super.onStop(); |
| 122 | + mapView.onStop(); |
| 123 | + if (navigationMapRoute != null) { |
| 124 | + navigationMapRoute.onStop(); |
| 125 | + } |
| 126 | + } |
| 127 | + |
| 128 | + @Override |
| 129 | + public void onPause() { |
| 130 | + super.onPause(); |
| 131 | + mapView.onPause(); |
| 132 | + } |
| 133 | + |
| 134 | + @Override |
| 135 | + public void onLowMemory() { |
| 136 | + super.onLowMemory(); |
| 137 | + mapView.onLowMemory(); |
| 138 | + } |
| 139 | + |
| 140 | + @Override |
| 141 | + protected void onDestroy() { |
| 142 | + super.onDestroy(); |
| 143 | + mapView.onDestroy(); |
| 144 | + } |
| 145 | + |
| 146 | + @Override |
| 147 | + protected void onSaveInstanceState(Bundle outState) { |
| 148 | + super.onSaveInstanceState(outState); |
| 149 | + mapView.onSaveInstanceState(outState); |
| 150 | + } |
| 151 | + |
19 | 152 | } |
0 commit comments