Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.dadashova.aytaj.bakubustest;
- import android.Manifest;
- import android.content.Context;
- import android.content.pm.PackageManager;
- import android.location.Location;
- import android.location.LocationListener;
- import android.location.LocationManager;
- import android.os.Build;
- import android.os.Bundle;
- import android.support.annotation.NonNull;
- import android.support.v4.app.ActivityCompat;
- import android.support.v4.content.ContextCompat;
- import android.support.v7.app.AppCompatActivity;
- import com.google.android.gms.maps.CameraUpdateFactory;
- import com.google.android.gms.maps.GoogleMap;
- import com.google.android.gms.maps.OnMapReadyCallback;
- import com.google.android.gms.maps.SupportMapFragment;
- import com.google.android.gms.maps.model.BitmapDescriptorFactory;
- import com.google.android.gms.maps.model.LatLng;
- import com.google.android.gms.maps.model.MarkerOptions;
- public class MapsActivity extends AppCompatActivity implements OnMapReadyCallback {
- LocationManager locationManager;
- LocationListener locationListener;
- LatLng userLocation;
- MarkerOptions userMarker;
- private GoogleMap mMap;
- public static final int MY_LOCATION_REQUEST_CODE = 1;
- //https://developers.google.com/maps/documentation/android-sdk/location
- //https://google-developer-training.gitbooks.io/android-developer-advanced-course-practicals/unit-4-add-geo-features-to-your-apps/lesson-9-mapping/9-1-p-add-a-google-map-to-your-app/9-1-p-add-a-google-map-to-your-app.html#chapterstart
- //https://google-developer-training.gitbooks.io/android-developer-advanced-course-practicals/unit-4-add-geo-features-to-your-apps/lesson-9-mapping/9-1-p-add-a-google-map-to-your-app/9-1-p-add-a-google-map-to-your-app.html
- @Override
- public void onRequestPermissionsResult(int requestCode, @NonNull String permissions[], @NonNull int[]grantResults) {
- super.onRequestPermissionsResult(requestCode, permissions, grantResults);
- if (requestCode == 1){
- if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
- if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
- == PackageManager.PERMISSION_GRANTED) {
- locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 15000, 25, locationListener);
- }
- }
- }
- }
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_maps);
- // Obtain the SupportMapFragment and get notified when the map is ready to be used.
- SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
- .findFragmentById(R.id.map);
- mapFragment.getMapAsync(this);
- }
- /**
- * Manipulates the map once available.
- * This callback is triggered when the map is ready to be used.
- * This is where we can add markers or lines, add listeners or move the camera. In this case,
- * we just add a marker near Sydney, Australia.
- * If Google Play services is not installed on the device, the user will be prompted to install
- * it inside the SupportMapFragment. This method will only be triggered once the user has
- * installed Google Play services and returned to the app.
- */
- @Override
- public void onMapReady(GoogleMap googleMap) {
- mMap = googleMap;
- userMarker = new MarkerOptions();
- userMarker.icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_bus));
- userMarker.title("Your Location");
- locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
- locationListener = new LocationListener() {
- @Override
- public void onLocationChanged(Location location) {
- userLocation = new LatLng(location.getLatitude(), location.getLongitude());
- mMap.addMarker(userMarker.position(userLocation).snippet("Lat: " + location.getLatitude() + ", Long:" + location.getLongitude()));
- mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(userLocation, 15));
- mMap.moveCamera(CameraUpdateFactory.newLatLng (userLocation));
- }
- @Override
- public void onStatusChanged(String provider, int status, Bundle extras) {
- }
- @Override
- public void onProviderEnabled(String provider) {
- }
- @Override
- public void onProviderDisabled(String provider) {
- }
- };
- if (Build.VERSION.SDK_INT >= 23) {
- if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
- != PackageManager.PERMISSION_GRANTED) {
- ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 1);
- } else {
- locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 15000, 25, locationListener);
- }
- }
- else {
- locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 15000, 25, locationListener);
- }
- // Add a marker in Sydney and move the camera
- userLocation = new LatLng(40.369611, 49.822672);
- mMap.addMarker(userMarker.position(userLocation).snippet("Lat: 40.369611, Long: 49.822672"));
- mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(userLocation, 15));
- mMap.moveCamera(CameraUpdateFactory.newLatLng(userLocation));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement