Facebook
From Capacious Penguin, 5 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 243
  1. package com.example.kamil.hackatonkielce;
  2.  
  3. import android.Manifest;
  4. import android.content.Context;
  5. import android.content.pm.PackageManager;
  6. import android.graphics.Bitmap;
  7. import android.graphics.Canvas;
  8. import android.graphics.Color;
  9. import android.graphics.ColorFilter;
  10. import android.graphics.Paint;
  11. import android.graphics.drawable.Drawable;
  12. import android.location.Location;
  13. import android.os.Build;
  14. import android.support.annotation.NonNull;
  15. import android.support.annotation.Nullable;
  16. import android.support.annotation.RequiresApi;
  17. import android.support.v4.app.ActivityCompat;
  18. import android.support.v4.app.FragmentActivity;
  19. import android.os.Bundle;
  20. import android.support.v4.content.ContextCompat;
  21. import android.support.v4.content.PermissionChecker;
  22. import android.widget.Toast;
  23.  
  24. import com.firebase.client.Firebase;
  25. import com.firebase.client.FirebaseApp;
  26. import com.google.android.gms.location.FusedLocationProviderClient;
  27. import com.google.android.gms.location.LocationServices;
  28. import com.google.android.gms.maps.CameraUpdate;
  29. import com.google.android.gms.maps.CameraUpdateFactory;
  30. import com.google.android.gms.maps.GoogleMap;
  31. import com.google.android.gms.maps.OnMapReadyCallback;
  32. import com.google.android.gms.maps.SupportMapFragment;
  33. import com.google.android.gms.maps.UiSettings;
  34. import com.google.android.gms.maps.model.BitmapDescriptor;
  35. import com.google.android.gms.maps.model.BitmapDescriptorFactory;
  36. import com.google.android.gms.maps.model.LatLng;
  37. import com.google.android.gms.maps.model.Marker;
  38. import com.google.android.gms.maps.model.MarkerOptions;
  39. import com.firebase.client.ChildEventListener;
  40. import com.firebase.client.DataSnapshot;
  41. import com.firebase.client.Firebase;
  42. import com.firebase.client.FirebaseError;
  43. import com.firebase.client.Query;
  44. import com.google.android.gms.tasks.OnCompleteListener;
  45. import com.google.android.gms.tasks.Task;
  46.  
  47. import java.util.ArrayList;
  48. import java.util.Iterator;
  49. import java.util.List;
  50.  
  51. public class MapsActivity extends FragmentActivity implements OnMapReadyCallback, GoogleMap.OnMarkerClickListener, GoogleMap.OnInfoWindowClickListener {
  52.  
  53.     private GoogleMap mMap;
  54.     private String url;
  55.     private final ArrayList<Marker_date> Marker_date_list = new ArrayList<>();
  56.     private Marker myMarker;
  57.     private int iter_marker_date = 0;
  58.     private FusedLocationProviderClient mFusedLocationProviderClient;
  59.     private boolean mlocpergrand = false;
  60.     private static float DEFAULT_ZOOM = 15f;
  61.  
  62.     @Override
  63.     protected void onCreate(Bundle savedInstanceState) {
  64.         super.onCreate(savedInstanceState);
  65.         setContentView(R.layout.activity_maps);
  66.         // Obtain the SupportMapFragment and get notified when the map is ready to be used.
  67.         SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
  68.         mapFragment.getMapAsync(this);
  69.  
  70.     }
  71.  
  72.     /**
  73.      * Manipulates the map once available.
  74.      * This callback is triggered when the map is ready to be used.
  75.      * This is where we can add markers or lines, add listeners or move the camera. In this case,
  76.      * we just add a marker near Sydney, Australia.
  77.      * If Google Play services is not installed on the device, the user will be prompted to install
  78.      * it inside the SupportMapFragment. This method will only be triggered once the user has
  79.      * installed Google Play services and returned to the app.
  80.      */
  81.  
  82.  
  83.     @Override
  84.     public void onMapReady(GoogleMap googleMap) {
  85.         mMap = googleMap;
  86.         mMap.getUiSettings().setMapToolbarEnabled(true);
  87.         mMap.getUiSettings().setCompassEnabled(true);
  88.         mMap.getUiSettings().setTiltGesturesEnabled(true);
  89.  
  90.         //setUrl("https://androidhack-e4f9d.firebaseio.com/");
  91.         Marker_date_list.add(new Marker_date(new LatLng(50.9001050, 20.5866301), "Moonman", "1"));
  92.         Marker_date_list.add(new Marker_date(new LatLng(51.9011050, 20.5866301), "Moonman1", "2"));
  93.         Marker_date_list.add(new Marker_date(new LatLng(52.9021050, 20.5866301), "Moonman2", "3"));
  94.         Marker_date_list.add(new Marker_date(new LatLng(53.9031050, 20.5866301), "Moonman3", "4"));
  95.         Marker_date_list.add(new Marker_date(new LatLng(54.9041050, 20.5866301), "Moonman4", "5"));
  96.         Marker_date_list.add(new Marker_date(new LatLng(55.9051050, 20.5866301), "Moonman5", "6"));
  97.  
  98.  
  99.  
  100.  
  101.  
  102.         mMap.getUiSettings().setMapToolbarEnabled(true);
  103.  
  104.  
  105.         if (mlocpergrand==true) {
  106.             getDeviceLocation();
  107.             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) {
  108.                 Toast.makeText(MapsActivity.this,"pytanie o dostep 1", Toast.LENGTH_SHORT).show();
  109.                 return;
  110.             }
  111.             mMap.setMyLocationEnabled(true);
  112.             mMap.getUiSettings().setMyLocationButtonEnabled(true);
  113.         }
  114.  
  115.         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))
  116.         {
  117.             Toast.makeText(MapsActivity.this,"pytanie o dostep 2", Toast.LENGTH_SHORT).show();
  118.             mlocpergrand=true;
  119.         }
  120.         else
  121.         {
  122.             if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
  123.             Toast.makeText(MapsActivity.this, "pytanie o dostep 3", Toast.LENGTH_SHORT).show();
  124.             ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 457837897);
  125.             ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, 457837897);
  126.             }
  127.         }
  128.  
  129.  
  130.  
  131.         for (Marker_date i: Marker_date_list) {
  132.  
  133.             //mMap.addMarker(new MarkerOptions().position(Marker_date_list.get(iter_marker_date).cord).title(Marker_date_list.get(iter_marker_date).name));
  134.             Marker marker =  mMap.addMarker(new MarkerOptions().position(i.cord));
  135.             marker.setTag(i.id);
  136.             marker.setTitle(i.name);
  137.  
  138.             //marker.setIcon(BitmapDescriptorFactory.fromBitmap(make_icon(i.name)));
  139.         }
  140.  
  141.         mMap.moveCamera(CameraUpdateFactory.newLatLng(Marker_date_list.get(2).cord));
  142.  
  143.         googleMap.setOnMarkerClickListener(this);
  144.         googleMap.setOnInfoWindowClickListener(this);
  145.  
  146.         if (mlocpergrand==true) {
  147.             //getDeviceLocation();
  148.             mMap.setMyLocationEnabled(true);
  149.             mMap.getUiSettings().setMyLocationButtonEnabled(true);
  150.             mMap.getUiSettings().setMapToolbarEnabled(true);
  151.             mMap.getUiSettings().setCompassEnabled(true);
  152.             mMap.getUiSettings().setTiltGesturesEnabled(true);
  153.  
  154.  
  155.         }
  156.     }
  157.     private void getDeviceLocation()
  158.     {
  159.         mFusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this);
  160.         try{
  161.             if(mlocpergrand==true)
  162.             {
  163.                 Task location = mFusedLocationProviderClient.getLastLocation();
  164.                 location.addOnCompleteListener(new OnCompleteListener() {
  165.                     @Override
  166.                     public void onComplete(@NonNull Task task) {
  167.                         if(task.isSuccessful()){
  168.                             Location currentlocation = (Location) task.getResult();
  169.                             moveCamera(new LatLng(currentlocation.getLatitude(),currentlocation.getLongitude()),DEFAULT_ZOOM);
  170.                         }
  171.                     }
  172.                 });
  173.             }
  174.         }catch(SecurityException e){
  175.  
  176.         }
  177.     }
  178. //epsg 2178 to epsg 4326
  179.     private void moveCamera(LatLng coord, float zoom)
  180.     {
  181.         Toast.makeText(MapsActivity.this,"move camera", Toast.LENGTH_SHORT).show();
  182.         mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(coord,zoom));
  183.     }
  184.  
  185.     public boolean onMarkerClick(final Marker marker) {
  186.  
  187.         String name= marker.getTitle()+" "+marker.getTag()+" "+marker.getPosition()+" Marker";
  188.         marker.showInfoWindow();
  189.  
  190.         mMap.getUiSettings().setMapToolbarEnabled(true);
  191.         Toast.makeText(MapsActivity.this,name, Toast.LENGTH_SHORT).show();
  192.  
  193.         return false;
  194.     }
  195.  
  196.     @Override
  197.     public void onInfoWindowClick(Marker marker) {
  198.  
  199.         marker.hideInfoWindow();
  200.         String name= marker.getTitle()+" "+marker.getTag()+" "+marker.getPosition()+" Infowindow";
  201.         Toast.makeText(MapsActivity.this,name, Toast.LENGTH_SHORT).show();
  202.         mMap.getUiSettings().setMapToolbarEnabled(false);
  203.     }
  204.  
  205.     private class Marker_date{
  206.         LatLng cord;
  207.         String name;
  208.         String id;
  209.         Marker_date(LatLng cord,String name,String id){
  210.             this.cord=cord;
  211.             this.name=name;
  212.             this.id=id;
  213.         }
  214.     }
  215.  
  216.     public String getUrl() {
  217.         return url;
  218.     }
  219.  
  220.     public void setUrl(String url) {
  221.         this.url = url;
  222.     }
  223.  
  224.  
  225. }
  226.