package de.edotzlaff.detection; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.os.Build; import android.os.CountDownTimer; import android.util.Log; import androidx.annotation.RequiresApi; import androidx.fragment.app.FragmentActivity; import android.os.Bundle; import android.widget.Toast; 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.BitmapDescriptorFactory; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.MarkerOptions; import de.edotzlaff.detection.detektion.Detektionssignal; import de.edotzlaff.detection.detektion.Epizentrum; import de.edotzlaff.detection.detektion.Erdbeben; import java.util.ArrayList; import java.util.Objects; public class EarthquakeLocation extends FragmentActivity implements OnMapReadyCallback { private GoogleMap mMap; private static final String TAGEPIZENTRUM = "Epizentrum"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_earthquake_location); // 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); } //########################################################################################################################################################################## //################################################################## vvv DB Code vvv ##################################################################################### //TODO Aron //################################################################## ^^^^ DB Code ^^^^ ################################################################################### //########################################################################################################################################################################## //########################################################################################################################################################################## //################################################################## vvv Calculate Epicenter vvv ######################################################################### //TODO Jan @RequiresApi(api = Build.VERSION_CODES.O) /* public Epizentrum ermittleEpizentrum(DataSnapshot data) { Erdbeben erdbeben = new Erdbeben(); erdbeben.addDetektionssignalList(mapToDetektionssignale(data)); Epizentrum epizentrum = new Epizentrum(); epizentrum = erdbeben.ermittleEpizentrum(); if(Objects.isNull(epizentrum)) { Log.i(TAGEPIZENTRUM, "Kein Epizentrum vorhanden"); } else { Log.i(TAGEPIZENTRUM, "Epizentrum konnte ermittelt werden, Koordinaten: " + epizentrum.getKoordinaten().getX() + " " + epizentrum.getKoordinaten().getY()); } return epizentrum; } */ /* public ArrayList mapToDetektionssignale(DataSnapshot data) { ArrayList detektionssignale = new ArrayList<>(); for(data.child("overviewnodes").getChildernKey) { Detektionssignal detektionssignal = new Detektionssignal(); detektionssignal.setAnkunftsZeit(); detektionssignal.setDeviceId(); detektionssignal.setKoordinaten(data.child("overviewnodes").child("IDG" + f).child("d_breitengrad").getValue().toString(), data.child("overviewnodes").child("IDG" + f).child("e_laengengrad").getValue().toString()); detektionssignal.setGeschwErdbeben(); detektionssignale.add(detektionssignal); } return detektionssignale; } */ //################################################################## ^^^^ Calculate Epicenter ^^^^ ####################################################################### //########################################################################################################################################################################## //########################################################################################################################################################################## //################################################################## vvv Maps Code vvv ################################################################################### @Override public void onMapReady(GoogleMap googleMap) { mMap = googleMap; //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 .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 .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 .defaultMarker(BitmapDescriptorFactory.HUE_GREEN))); //man könnten noch eine IF Abfrage einbauen falls es 4 Devices gibt // Add a marker in Epicenter LatLng epicenter = new LatLng(-34, 151); mMap.addMarker(new MarkerOptions().position(epicenter).title("Epicenter")); mMap.moveCamera(CameraUpdateFactory.newLatLng(epicenter)); } //################################################################## ^^^^ Maps Code ^^^^ ################################################################################# //########################################################################################################################################################################## }