Guest User

Untitled

a guest
Nov 14th, 2018
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.92 KB | None | 0 0
  1. public class MainActivity extends AppCompatActivity {
  2.  
  3. private static final int REQUEST_CODE_ASK_PERMISSIONS = 0x01;
  4. private Map m_map;
  5. private MapView m_mapView;
  6. private MapMarker marker;
  7. private Route route;
  8. private boolean updateMap = false;
  9.  
  10. @Override
  11. protected void onCreate(@Nullable Bundle savedInstanceState) {
  12. super.onCreate(savedInstanceState);
  13. setContentView(R.layout.activity_main);
  14. m_mapView = findViewById(R.id.map);
  15. requestPermissions();
  16. }
  17.  
  18. private void requestPermissions() {
  19. final int result = ContextCompat.checkSelfPermission(this,
  20. Manifest.permission.WRITE_EXTERNAL_STORAGE);
  21.  
  22. if (result != PackageManager.PERMISSION_GRANTED) {
  23. ActivityCompat.requestPermissions(this,
  24. new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE},
  25. REQUEST_CODE_ASK_PERMISSIONS);
  26. } else {
  27. initMap();
  28. }
  29. }
  30.  
  31. @Override
  32. public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
  33. @NonNull int[] grantResults) {
  34. final boolean permissionGranted = grantResults.length > 0
  35. && (requestCode == REQUEST_CODE_ASK_PERMISSIONS
  36. && grantResults[0] == PackageManager.PERMISSION_GRANTED);
  37.  
  38. if (permissionGranted) {
  39. initMap();
  40. } else {
  41. requestPermissions();
  42. }
  43. }
  44.  
  45. /**
  46. * Initialize m_map engine.
  47. * After initialization set m_map object for {@link MapView}.
  48. * Also in callback check if initialization completed successfully
  49. */
  50. private void initMap() {
  51. MapEngine.getInstance().init(new ApplicationContext(getApplicationContext()),
  52. new OnEngineInitListener() {
  53. @Override
  54. public void onEngineInitializationCompleted(Error error) {
  55. if (error == Error.NONE) {
  56. /* get the map object */
  57. m_map = new Map();
  58. m_mapView.setMap(m_map);
  59. startRoute();
  60. } else {
  61. Toast.makeText(getApplicationContext(), error.name(),
  62. Toast.LENGTH_SHORT).show();
  63. }
  64. }
  65. });
  66. }
  67.  
  68. @Override
  69. protected void onResume() {
  70. super.onResume();
  71. m_mapView.onResume();
  72.  
  73. if (updateMap) {
  74. m_map.zoomTo(route.getBoundingBox(), Map.Animation.NONE, 10f);
  75. m_map.setZoomLevel(12.0);
  76. updateMap = false;
  77. }
  78. }
  79.  
  80. @Override
  81. protected void onUserLeaveHint() {
  82. super.onUserLeaveHint();
  83. if (!isInPictureInPictureMode()) {
  84. final PictureInPictureParams.Builder builder = new PictureInPictureParams.Builder();
  85. builder.setAspectRatio(new Rational(2, 3));
  86. enterPictureInPictureMode(builder.build());
  87. }
  88. }
  89.  
  90. @Override
  91. public void onPictureInPictureModeChanged(boolean isInPictureInPictureMode, Configuration newConfig) {
  92. super.onPictureInPictureModeChanged(isInPictureInPictureMode, newConfig);
  93. if (isInPictureInPictureMode) {
  94. m_map.setCenter(marker.getCoordinate(), Map.Animation.NONE);
  95. m_map.setZoomLevel(23.0);
  96. } else {
  97. updateMap = true;
  98. }
  99. }
  100.  
  101. private void startRoute() {
  102. final GeoCoordinate start = new GeoCoordinate(52.52816, 13.39210);
  103. final GeoCoordinate end = new GeoCoordinate(52.51178, 13.49416);
  104. final RoutePlan plan = new RoutePlan();
  105. final RouteOptions routeOptions = new RouteOptions();
  106. routeOptions.setRouteCount(1);
  107.  
  108. plan.addWaypoint(new RouteWaypoint(start));
  109. plan.addWaypoint(new RouteWaypoint(end));
  110. plan.setRouteOptions(routeOptions);
  111.  
  112. final CoreRouter coreRouter = new CoreRouter();
  113. coreRouter.calculateRoute(plan, new Router.Listener<List<RouteResult>, RoutingError>() {
  114. @Override
  115. public void onProgress(int i) { }
  116.  
  117. @Override
  118. public void onCalculateRouteFinished(List<RouteResult> routeResults, RoutingError routingError) {
  119. if (routingError == RoutingError.NONE) {
  120. route = routeResults.get(0).getRoute();
  121. m_map.addMapObject(new MapRoute(route));
  122. m_map.zoomTo(route.getBoundingBox(), Map.Animation.NONE, 10f);
  123. final Image image = new Image();
  124.  
  125. try {
  126. image.setImageResource(R.drawable.arrow);
  127. marker = new MapMarker(start, image);
  128. m_map.addMapObject(marker);
  129. } catch (IOException e) {
  130. e.printStackTrace();
  131. }
  132. }
  133.  
  134. }
  135. });
  136. }
  137. }
Add Comment
Please, Sign In to add comment