Projektarbeit
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

SensorMapsActivity.java 5.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. package de.edotzlaff.schockwelle;
  2. import androidx.annotation.NonNull;
  3. import androidx.fragment.app.FragmentActivity;
  4. import android.location.Location;
  5. import android.os.Bundle;
  6. import android.os.SystemClock;
  7. import android.util.Log;
  8. import android.widget.TextView;
  9. import com.google.android.gms.maps.CameraUpdateFactory;
  10. import com.google.android.gms.maps.GoogleMap;
  11. import com.google.android.gms.maps.OnMapReadyCallback;
  12. import com.google.android.gms.maps.SupportMapFragment;
  13. import com.google.android.gms.maps.model.LatLng;
  14. import com.google.android.gms.maps.model.MarkerOptions;
  15. import com.google.firebase.database.DataSnapshot;
  16. import com.google.firebase.database.DatabaseError;
  17. import com.google.firebase.database.DatabaseReference;
  18. import com.google.firebase.database.FirebaseDatabase;
  19. import com.google.firebase.database.ValueEventListener;
  20. import org.w3c.dom.Text;
  21. public class SensorMapsActivity extends FragmentActivity implements OnMapReadyCallback {
  22. private GoogleMap mMap;
  23. private DatabaseReference mDatenbank;
  24. @Override
  25. protected void onCreate(Bundle savedInstanceState) {
  26. super.onCreate(savedInstanceState);
  27. setContentView(R.layout.activity_sensor_maps);
  28. TextView tv= (TextView) findViewById(R.id.txtSensor);
  29. initMap();
  30. }
  31. void initMap(){
  32. // Obtain the SupportMapFragment and get notified when the map is ready to be used.
  33. SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
  34. .findFragmentById(R.id.map);
  35. mapFragment.getMapAsync(this);
  36. }
  37. @Override
  38. public void onMapReady(GoogleMap googleMap) {
  39. mMap = googleMap;
  40. // Add a marker in Sydney and move the camera
  41. LatLng sydney = new LatLng(-34, 151);
  42. mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
  43. mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
  44. }
  45. //TODO Edward: Mit Methode getDataBaseValues werden die Werte in der DB abgefragt. In Methode processDataBaseValues werden diese beispielhaft ausgelesen. Kann nach Bedarf angepasst werden.
  46. public void getDataBaseValues()
  47. {
  48. mDatenbank = FirebaseDatabase.getInstance().getReference();
  49. mDatenbank.addValueEventListener(new ValueEventListener() {
  50. @Override
  51. public void onDataChange(@NonNull DataSnapshot snapshot) {
  52. processDataBaseValues(snapshot); //Daten - Snapshot, Übergabe an Methode DataChangeProtocol
  53. }
  54. @Override
  55. public void onCancelled(@NonNull DatabaseError error) {
  56. getDataBaseFailure(error);
  57. }
  58. });
  59. }
  60. public void processDataBaseValues (DataSnapshot data)
  61. {
  62. for (int i = 1; i<=4; i++) //Für alle IDG 1-4 werden Werte ausgegeben
  63. {
  64. //####### Auslesen für String-Werte #######:
  65. String ipAdresse = data.child("overview").child("IDG" + i).child("ip").getValue().toString();
  66. //####### Auslesen für boolean-Werte #######:
  67. String vibrationString = data.child("overview").child("IDG" + i).child("vibration").getValue().toString();
  68. boolean vibration;
  69. if(vibrationString == "true"){
  70. vibration = true;
  71. }else{
  72. vibration = false;
  73. }
  74. //####### Auslesen für double-Werte #######:
  75. String breitengradString = data.child("overview").child("IDG" + i).child("breitengrad").getValue().toString();
  76. String laengengradString = data.child("overview").child("IDG" + i).child("laengengrad").getValue().toString();
  77. double breitengrad = Double.parseDouble(breitengradString);
  78. double laengengrad = Double.parseDouble(laengengradString);
  79. //####### Auslesen für long-Werte #######:
  80. String timestampString = data.child("overview").child("IDG" + i).child("timestamp").getValue().toString();
  81. long timestamp = Long.parseLong(timestampString);
  82. //####### Auslesen für ing-Werte #######:
  83. String amplitudeString = data.child("overview").child("IDG" + i).child("amplitude").getValue().toString();
  84. int amplitude = Integer.parseInt(amplitudeString);
  85. //####### Optional zur Kontrolle #######:
  86. /*
  87. System.out.println("IDG" + i + " - IP:" + data.child("overview").child("IDG" + i).child("ip").getValue().toString());
  88. System.out.println("IDG" + i + " - Vibration:" + data.child("overview").child("IDG" + i).child("vibration").getValue().toString());
  89. System.out.println("IDG" + i + " - Zeitstempel:" + data.child("overview").child("IDG" + i).child("timestamp").getValue().toString());
  90. System.out.println("IDG" + i + " - Breitengrad:" + data.child("overview").child("IDG" + i).child("breitengrad").getValue().toString());
  91. System.out.println("IDG" + i + " - Laengengrad:" + data.child("overview").child("IDG" + i).child("laengengrad").getValue().toString());
  92. System.out.println("IDG" + i + " - Amplitude:" + data.child("overview").child("IDG" + i).child("amplitude").getValue().toString());
  93. */
  94. }
  95. }
  96. public void getDataBaseFailure (DatabaseError error)
  97. {
  98. System.out.println("Fehler");
  99. Log.w("Datenbankfehler", error.toException());
  100. }
  101. //TODO Edward Distanz zwischen zwei Punkten berechnen
  102. //TODO Edward Dauer für Timer berechnen bis Smartphone vibriert
  103. /*
  104. private float distance(double currentlatitude, double currentlongitude, double originLat, double originLon) {
  105. float[] results = new float[1];
  106. Location.distanceBetween(currentlatitude, currentlongitude, -34, 151, results);
  107. float distanceInMeters = results[0];
  108. return distanceInMeters;
  109. }
  110. */
  111. }