Pre-AlphaV7

This commit is contained in:
Raz492 2021-06-25 21:40:20 +02:00
parent 48d53ca1d9
commit d3a1380658
3 changed files with 57 additions and 59 deletions

View File

@ -6,6 +6,7 @@ import android.hardware.SensorEventListener;
import android.hardware.SensorManager; import android.hardware.SensorManager;
import android.os.Build; import android.os.Build;
import android.os.CountDownTimer; import android.os.CountDownTimer;
import android.provider.ContactsContract;
import android.util.Log; import android.util.Log;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
@ -31,6 +32,7 @@ import com.google.firebase.database.FirebaseDatabase;
import de.edotzlaff.detection.detektion.Detektionssignal; import de.edotzlaff.detection.detektion.Detektionssignal;
import de.edotzlaff.detection.detektion.Epizentrum; import de.edotzlaff.detection.detektion.Epizentrum;
import de.edotzlaff.detection.detektion.Erdbeben; import de.edotzlaff.detection.detektion.Erdbeben;
import de.edotzlaff.detection.detektion.berechnung.mathObjekte.Koordinaten;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
@ -42,11 +44,15 @@ public class EarthquakeLocation extends FragmentActivity implements OnMapReadyCa
private GoogleMap mMap; private GoogleMap mMap;
private static final String TAGEPIZENTRUM = "Epizentrum"; private static final String TAGEPIZENTRUM = "Epizentrum";
private DatabaseReference mDatenbank; private DatabaseReference mDatenbank;
private double latitudeD1, latitudeD2, latitudeD3, latitudeD4;
private double longitudeD1, longitudeD2, longitudeD3, longitudeD4;
private String dev1, dev2, dev3, dev4;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_earthquake_location); setContentView(R.layout.activity_earthquake_location);
getLocationInfo();
// Obtain the SupportMapFragment and get notified when the map is ready to be used. // Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map); SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
mapFragment.getMapAsync(this); mapFragment.getMapAsync(this);
@ -56,7 +62,7 @@ public class EarthquakeLocation extends FragmentActivity implements OnMapReadyCa
//################################################################## vvv DB Code vvv ##################################################################################### //################################################################## vvv DB Code vvv #####################################################################################
public void getDataBaseInfo(int k) public void getLocationInfo()
{ {
mDatenbank = FirebaseDatabase.getInstance().getReference().child("overviewdetection"); mDatenbank = FirebaseDatabase.getInstance().getReference().child("overviewdetection");
mDatenbank.get().addOnCompleteListener(new OnCompleteListener<DataSnapshot>() { mDatenbank.get().addOnCompleteListener(new OnCompleteListener<DataSnapshot>() {
@ -66,31 +72,48 @@ public class EarthquakeLocation extends FragmentActivity implements OnMapReadyCa
if (!task.isSuccessful()) { if (!task.isSuccessful()) {
System.out.println("Datenbank Fehler in getDataBaseValuesNoListener"); System.out.println("Datenbank Fehler in getDataBaseValuesNoListener");
} }
else { else{
mapToDetektionssignale(task.getResult()); defineGPSforMapping(task.getResult());
//ermittleEpizentrum(task.getResult());
//mapToDetektionssignale(task.getResult());
} }
} }
}); });
} }
public double getLocationInfo(String specific,int index) public void defineGPSforMapping(DataSnapshot data)
{ {
double kp = 5; String breitengradString;
mDatenbank = FirebaseDatabase.getInstance().getReference().child("overviewdetection"); String laengengradString;
mDatenbank.get().addOnCompleteListener(new OnCompleteListener<DataSnapshot>() { String androidID;
@RequiresApi(api = Build.VERSION_CODES.O) for(int i =1; i<=3; i++)
@Override {
public void onComplete(@NonNull Task<DataSnapshot> task) { breitengradString = data.child("IDG" + i).child("d_breitengrad").getValue().toString();
if (!task.isSuccessful()) { laengengradString = data.child("IDG" + i).child("e_laengengrad").getValue().toString();
System.out.println("Datenbank Fehler in getDataBaseValuesNoListener"); androidID = data.child("IDG" + i).child("a_androidid").getValue().toString();
} double breitengrad = Double.parseDouble(breitengradString);
else { double laengengrad = Double.parseDouble(laengengradString);
}
switch (i){
case 1:
latitudeD1 = breitengrad;
longitudeD1 = laengengrad;
dev1 = androidID;
break;
case 2:
latitudeD2 = breitengrad;
longitudeD2 = laengengrad;
dev2 = androidID;
break;
case 3:
latitudeD3 = breitengrad;
longitudeD3 = laengengrad;
dev3 = androidID;
break;
default:
break;
} }
}
});
return kp;
} }
@ -103,6 +126,7 @@ public class EarthquakeLocation extends FragmentActivity implements OnMapReadyCa
@RequiresApi(api = Build.VERSION_CODES.O) @RequiresApi(api = Build.VERSION_CODES.O)
public Epizentrum ermittleEpizentrum(DataSnapshot data) public Epizentrum ermittleEpizentrum(DataSnapshot data)
{ {
System.out.println("############## EPIZENTRUM ###############");
Erdbeben erdbeben = new Erdbeben(); Erdbeben erdbeben = new Erdbeben();
erdbeben.addDetektionssignalList(mapToDetektionssignale(data)); erdbeben.addDetektionssignalList(mapToDetektionssignale(data));
@ -121,10 +145,10 @@ public class EarthquakeLocation extends FragmentActivity implements OnMapReadyCa
} }
@RequiresApi(api = Build.VERSION_CODES.O) @RequiresApi(api = Build.VERSION_CODES.O)
public ArrayList<Detektionssignal> mapToDetektionssignale(DataSnapshot data) public ArrayList<Detektionssignal> mapToDetektionssignale(DataSnapshot data)
{ {
System.out.println("################# ARRAYLIST ####################");
ArrayList<Detektionssignal> detektionssignale = new ArrayList<>(); ArrayList<Detektionssignal> detektionssignale = new ArrayList<>();
for(int i=1; i<=3; i++) for(int i=1; i<=3; i++)
{ {
@ -139,20 +163,19 @@ public class EarthquakeLocation extends FragmentActivity implements OnMapReadyCa
//ID als String //ID als String
detektionssignal.setDeviceId(data.child("IDG" + i).child("a_androidid").getValue().toString()); detektionssignal.setDeviceId(data.child("IDG" + i).child("a_androidid").getValue().toString());
//Koordinaten als ??? //Koordinaten
String breitengradString = data.child("IDG" + i).child("d_breitengrad").getValue().toString(); String breitengradString = data.child("IDG" + i).child("d_breitengrad").getValue().toString();
String laengengradString = data.child("IDG" + i).child("e_laengengrad").getValue().toString(); String laengengradString = data.child("IDG" + i).child("e_laengengrad").getValue().toString();
double breitengrad = Double.parseDouble(breitengradString); double breitengrad = Double.parseDouble(breitengradString);
double laengengrad = Double.parseDouble(laengengradString); double laengengrad = Double.parseDouble(laengengradString);
//TODO @Jan In welchem Datenformat muss breitengrad und laengengrad hier rein? Außerdem welche Einheit? m/s oder km/s? Koordinaten koordinaten = new Koordinaten(breitengrad, laengengrad);
//detektionssignal.setKoordinaten(breitengrad, laengengrad); detektionssignal.setKoordinaten(koordinaten);
//Wellengeschwindigkeit als int //Welle in m/s
String welle = data.child("IDG" + i).child("w_wellengeschwindigkeit").getValue().toString(); String welle = data.child("IDG" + i).child("w_wellengeschwindigkeit").getValue().toString();
int wellengeschwindigkeit = Integer.parseInt(welle); int wellengeschwindigkeit = Integer.parseInt(welle);
detektionssignal.setGeschwErdbeben(wellengeschwindigkeit); detektionssignal.setGeschwErdbeben(wellengeschwindigkeit);
//Detektionssignal
detektionssignale.add(detektionssignal); detektionssignale.add(detektionssignal);
} }
return detektionssignale; return detektionssignale;
@ -163,6 +186,7 @@ public class EarthquakeLocation extends FragmentActivity implements OnMapReadyCa
//########################################################################################################################################################################## //##########################################################################################################################################################################
//########################################################################################################################################################################## //##########################################################################################################################################################################
//################################################################## vvv Maps Code vvv ################################################################################### //################################################################## vvv Maps Code vvv ###################################################################################
@ -172,18 +196,18 @@ public class EarthquakeLocation extends FragmentActivity implements OnMapReadyCa
//TODO Aron: Daten aus DB in die jeweiligen Devices einsetzten //TODO Aron: Daten aus DB in die jeweiligen Devices einsetzten
//aus DB für Device 1 long lat //aus DB für Device 1 long lat
LatLng divice1 = new LatLng(-34, 152); LatLng device1 = new LatLng(latitudeD1, longitudeD1);
mMap.addMarker(new MarkerOptions().position(divice1).title("Device 1").icon(BitmapDescriptorFactory mMap.addMarker(new MarkerOptions().position(device1).title("Device 1").icon(BitmapDescriptorFactory
.defaultMarker(BitmapDescriptorFactory.HUE_GREEN))); .defaultMarker(BitmapDescriptorFactory.HUE_GREEN)));
//aus DB für Device 2 long lat //aus DB für Device 2 long lat
LatLng divice2 = new LatLng(-33, 152); LatLng device2 = new LatLng(latitudeD2, longitudeD2);
mMap.addMarker(new MarkerOptions().position(divice2).title("Device 2").icon(BitmapDescriptorFactory mMap.addMarker(new MarkerOptions().position(device2).title("Device 2").icon(BitmapDescriptorFactory
.defaultMarker(BitmapDescriptorFactory.HUE_GREEN))); .defaultMarker(BitmapDescriptorFactory.HUE_GREEN)));
//aus DB für Device 3 long lat //aus DB für Device 3 long lat
LatLng divice3 = new LatLng(-34, 150); LatLng device3 = new LatLng(latitudeD3, longitudeD3);
mMap.addMarker(new MarkerOptions().position(divice3).title("Device 3").icon(BitmapDescriptorFactory mMap.addMarker(new MarkerOptions().position(device3).title("Device 3").icon(BitmapDescriptorFactory
.defaultMarker(BitmapDescriptorFactory.HUE_GREEN))); .defaultMarker(BitmapDescriptorFactory.HUE_GREEN)));
//man könnten noch eine IF Abfrage einbauen falls es 4 Devices gibt //man könnten noch eine IF Abfrage einbauen falls es 4 Devices gibt

View File

@ -491,33 +491,6 @@ public class MainActivity extends AppCompatActivity {
//################################################################## ^^^^ DB Code ^^^^ ################################################################################### //################################################################## ^^^^ DB Code ^^^^ ###################################################################################
//########################################################################################################################################################################## //##########################################################################################################################################################################
//##########################################################################################################################################################################
//################################################################## vvv Set Text of Device 1/2/3 on MainActivity vvv ####################################################
private void setText(){
TextView txtDevice1 = (TextView) findViewById(R.id.txtdevice1);
TextView txtDevice2 = (TextView) findViewById(R.id.txtdevice2);
TextView txtDevice3 = (TextView) findViewById(R.id.txtdevice3);
TextView txtDevice4 = (TextView) findViewById(R.id.txtdevice4);
txtDevice1.setText("Device 1"+"\n"+"Time Stamp: "+ Calendar.getInstance().getTimeInMillis()+"\n"+"Latitude: "+breitengrad+"\n"+ "Longitude: "+ laengengrad+"\n");
txtDevice2.setText("Device 2"+"\n"+"Time Stamp: "+ Calendar.getInstance().getTimeInMillis()+"\n"+"Latitude: "+breitengrad+"\n"+ "Longitude: "+ laengengrad+"\n");
txtDevice3.setText("Device 3"+"\n"+"Time Stamp: "+ Calendar.getInstance().getTimeInMillis()+"\n"+"Latitude: "+breitengrad+"\n"+ "Longitude: "+ laengengrad+"\n");
txtDevice4.setText("Device 4"+"\n"+"Time Stamp: "+ Calendar.getInstance().getTimeInMillis()+"\n"+"Latitude: "+breitengrad+"\n"+ "Longitude: "+ laengengrad+"\n");
}
//################################################################## ^^^^ Set Text of Device 1/2/3 on MainActivity ^^^^ ##################################################
//##########################################################################################################################################################################
//########################################################################################################################################################################## //##########################################################################################################################################################################
//################################################################## vvv Maps Code vvv ################################################################################### //################################################################## vvv Maps Code vvv ###################################################################################

View File

@ -1,6 +1,7 @@
package de.edotzlaff.detection.detektion.berechnung; package de.edotzlaff.detection.detektion.berechnung;
import android.location.Location;
import android.os.Build; import android.os.Build;
import androidx.annotation.RequiresApi; import androidx.annotation.RequiresApi;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
@ -163,7 +164,7 @@ public class EpizentrumRechnung {
public LocalDateTime berechneEntstehungsZeitpunktLongLatt(Detektionssignal detektionssignal, Koordinaten koordEpi) public LocalDateTime berechneEntstehungsZeitpunktLongLatt(Detektionssignal detektionssignal, Koordinaten koordEpi)
{ {
float[] results = new float[1]; float[] results = new float[1];
LocalDateTime.distanceBetween(detektionssignal.getKoordinaten().getX(), detektionssignal.getKoordinaten().getY(), koordEpi.getX(), koordEpi.getY()); Location.distanceBetween(detektionssignal.getKoordinaten().getX(), detektionssignal.getKoordinaten().getY(), koordEpi.getX(), koordEpi.getY(), results);
float distanceInMeters = results[0]; float distanceInMeters = results[0];
int sec = (int) distanceInMeters/ detektionssignal.geschwErdbeben; int sec = (int) distanceInMeters/ detektionssignal.geschwErdbeben;
return detektionssignal.getAnkunftsZeit().minusSeconds(sec); return detektionssignal.getAnkunftsZeit().minusSeconds(sec);