123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- package de.edotzlaff.schockwelle;
-
- import androidx.annotation.NonNull;
- import androidx.fragment.app.FragmentActivity;
-
- import android.location.Location;
- import android.os.Bundle;
- import android.os.SystemClock;
- import android.util.Log;
- import android.widget.TextView;
-
- 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.LatLng;
- import com.google.android.gms.maps.model.MarkerOptions;
- import com.google.firebase.database.DataSnapshot;
- import com.google.firebase.database.DatabaseError;
- import com.google.firebase.database.DatabaseReference;
- import com.google.firebase.database.FirebaseDatabase;
- import com.google.firebase.database.ValueEventListener;
-
- import org.w3c.dom.Text;
-
- public class SensorMapsActivity extends FragmentActivity implements OnMapReadyCallback {
-
- private GoogleMap mMap;
- private DatabaseReference mDatenbank;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_sensor_maps);
-
- TextView tv= (TextView) findViewById(R.id.txtSensor);
-
- initMap();
- }
-
- void initMap(){
- // 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);
- }
-
- @Override
- public void onMapReady(GoogleMap googleMap) {
- mMap = googleMap;
-
- // Add a marker in Sydney and move the camera
- LatLng sydney = new LatLng(-34, 151);
- mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
- mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
- }
-
- //TODO Edward: Mit Methode getDataBaseValues werden die Werte in der DB abgefragt. In Methode processDataBaseValues werden diese beispielhaft ausgelesen. Kann nach Bedarf angepasst werden.
- public void getDataBaseValues()
- {
- mDatenbank = FirebaseDatabase.getInstance().getReference();
- mDatenbank.addValueEventListener(new ValueEventListener() {
- @Override
- public void onDataChange(@NonNull DataSnapshot snapshot) {
- processDataBaseValues(snapshot); //Daten - Snapshot, Übergabe an Methode DataChangeProtocol
- }
- @Override
- public void onCancelled(@NonNull DatabaseError error) {
- getDataBaseFailure(error);
- }
- });
- }
-
- public void processDataBaseValues (DataSnapshot data)
- {
- for (int i = 1; i<=4; i++) //Für alle IDG 1-4 werden Werte ausgegeben
- {
- //####### Auslesen für String-Werte #######:
- String ipAdresse = data.child("overview").child("IDG" + i).child("ip").getValue().toString();
-
- //####### Auslesen für boolean-Werte #######:
- String vibrationString = data.child("overview").child("IDG" + i).child("vibration").getValue().toString();
- boolean vibration;
- if(vibrationString == "true"){
- vibration = true;
- }else{
- vibration = false;
- }
-
- //####### Auslesen für double-Werte #######:
- String breitengradString = data.child("overview").child("IDG" + i).child("breitengrad").getValue().toString();
- String laengengradString = data.child("overview").child("IDG" + i).child("laengengrad").getValue().toString();
- double breitengrad = Double.parseDouble(breitengradString);
- double laengengrad = Double.parseDouble(laengengradString);
-
- //####### Auslesen für long-Werte #######:
- String timestampString = data.child("overview").child("IDG" + i).child("timestamp").getValue().toString();
- long timestamp = Long.parseLong(timestampString);
-
- //####### Auslesen für ing-Werte #######:
- String amplitudeString = data.child("overview").child("IDG" + i).child("amplitude").getValue().toString();
- int amplitude = Integer.parseInt(amplitudeString);
-
- //####### Optional zur Kontrolle #######:
- /*
- System.out.println("IDG" + i + " - IP:" + data.child("overview").child("IDG" + i).child("ip").getValue().toString());
- System.out.println("IDG" + i + " - Vibration:" + data.child("overview").child("IDG" + i).child("vibration").getValue().toString());
- System.out.println("IDG" + i + " - Zeitstempel:" + data.child("overview").child("IDG" + i).child("timestamp").getValue().toString());
- System.out.println("IDG" + i + " - Breitengrad:" + data.child("overview").child("IDG" + i).child("breitengrad").getValue().toString());
- System.out.println("IDG" + i + " - Laengengrad:" + data.child("overview").child("IDG" + i).child("laengengrad").getValue().toString());
- System.out.println("IDG" + i + " - Amplitude:" + data.child("overview").child("IDG" + i).child("amplitude").getValue().toString());
- */
- }
- }
-
- public void getDataBaseFailure (DatabaseError error)
- {
- System.out.println("Fehler");
- Log.w("Datenbankfehler", error.toException());
- }
-
- //TODO Edward Distanz zwischen zwei Punkten berechnen
- //TODO Edward Dauer für Timer berechnen bis Smartphone vibriert
- /*
- private float distance(double currentlatitude, double currentlongitude, double originLat, double originLon) {
-
- float[] results = new float[1];
- Location.distanceBetween(currentlatitude, currentlongitude, -34, 151, results);
- float distanceInMeters = results[0];
-
- return distanceInMeters;
- }
- */
- }
|