alexarcan

MapsActivity.java

Nov 29th, 2016
284
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.49 KB | None | 0 0
  1. package com.example.student.googleapp;
  2.  
  3. import android.annotation.TargetApi;
  4. import android.content.pm.PackageManager;
  5. import android.graphics.Color;
  6. import android.os.Build;
  7. import android.support.annotation.NonNull;
  8. import android.support.v4.app.ActivityCompat;
  9. import android.support.v4.app.FragmentActivity;
  10. import android.os.Bundle;
  11. import android.support.v4.content.ContextCompat;
  12. import android.widget.Toast;
  13.  
  14. import com.google.android.gms.maps.CameraUpdateFactory;
  15. import com.google.android.gms.maps.GoogleMap;
  16. import com.google.android.gms.maps.OnMapReadyCallback;
  17. import com.google.android.gms.maps.SupportMapFragment;
  18. import com.google.android.gms.maps.model.BitmapDescriptorFactory;
  19. import com.google.android.gms.maps.model.LatLng;
  20. import com.google.android.gms.maps.model.LatLngBounds;
  21. import com.google.android.gms.maps.model.Marker;
  22. import com.google.android.gms.maps.model.MarkerOptions;
  23. import com.google.android.gms.maps.model.PolylineOptions;
  24. import com.google.maps.android.SphericalUtil;
  25. import com.google.maps.android.ui.IconGenerator;
  26.  
  27. import java.util.List;
  28.  
  29. public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
  30.  
  31. private GoogleMap mMap;
  32.  
  33. @Override
  34. protected void onCreate(Bundle savedInstanceState) {
  35. super.onCreate(savedInstanceState);
  36. setContentView(R.layout.activity_maps);
  37. // Obtain the SupportMapFragment and get notified when the map is ready to be used.
  38. SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
  39. .findFragmentById(R.id.map);
  40. mapFragment.getMapAsync(this);
  41. int checkPermission = ContextCompat.checkSelfPermission(this,
  42. android.Manifest.permission.ACCESS_FINE_LOCATION);
  43.  
  44.  
  45. if (checkPermission != PackageManager.PERMISSION_GRANTED) {
  46. ActivityCompat.requestPermissions(this,
  47. new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION}, 1);
  48. }
  49.  
  50. }
  51.  
  52. public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
  53. super.onRequestPermissionsResult(requestCode, permissions, grantResults);
  54.  
  55.  
  56. for (int i = 0; i < permissions.length; i++) {
  57. String permission = permissions[i];
  58. int grantResult = grantResults[i];
  59.  
  60.  
  61. if (permission.equals(android.Manifest.permission.ACCESS_FINE_LOCATION)) {
  62. if (grantResult == PackageManager.PERMISSION_GRANTED) {
  63. if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
  64. return;
  65. }
  66. mMap.setMyLocationEnabled(true);
  67. }
  68. }
  69. }
  70. }
  71.  
  72.  
  73. /**
  74. * Manipulates the map once available.
  75. * This callback is triggered when the map is ready to be used.
  76. * This is where we can add markers or lines, add listeners or move the camera. In this case,
  77. * we just add a marker near Sydney, Australia.
  78. * If Google Play services is not installed on the device, the user will be prompted to install
  79. * it inside the SupportMapFragment. This method will only be triggered once the user has
  80. * installed Google Play services and returned to the app.
  81. */
  82. @TargetApi(Build.VERSION_CODES.M)
  83. @Override
  84. public void onMapReady(GoogleMap googleMap) {
  85. mMap = googleMap;
  86. mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
  87. final LatLng facultate = new LatLng(45.7450284, 21.2275766);
  88. mMap.moveCamera(CameraUpdateFactory.newLatLng(facultate));
  89. mMap.animateCamera(CameraUpdateFactory.zoomTo(18));
  90. mMap.addMarker(new MarkerOptions()
  91. .position(facultate)
  92. .title("Facultate"));
  93. IconGenerator iconGenerator = new IconGenerator(this);
  94. iconGenerator.setColor(ContextCompat.getColor(this, android.R.color.holo_blue_dark));
  95. iconGenerator.setTextAppearance(R.style.amu_Bubble_TextAppearance_Dark);
  96. mMap.addMarker(new MarkerOptions()
  97. .position(facultate)
  98. .icon(BitmapDescriptorFactory.fromBitmap(iconGenerator.makeIcon("Facultate"))));
  99.  
  100. if (checkSelfPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && checkSelfPermission(android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
  101. // TODO: Consider calling
  102. // public void requestPermissions(@NonNull String[] permissions, int requestCode)
  103. // here to request the missing permissions, and then overriding
  104. // public void onRequestPermissionsResult(int requestCode, String[] permissions,
  105. // int[] grantResults)
  106. // to handle the case where the user grants the permission. See the documentation
  107. // for Activity#requestPermissions for more details.
  108. return;
  109. }
  110. mMap.setMyLocationEnabled(true);
  111.  
  112. // Add a marker in Sydney and move the camera
  113. LatLng sydney = new LatLng(-34, 151);
  114. mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
  115. mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
  116. mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
  117. @Override
  118. public boolean onMarkerClick(Marker marker) {
  119. if (marker.getPosition().equals(facultate)) {
  120. Toast.makeText(MapsActivity.this, "Sunt la facultate", Toast.LENGTH_LONG).show();
  121. } else {
  122. //....
  123. }
  124. return false;
  125. }
  126. });
  127. // SphericalUtil.computeDistanceBetween(facultate, libertatii);
  128.  
  129. }
  130.  
  131. public void drawPolyLineOnMap(List<LatLng> list, GoogleMap googleMap) {
  132.  
  133.  
  134. PolylineOptions polyOptions = new PolylineOptions();
  135. polyOptions.color(Color.GREEN);
  136. polyOptions.width(8);
  137. polyOptions.addAll(list);
  138. googleMap.addPolyline(polyOptions);
  139. LatLngBounds.Builder builder = new LatLngBounds.Builder();
  140. for (LatLng latLng : list) {
  141. builder.include(latLng);
  142. }
  143. builder.build();
  144. }
  145.  
  146.  
  147.  
  148. }
Add Comment
Please, Sign In to add comment