Browse Source

Pre-AlphaV7

EpiTest
Raz492 2 years ago
parent
commit
d3a1380658

+ 55
- 31
app/src/main/java/de/edotzlaff/detection/EarthquakeLocation.java View File

@@ -6,6 +6,7 @@ import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Build;
import android.os.CountDownTimer;
import android.provider.ContactsContract;
import android.util.Log;

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.Epizentrum;
import de.edotzlaff.detection.detektion.Erdbeben;
import de.edotzlaff.detection.detektion.berechnung.mathObjekte.Koordinaten;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
@@ -42,11 +44,15 @@ public class EarthquakeLocation extends FragmentActivity implements OnMapReadyCa
private GoogleMap mMap;
private static final String TAGEPIZENTRUM = "Epizentrum";
private DatabaseReference mDatenbank;
private double latitudeD1, latitudeD2, latitudeD3, latitudeD4;
private double longitudeD1, longitudeD2, longitudeD3, longitudeD4;
private String dev1, dev2, dev3, dev4;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_earthquake_location);
getLocationInfo();
// 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);
@@ -56,7 +62,7 @@ public class EarthquakeLocation extends FragmentActivity implements OnMapReadyCa
//################################################################## vvv DB Code vvv #####################################################################################


public void getDataBaseInfo(int k)
public void getLocationInfo()
{
mDatenbank = FirebaseDatabase.getInstance().getReference().child("overviewdetection");
mDatenbank.get().addOnCompleteListener(new OnCompleteListener<DataSnapshot>() {
@@ -66,31 +72,48 @@ public class EarthquakeLocation extends FragmentActivity implements OnMapReadyCa
if (!task.isSuccessful()) {
System.out.println("Datenbank Fehler in getDataBaseValuesNoListener");
}
else {
mapToDetektionssignale(task.getResult());
else{
defineGPSforMapping(task.getResult());
//ermittleEpizentrum(task.getResult());
//mapToDetektionssignale(task.getResult());
}
}
});
}

public double getLocationInfo(String specific,int index)
public void defineGPSforMapping(DataSnapshot data)
{
double kp = 5;
mDatenbank = FirebaseDatabase.getInstance().getReference().child("overviewdetection");
mDatenbank.get().addOnCompleteListener(new OnCompleteListener<DataSnapshot>() {
@RequiresApi(api = Build.VERSION_CODES.O)
@Override
public void onComplete(@NonNull Task<DataSnapshot> task) {
if (!task.isSuccessful()) {
System.out.println("Datenbank Fehler in getDataBaseValuesNoListener");
}
else {
}
}

});
String breitengradString;
String laengengradString;
String androidID;
for(int i =1; i<=3; i++)
{
breitengradString = data.child("IDG" + i).child("d_breitengrad").getValue().toString();
laengengradString = data.child("IDG" + i).child("e_laengengrad").getValue().toString();
androidID = data.child("IDG" + i).child("a_androidid").getValue().toString();
double breitengrad = Double.parseDouble(breitengradString);
double laengengrad = Double.parseDouble(laengengradString);

return kp;
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;
}
}
}


@@ -103,6 +126,7 @@ public class EarthquakeLocation extends FragmentActivity implements OnMapReadyCa
@RequiresApi(api = Build.VERSION_CODES.O)
public Epizentrum ermittleEpizentrum(DataSnapshot data)
{
System.out.println("############## EPIZENTRUM ###############");
Erdbeben erdbeben = new Erdbeben();
erdbeben.addDetektionssignalList(mapToDetektionssignale(data));

@@ -121,10 +145,10 @@ public class EarthquakeLocation extends FragmentActivity implements OnMapReadyCa
}



@RequiresApi(api = Build.VERSION_CODES.O)
public ArrayList<Detektionssignal> mapToDetektionssignale(DataSnapshot data)
{
System.out.println("################# ARRAYLIST ####################");
ArrayList<Detektionssignal> detektionssignale = new ArrayList<>();
for(int i=1; i<=3; i++)
{
@@ -139,20 +163,19 @@ public class EarthquakeLocation extends FragmentActivity implements OnMapReadyCa
//ID als String
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 laengengradString = data.child("IDG" + i).child("e_laengengrad").getValue().toString();
double breitengrad = Double.parseDouble(breitengradString);
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?
//detektionssignal.setKoordinaten(breitengrad, laengengrad);
Koordinaten koordinaten = new Koordinaten(breitengrad, laengengrad);
detektionssignal.setKoordinaten(koordinaten);

//Wellengeschwindigkeit als int
//Welle in m/s
String welle = data.child("IDG" + i).child("w_wellengeschwindigkeit").getValue().toString();
int wellengeschwindigkeit = Integer.parseInt(welle);
detektionssignal.setGeschwErdbeben(wellengeschwindigkeit);

//Detektionssignal
detektionssignale.add(detektionssignal);
}
return detektionssignale;
@@ -163,6 +186,7 @@ public class EarthquakeLocation extends FragmentActivity implements OnMapReadyCa
//##########################################################################################################################################################################



//##########################################################################################################################################################################
//################################################################## 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
//aus DB für Device 1 long lat
LatLng divice1 = new LatLng(-34, 152);
mMap.addMarker(new MarkerOptions().position(divice1).title("Device 1").icon(BitmapDescriptorFactory
LatLng device1 = new LatLng(latitudeD1, longitudeD1);
mMap.addMarker(new MarkerOptions().position(device1).title("Device 1").icon(BitmapDescriptorFactory
.defaultMarker(BitmapDescriptorFactory.HUE_GREEN)));

//aus DB für Device 2 long lat
LatLng divice2 = new LatLng(-33, 152);
mMap.addMarker(new MarkerOptions().position(divice2).title("Device 2").icon(BitmapDescriptorFactory
LatLng device2 = new LatLng(latitudeD2, longitudeD2);
mMap.addMarker(new MarkerOptions().position(device2).title("Device 2").icon(BitmapDescriptorFactory
.defaultMarker(BitmapDescriptorFactory.HUE_GREEN)));

//aus DB für Device 3 long lat
LatLng divice3 = new LatLng(-34, 150);
mMap.addMarker(new MarkerOptions().position(divice3).title("Device 3").icon(BitmapDescriptorFactory
LatLng device3 = new LatLng(latitudeD3, longitudeD3);
mMap.addMarker(new MarkerOptions().position(device3).title("Device 3").icon(BitmapDescriptorFactory
.defaultMarker(BitmapDescriptorFactory.HUE_GREEN)));

//man könnten noch eine IF Abfrage einbauen falls es 4 Devices gibt

+ 0
- 27
app/src/main/java/de/edotzlaff/detection/MainActivity.java View File

@@ -491,33 +491,6 @@ public class MainActivity extends AppCompatActivity {
//################################################################## ^^^^ 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 ###################################################################################


+ 2
- 1
app/src/main/java/de/edotzlaff/detection/detektion/berechnung/EpizentrumRechnung.java View File

@@ -1,6 +1,7 @@
package de.edotzlaff.detection.detektion.berechnung;


import android.location.Location;
import android.os.Build;
import androidx.annotation.RequiresApi;
import com.google.common.collect.ImmutableSet;
@@ -163,7 +164,7 @@ public class EpizentrumRechnung {
public LocalDateTime berechneEntstehungsZeitpunktLongLatt(Detektionssignal detektionssignal, Koordinaten koordEpi)
{
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];
int sec = (int) distanceInMeters/ detektionssignal.geschwErdbeben;
return detektionssignal.getAnkunftsZeit().minusSeconds(sec);

Loading…
Cancel
Save