// 'use client' // import 'mapbox-gl/dist/mapbox-gl.css'; // import mapboxgl from "mapbox-gl"; // import './ui.css'; // import React, { useRef, useEffect, useState } from 'react'; // import io from 'socket.io-client' // import Worker from 'web-worker'; // import TitikGempa from './components/mapbox_marker/titik_gempa'; // import GempaBumiAlert from './components/GempaBumiAlert'; // import * as turf from '@turf/turf' // import Card from './components/card/card'; // import { createRoot } from 'react-dom/client'; // import AnimatedPopup from 'mapbox-gl-animated-popup'; // import ItemKotaTerdampak from './components/ItemKotaTerdampak'; // import { KotaTerdampak, InfoGempa, InfoTsunami } from "../libs/interface"; // import Jam from './components/Jam'; // const { DateTime } = require("luxon"); // import { IoLocationSharp } from "react-icons/io5"; // import { XMLParser, XMLBuilder, XMLValidator } from "fast-xml-parser"; // import TitikTsunami from './components/mapbox_marker/titik_tsunami'; // // import { HexGrid, Layout, Hexagon, Text, Pattern, Path, Hex, GridGenerator, HexUtils } from 'react-hexgrid'; // // import { css } from "@emotion/react" // // const initialConfig: any = { // // width: 1000, // // height: 800, // // layout: { width: 8, height: 8, flat: false, spacing: 1.02 }, // // origin: { x: 0, y: 0 }, // // map: "parallelogram", // // mapProps: [10], // // } // // const generator = GridGenerator.getGenerator(initialConfig.map) // // const initialHexagons: Hex[] = generator(initialConfig.mapProps) // mapboxgl.accessToken = 'pk.eyJ1IjoiYmFndXNpbmRyYXlhbmEiLCJhIjoiY2p0dHMxN2ZhMWV5bjRlbnNwdGY4MHFuNSJ9.0j5UAU7dprNjZrouWnoJyg'; // let socket; // export default function Home() { // // const [hexagons, setHexagons] = React.useState(initialHexagons) // // const [config, setConfig] = React.useState(initialConfig) // // const layout = config.layout // // const size = { x: layout.width, y: layout.height } // const dangerSound = "/sounds/siren-alarm-96503.mp3" // const smallEarthQuakeSound = "/sounds/wrong-answer-129254.mp3" // const tsunamiAlertSound = "sounds/security-alarm-80493.mp3" // const mapContainer = useRef(null); // Update the type of mapContainer ref // const map = useRef(null); // Update the type of the map ref // const [lng, setLng] = useState(123.90146694265115); // const [lat, setLat] = useState(-1.370489908625089); // const [zoom, setZoom] = useState(5); // const geoJsonData = useRef(null); // const geoJsonCoastline = useRef(null); // const geoJsonTitikGempa = useRef(null); // const worker = useRef(null); // const adaGempa = useRef(false); // const tgs = useRef([]); // const titikGempaBaru = useRef([]); // const tts = useRef([]); // const kts = useRef([]); // const markerDaerahs = useRef([]); // const daerahTsunami = useRef([]); // const lastGempaId = useRef(''); // const lastGempaKecilId = useRef(''); // const [detailInfoGempa, setDetailInfoGempa] = useState(null); // const [loadingScreen, setLoadingScreen] = useState(true); // const [gempaDirasakan, setGempaDirasakan] = useState(null); // const [gempaTerakhir, setGempaTerakhir] = useState(null); // const [events, setEvents] = useState([]); // const [alertGempaBumi, setAlertGempaBumi] = useState(null); // const [alertGempaBumis, setAlertGempaBumis] = useState([]); // const [alertTsunami, setAlertTsunami] = useState(null); // const [infoTsunami, setInfoTsunami] = useState(null); // const blinkInterval = useRef(null); // const warningHandler = async (data: any) => { // console.log("WARNING!!!"); // const time = new Date().toLocaleTimeString(); // const id = data.id ?? `tg-${time}`; // if (!map.current) return; // // map.current.flyTo({ // // center: [data.lng, data.lat], // // zoom: 7, // // essential: true // // }); // const nig: InfoGempa = { // id: id, // lng: parseFloat(data.lng), // lat: parseFloat(data.lat), // mag: parseFloat(data.mag || 9.0), // depth: data.depth || "10 Km", // message: data.message, // place: data.place, // time: data.time || new Date().toLocaleString(), // listKotaTerdampak: [] // }; // const tg = new TitikGempa(id, nig, { // pWaveSpeed: 6000, // sWaveSpeed: 3000, // map: map.current!, // showMarker: true, // description: data.message, // showPopup: true, // showPopUpInSecond: 6, // zoomToPosition: true // }); // tgs.current.push(tg); // titikGempaBaru.current.push(tg); // setAlertGempaBumis([...alertGempaBumis, nig]); // // tgs.current.push(tg); // // tgs.current.sort(function (a: any, b: any) { // // return new Date(b.time).getTime() - new Date(a.time).getTime(); // // }); // const audioDangerElement = document.getElementById('danger'); // setTimeout(() => { // if (audioDangerElement) { // (audioDangerElement as HTMLAudioElement).play(); // } // setTimeout(() => { // var voice = new Audio("/voice/gempabumi.wav"); // voice.play(); // }, 2000); // }, 2000); // await new Promise(r => setTimeout(r, 6000)); // setEvents(tgs.current); // if (worker.current != null) { // adaGempa.current = true; // console.log("Send Wave"); // sendWave(); // } // if (audioDangerElement) { // //set volume down // (audioDangerElement as HTMLAudioElement).volume = 0.5; // } // } // function blinkCoastline() { // if (blinkInterval.current) { // clearInterval(blinkInterval.current); // } // blinkInterval.current = setInterval(() => { // const visibility = map.current!.getLayoutProperty( // 'outline-coastline', // 'visibility' // ); // map.current!.setLayoutProperty( // 'outline-coastline', // 'visibility', // visibility == 'visible' ? 'none' : 'visible' // ); // }, 1000); // } // const warningTsunamiHandler = async (data: any) => { // // setInfoTsunami(data); // if (blinkInterval.current) { // clearInterval(blinkInterval.current); // } // const results: any = []; // daerahTsunami.current = []; // const time = new Date().toLocaleTimeString(); // const id = data.id ?? `tg-${time}`; // const coordinates = data.point.coordinates.split(","); // const nit: InfoTsunami = { // id: id, // lng: parseFloat(coordinates[0]), // lat: parseFloat(coordinates[1]), // message: data.description + "\n" + data.instruction, // level: data.subject, // time: data.time || new Date().toLocaleString(), // listKotaTerdampak: [] // }; // let level = "WASPADA"; // for (let x = 0; x < data.wzarea.length; x++) { // const wz = data.wzarea[x]; // const cek = geoJsonCoastline.current.features.find((f) => // wz.district.replaceAll("-", " ") // .replaceAll("PULAU ", "") // .replaceAll("KEPULAUAN ", "") // .replaceAll(" BAGIAN UTARA", "") // .replaceAll(" BAGIAN BARAT", "") // .replaceAll(" BAGIAN SELATAN", "") // .replaceAll(" BAGIAN TIMUR", "") // === // f.properties.alt_name.replaceAll("KABUPATEN ", "") // .replaceAll("PULAU ", "") // .replaceAll("KEPULAUAN ", "")); // if (cek) { // let color = "yellow"; // if (wz.level == "SIAGA") { // color = "orange"; // } else if (wz.level == "AWAS") { // color = "red"; // } // if (level == "WASPADA" && wz.level == "SIAGA") { // level = wz.level; // } // if (level == "SIAGA" && wz.level == "AWAS") { // level = wz.level; // } // cek.properties.color = color; // results.push(cek); // const dist = turf.distance(turf.point([nit.lng, nit.lat]), turf.point([cek.properties.longitude, cek.properties.latitude])); // const timeDist = Math.floor(dist / 3) * 1000; // nit.listKotaTerdampak!.push({ // lng: cek.properties.longitude, // lat: cek.properties.latitude, // distance: dist, // name: cek.properties.alt_name, // hit: false, // timeArrival: new Date(new Date().getTime() + timeDist) // }); // } else { // // console.log(info.wzarea); // console.log(wz); // } // nit.listKotaTerdampak!.sort((a, b) => a.distance - b.distance); // } // for (let x = 0; x < results.length; x++) { // const element = results[x]; // const p: number[] = turf.centroid(element).geometry.coordinates; // if (markerDaerahs.current.findIndex((el) => el[0] == p[0] && el[1] == p[1]) == -1) { // markerDaerahs.current.push([p[0], p[1]]); // const markerParent = document.createElement('div'); // const markerEl = document.createElement('div'); // markerEl.innerHTML = '

' + element.properties.alt_name + '

'; // markerEl.classList.add('marker-daerah'); // markerEl.classList.add('show-pop-up'); // markerParent.appendChild(markerEl); // new mapboxgl.Marker(markerParent) // .setLngLat([p[0], p[1]]) // .addTo(map.current!) // } // } // const tt = new TitikTsunami(id, nit, { // pWaveSpeed: 6000, // sWaveSpeed: 3000, // map: map.current!, // showMarker: true, // description: data.description + "\n" + data.instruction, // showPopup: true, // showPopUpInSecond: 6, // zoomToPosition: true, // closePopUpInSecond: 13 // }); // tts.current.push(tt); // setAlertTsunami(tt); // daerahTsunami.current = results; // if (results.length > 0) { // if (map.current!.getSource('coastline')) { // (map.current!.getSource('coastline') as mapboxgl.GeoJSONSource).setData({ "type": "FeatureCollection", "features": results }); // } else { // map.current!.addSource('coastline', { // 'type': 'geojson', // 'data': { "type": "FeatureCollection", "features": results } // }); // } // map.current!.setLayoutProperty( // 'outline-coastline', // 'visibility', // 'visible' // ); // } else { // testDemoTsunami(); // return; // } // if (!map.current) return; // // map.current.flyTo({ // // center: [coordinates[0], coordinates[1]], // // zoom: 7, // // essential: true // // }); // blinkCoastline(); // map.current!.moveLayer('outline-coastline'); // // tgs.current.push(nt); // // setEvents(tgs.current); // console.log("WARNING TSUNAMI!!!"); // var notif = new Audio(tsunamiAlertSound); // notif.loop = true; // notif.play(); // setTimeout(() => { // var voice = new Audio("/voice/terdeteksi.wav"); // voice.play(); // setTimeout(() => { // var voice = new Audio("/voice/" + level.toLowerCase() + ".wav"); // voice.play(); // setTimeout(() => { // var voice = new Audio("/voice/potensi.wav"); // voice.play(); // if (level == "AWAS") { // setTimeout(() => { // var voice = new Audio("/voice/evakuasi.wav"); // voice.play(); // setTimeout(() => { // notif.pause(); // }, 2000); // }, 6000); // } else { // setTimeout(() => { // var voice = new Audio("/voice/informasi.wav"); // voice.play(); // setTimeout(() => { // notif.pause(); // }, 2000); // }, 6000); // } // }, 5000); // }, 5000); // }, 2000); // setTimeout(() => { // const tsunamiWarning: HTMLDivElement = document.querySelector("#tsunami-warning") as HTMLDivElement; // //find div inside bg-tsunami // if (tsunamiWarning) { // const divs = tsunamiWarning.querySelectorAll(".show-pop-up"); // //loop and add class close-pop-up // divs.forEach((v) => { // v.classList.add("close-pop-up"); // }); // } // }, 9000); // setTimeout(() => { // const bgTsunami: HTMLDivElement = document.querySelector("#bg-tsunami .hex-bg") as HTMLDivElement; // //find div inside bg-tsunami // if (bgTsunami) { // const divs = bgTsunami.querySelectorAll("div"); // //loop and add class close-pop-up // divs.forEach((v) => { // v.classList.add("close-pop-up"); // }); // } // setTimeout(() => { // setAlertTsunami(null); // }, 1000); // setInfoTsunami(tt); // }, 10000); // } // const socketInitializer = () => { // if (socket != null) return; // fetch('/api/socket') // .then(() => { // console.log('Socket is initializing'); // socket = io(); // socket.on('connect', () => { // console.log('connected'); // }); // socket.on('warning', (v: any) => { // warningHandler(v); // }); // socket.on('message', (v: any) => { // console.log(v); // }); // }) // .catch((error) => { // console.error('Error initializing socket:', error); // }); // }; // const initWorker = () => { // worker.current = new Worker( // new URL('./worker.mjs', import.meta.url), // { type: 'module' } // ); // worker.current.postMessage({ type: 'geoJsonData', data: geoJsonData.current, coastline: geoJsonCoastline.current }); // worker.current.addEventListener('message', (event: any) => { // const data = event.data; // if (data.type == "checkMultiHighlightArea" && data.id == "wave") { // recieveWave(data); // } // }); // } // useEffect(() => { // if (map.current) return () => { }; // map.current = new mapboxgl.Map({ // container: mapContainer.current!, // style: 'mapbox://styles/mapbox/dark-v11', // center: [lng, lat], // zoom: zoom, // maxZoom: 22, // }); // map.current.on('load', () => { // // loadGeoJsonData(); // loadGeoJsonCoastline(); // }); // }); // useEffect(() => { // socketInitializer(); // if (socket) return () => { // socket!.disconnect(); // }; // }); // const sendWave = () => { // let t: any = []; // for (let i = 0; i < titikGempaBaru.current.length; i++) { // const v = titikGempaBaru.current[i]; // if (!v.finish) { // t.push({ // id: v.id, // center: v.center, // mag: v.mag, // depth: v.depth, // pWaveRadius: v.pWaveRadius, // sWaveRadius: v.sWaveRadius, // areaTerdampak: [], // message: v.description // }) // } // } // if (t.length > 0) { // worker.current!.postMessage({ type: 'checkMultiHighlightArea', titikGempa: t, id: "wave" }); // } else { // console.log("Not Send Wave"); // } // } // const isEqual = (a, b) => a.id === b.id && a.name === b.name; // const recieveWave = async (data: any) => { // let alerts: InfoGempa[] = []; // for (let x = 0; x < data.titikGempa.length; x++) { // const tg = data.titikGempa[x]; // const nig: InfoGempa = { // id: tg.id, // lng: parseFloat(tg.center[1]), // lat: parseFloat(tg.center[0]), // mag: tg.mag, // depth: tg.depth, // message: tg.message, // place: tg.place, // time: new Date().toLocaleString(), // listKotaTerdampak: [] // }; // for (let il = 0; il < tg.areaTerdampak.length; il++) { // const at = tg.areaTerdampak[il]; // const dist = turf.distance(turf.point([tg.center[0], tg.center[1]]), turf.point([at.center[0], at.center[1]])) - (tg.sWaveRadius / 1000); // const time = Math.floor(dist / 3) * 1000; // nig.listKotaTerdampak!.push({ // lng: at.center[1], // lat: at.center[0], // distance: dist, // name: at.alt_name, // hit: at.hit, // timeArrival: new Date(new Date().getTime() + time) // }); // } // //sort nig.listKotaTerdampak by distance // nig.listKotaTerdampak!.sort((a, b) => a.distance - b.distance); // alerts.push(nig); // } // //get last alert // if (alerts.length > 0) { // const fig = alerts.slice(-1).pop()!; // setAlertGempaBumi(new TitikGempa(fig.id, fig)); // } else { // setAlertGempaBumi(null); // } // const areas = data.area; // // Hapus data array objek yang sama // // const uniqueData = areas.filter((obj, index, self) => // // index === self.findIndex((t) => isEqual(t.properties.mhid, obj.properties.mhid)) // // ); // const uniqueData = areas; // for (let x = 0; x < uniqueData.length; x++) { // const element = uniqueData[x]; // const p: number[] = turf.centroid(element).geometry.coordinates; // if (markerDaerahs.current.findIndex((el) => el[0] == p[0] && el[1] == p[1]) == -1) { // markerDaerahs.current.push([p[0], p[1]]); // const markerParent = document.createElement('div'); // const markerEl = document.createElement('div'); // markerEl.innerHTML = '

' + element.properties.alt_name + '

'; // markerEl.classList.add('marker-daerah'); // markerEl.classList.add('show-pop-up'); // markerParent.appendChild(markerEl); // new mapboxgl.Marker(markerParent) // .setLngLat([p[0], p[1]]) // .addTo(map.current!) // } else { // const index = kts.current.findIndex((el) => el.lng == p[0] && el.lat == p[1]); // if (index != -1) { // // kts.current[index].distance += 16; // // kts.current[index].hit = element.properties.hit; // // setKotaTerdampak([...kotaTerdampak, ...kts.current]); // // countdownTime(); // } // } // } // if (map.current!.getSource('hightlight-wave')) { // (map.current!.getSource('hightlight-wave') as mapboxgl.GeoJSONSource).setData({ "type": "FeatureCollection", "features": uniqueData }); // } else { // map.current!.addSource('hightlight-wave', { // 'type': 'geojson', // 'data': { "type": "FeatureCollection", "features": uniqueData } // }); // } // if (!map.current!.getLayer('hightlight-wave-layer')) { // map.current!.addLayer({ // 'id': 'hightlight-wave-layer', // 'type': 'fill', // 'source': 'hightlight-wave', // 'layout': {}, // 'paint': { // 'fill-color': ['get', 'color'], // 'fill-opacity': 0.8 // } // }); // map.current!.moveLayer('outline'); // map.current!.moveLayer('outline-coastline'); // for (let tg of tgs.current) { // if (map.current!.getLayer(tg.id)) { // map.current!.moveLayer(tg.id); // } // } // } // // if (map.current!.getSource('coastline')) { // // (map.current!.getSource('coastline') as mapboxgl.GeoJSONSource).setData({ "type": "FeatureCollection", "features": data.line }); // // } else { // // map.current!.addSource('coastline', { // // 'type': 'geojson', // // 'data': { "type": "FeatureCollection", "features": data.line } // // }); // // } // sendWave(); // } // const hoverWilayah = useRef(null); // function loadGeoJsonCoastline() { // fetch('/geojson/garis_pantai.geojson') // .then(response => response.json()) // .then(data => { // geoJsonCoastline.current = data; // if (!map.current!.getSource('coastline')) { // map.current!.addSource('coastline', { // type: 'geojson', // generateId: true, // data: data // }); // map.current!.addLayer({ // 'id': 'outline-coastline', // 'type': 'line', // 'source': 'coastline', // 'layout': { // 'visibility': 'none', // }, // 'paint': { // 'line-color': ['get', 'color'], // 'line-width': 5, // 'line-opacity': 1 // } // }); // } // loadGeoJsonData(); // }).catch((error) => { // alert("Failed load geojson data : " + error); // console.error('Error fetching data:', error); // }); // }; // function loadGeoJsonData() { // fetch('/geojson/all_kabkota_ind_reduce.geojson') // .then(response => response.json()) // .then(data => { // geoJsonData.current = data; // if (!map.current!.getSource('wilayah')) { // map.current!.addSource('wilayah', { // type: 'geojson', // generateId: true, // data: data // }); // map.current!.addLayer({ // 'id': 'outline', // 'type': 'line', // 'source': 'wilayah', // 'layout': {}, // 'paint': { // 'line-color': '#807a72', // 'line-width': 1, // 'line-opacity': 0.7 // } // }); // map.current!.addLayer({ // 'id': 'wilayah-fill', // 'type': 'fill', // 'source': 'wilayah', // 'layout': { // }, // 'paint': { // 'fill-color': 'red', // 'fill-opacity': [ // 'case', // ['boolean', ['feature-state', 'hover'], false], // 0.1, // 0 // ], // } // }); // // map.current!.on('mousemove', 'wilayah-fill', (e: any) => { // // if (e.features.length > 0) { // // if (hoverWilayah.current !== null) { // // map.current!.setFeatureState( // // { source: 'wilayah', id: hoverWilayah.current }, // // { hover: false } // // ); // // } // // hoverWilayah.current = e.features[0].id; // // map.current!.setFeatureState( // // { source: 'wilayah', id: hoverWilayah.current }, // // { hover: true } // // ); // // } // // }); // // map.current!.on('mouseleave', 'wilayah-fill', () => { // // if (hoverWilayah.current !== null) { // // map.current!.setFeatureState( // // { source: 'wilayah', id: hoverWilayah.current }, // // { hover: false } // // ); // // } // // hoverWilayah.current = null; // // }); // } // // getTitikStationJson(); // getTitikGempaJson(); // getTimezoneGeojson(); // getFaultLineGeojson(); // initWorker(); // }).catch((error) => { // alert("Failed load geojson data : " + error); // console.error('Error fetching data:', error); // }); // }; // function getTitikStationJson() { // const url = "https://bmkg-content-inatews.storage.googleapis.com/sensor_seismic.json"; // if (map.current) { // map.current.loadImage( // '/images/triangle-filled-svgrepo-com.png', // (error, image: any) => { // if (error) throw error; // // Add the image to the map style. // map.current!.addImage('station-icon', image); // // Add a data source containing one point feature. // map.current!.addSource('station', { // 'type': 'geojson', // 'data': url // }); // // Add a layer to use the image to represent the data. // map.current!.addLayer({ // 'id': 'stations', // 'type': 'symbol', // 'source': 'station', // reference the data source // 'layout': { // 'icon-image': 'station-icon', // reference the image // 'icon-size': 0.05 // } // }); // map.current!.on('click', 'stations', (e: any) => { // // Copy coordinates array. // const coordinates = e.features[0].geometry.coordinates.slice(); // const d = e.features[0].properties; // const placeholder = document.createElement('div'); // const root = createRoot(placeholder) // root.render(SENSOR SEISMIK

// } className='min-h-48 min-w-48 whitespace-pre-wrap' > //
// // // // // // // // // // // // // // // // // // //
ID{d.id}
Stakeholder{d.stakeholder}
UPTBMKG{d.uptbmkg}
Lokasi (Lat,Lng){coordinates[0]} , {coordinates[1]}
//
//
); // new AnimatedPopup({ // openingAnimation: { // duration: 100, // easing: 'easeOutSine', // transform: 'scale' // }, // closingAnimation: { // duration: 100, // easing: 'easeInOutSine', // transform: 'scale' // } // }).setDOMContent(placeholder).setLngLat(coordinates).addTo(map.current!); // }); // map.current!.on('mouseenter', 'stations', () => { // map.current!.getCanvas().style.cursor = 'pointer'; // }); // // Change it back to a pointer when it leaves. // map.current!.on('mouseleave', 'stations', () => { // map.current!.getCanvas().style.cursor = ''; // }); // } // ); // } // } // function getTitikGempaJson() { // const url = "https://bmkg-content-inatews.storage.googleapis.com/gempaQL.json?t=" + new Date().getTime(); // fetch(url) // .then(response => response.json()) // .then((data) => { // geoJsonTitikGempa.current = data; // setTimeout(() => { // document.getElementById("loading-screen")!.style.display = "none"; // setLoadingScreen(false); // }, 1000); // let ntg: TitikGempa[] = []; // for (let index = 0; index < data.features.length; index++) { // const feature = data.features[index]; // const dt = DateTime.fromSQL(feature.properties.time, { zone: 'UTC' }).setZone("Asia/Jakarta"); // const readAbleTime = dt.toISODate() + " " + dt.toLocaleString(DateTime.TIME_24_WITH_SECONDS) // ntg.push(new TitikGempa(feature.properties.id, { // id: feature.properties.id, // lng: feature.geometry.coordinates[0], // lat: feature.geometry.coordinates[1], // mag: feature.properties.mag, // depth: feature.properties.depth, // place: feature.properties.place, // time: readAbleTime // })); // } // tgs.current = ntg; // setEvents(tgs.current); // console.log('load titik gempa 1'); // //check earthquakes layer // if (map.current!.getLayer('earthquakes-layer')) { // //update source // (map.current!.getSource('earthquakes') as mapboxgl.GeoJSONSource).setData(data); // } else { // //add source // map.current!.addSource('earthquakes', { // type: 'geojson', // data: data // }); // map.current!.addLayer({ // 'id': 'earthquakes-layer', // 'type': 'circle', // 'source': 'earthquakes', // 'paint': { // 'circle-radius': ["to-number", ['get', 'mag']], // 'circle-stroke-width': 2, // 'circle-color': [ // "case", // //depth <= 50 red, depth <= 100 orange, depth <= 250 yellow, depth <= 600 green, depth > 600 blue // ['<=', ["to-number", ['get', 'depth']], 50], // "red", // ['<=', ["to-number", ['get', 'depth']], 100], // "orange", // ['<=', ["to-number", ['get', 'depth']], 250], // "yellow", // ['<=', ["to-number", ['get', 'depth']], 600], // "green", // "blue", // ], // 'circle-stroke-color': 'white' // } // }); // } // map.current!.on('click', 'earthquakes-layer', (e: any) => { // // Copy coordinates array. // const coordinates = e.features[0].geometry.coordinates.slice(); // const d = e.features[0].properties; // const placeholder = document.createElement('div'); // const root = createRoot(placeholder) // root.render( //
//
//

GEMPA BUMI

//
// // } className='min-h-48 min-w-48 whitespace-pre-wrap' > //
// // // // // // // // // // // // // // // // // // //
Magnitudo{d.mag}
Kedalaman{d.depth}
Waktu{new Date(d.time!).toLocaleString()}
Lokasi (Lat,Lng){coordinates[0]} , {coordinates[1]}
//
//
); // new AnimatedPopup({ // openingAnimation: { // duration: 100, // easing: 'easeOutSine', // transform: 'scale' // }, // closingAnimation: { // duration: 100, // easing: 'easeInOutSine', // transform: 'scale' // } // }).setDOMContent(placeholder).setLngLat(coordinates).addTo(map.current!); // }); // map.current!.on('mouseenter', 'earthquakes-layer', () => { // map.current!.getCanvas().style.cursor = 'pointer'; // }); // // Change it back to a pointer when it leaves. // map.current!.on('mouseleave', 'earthquakes-layer', () => { // map.current!.getCanvas().style.cursor = ''; // }); // console.log('load titik gempa 2'); // getGempa(); // getGempaKecil(); // }) // .catch((error) => { // console.error('Error initializing socket:', error); // }); // } // const hoverTimezone = useRef(null); // function getTimezoneGeojson() { // const url = "/geojson/timezones_wVVG8.geojson"; // map.current!.addSource('timezone', { // 'type': 'geojson', // 'generateId': true, // 'data': url // }); // // Add a layer to use the image to represent the data. // // map.current!.addLayer({ // // 'id': 'timezone-fill', // // 'type': 'fill', // // 'source': 'timezone', // reference the data source // // 'layout': { // // }, // // 'paint': { // // // 'line-color': 'blue', // // // 'line-width': 1 // // 'fill-color': 'red', // // 'fill-opacity': [ // // 'case', // // ['boolean', ['feature-state', 'hover'], false], // // 0.1, // // 0 // // ], // // } // // }); // map.current!.addLayer({ // 'id': 'timezone-line', // 'type': 'line', // 'source': 'timezone', // reference the data source // 'layout': { // }, // 'paint': { // 'line-color': 'orange', // 'line-width': 1, // 'line-opacity': 0.5 // } // }); // const markerParent1 = document.createElement('div'); // const gmt7Marker = createRoot(markerParent1) // gmt7Marker.render( //
//

// //

//

WIB / GMT+7

//
// ); // new mapboxgl.Marker(markerParent1) // .setLngLat([107.4999769225339, 3.4359354227361933]) // .addTo(map.current!); // const markerParent2 = document.createElement('div'); // const gmt8Marker = createRoot(markerParent2) // gmt8Marker.render( //
//

// //

//

WITA / GMT+8

//
// ); // new mapboxgl.Marker(markerParent2) // .setLngLat([119.1174733337183, 3.4359354227361933]) // .addTo(map.current!); // const markerParent3 = document.createElement('div'); // const gmt9Marker = createRoot(markerParent3) // gmt9Marker.render( //
//

// //

//

WIT / GMT+9

//
// ); // new mapboxgl.Marker(markerParent3) // .setLngLat([131.58387377752751, 3.4359354227361933]) // .addTo(map.current!) // // map.current!.on('click', 'timezone-fill', (e: any) => { // // console.log(e); // // }); // // map.current!.on('mousemove', 'timezone-fill', (e: any) => { // // if (e.features.length > 0) { // // if (hoverTimezone.current !== null) { // // map.current!.setFeatureState( // // { source: 'timezone', id: hoverTimezone.current }, // // { hover: false } // // ); // // } // // hoverTimezone.current = e.features[0].id; // // map.current!.setFeatureState( // // { source: 'timezone', id: hoverTimezone.current }, // // { hover: true } // // ); // // } // // }); // // map.current!.on('mouseleave', 'timezone-fill', () => { // // if (hoverTimezone.current !== null) { // // map.current!.setFeatureState( // // { source: 'timezone', id: hoverTimezone.current }, // // { hover: false } // // ); // // } // // hoverTimezone.current = null; // // }); // } // function getFaultLineGeojson() { // const url = "/geojson/indo_faults_lines.geojson"; // map.current!.addSource('indo_faults_lines', { // 'type': 'geojson', // 'generateId': true, // 'data': url // }); // // Add a layer to use the image to represent the data. // map.current!.addLayer({ // 'id': 'indo_faults_line_layer', // 'type': 'line', // 'source': 'indo_faults_lines', // reference the data source // 'layout': { // }, // 'paint': { // 'line-color': 'red', // 'line-width': 1, // 'line-opacity': 0.5 // // 'fill-color': 'red', // // 'fill-opacity': [ // // 'case', // // ['boolean', ['feature-state', 'hover'], false], // // 0.1, // // 0 // // ], // } // }); // } // function getGempa() { // if (lastGempaId.current) { // return // } // console.log("getGempa"); // const url = "https://bmkg-content-inatews.storage.googleapis.com/datagempa.json?t=" + new Date().getTime(); // fetch(url) // .then(response => response.json()) // .then((data) => { // const coordinates = data.info.point.coordinates.split(","); // lastGempaId.current = data.identifier; // const sentTime = DateTime.fromISO(data.sent.replace("WIB", ""), { zone: "Asia/Jakarta" }); // const currentTime = DateTime.now().setZone("Asia/Jakarta"); // const readAbleTime = sentTime.toISODate() + " " + sentTime.toLocaleString(DateTime.TIME_24_WITH_SECONDS) // const nig: InfoGempa = { // id: data.identifier, // lng: parseFloat(coordinates[0]), // lat: parseFloat(coordinates[1]), // mag: data.info.magnitude || 9.0, // depth: data.info.depth || "10 Km", // message: data.info.description, // time: readAbleTime // }; // const cek = tgs.current.find((v) => v.id == data.identifier); // if ((currentTime.toMillis() - sentTime.toMillis()) < 600000) { // warningHandler({ // id: data.identifier, // lng: parseFloat(coordinates[0]), // lat: parseFloat(coordinates[1]), // mag: parseFloat(data.info.magnitude), // depth: data.info.depth, // message: data.info.description + "\n" + data.info.instruction, // time: readAbleTime, // }); // const ntg = new TitikGempa(nig.id, nig, { // map: map.current!, // showMarker: true // }); // setTimeout(() => { // // setAlertGempaBumi(ntg); // setGempaDirasakan(ntg); // }, 6000); // } else if (!cek) { // tgs.current.push(new TitikGempa(nig.id, nig)); // //sort by time // tgs.current.sort(function (a: any, b: any) { // return new Date(b.time).getTime() - new Date(a.time).getTime(); // }) // geoJsonTitikGempa.current.features.push({ // "geometry": { // "type": "Point", // "coordinates": [ // nig.lng, // nig.lat, // 1 // ] // }, // "type": "Feature", // "properties": { // id: nig.id, // depth: parseFloat(nig.depth.replaceAll(" Km", "")).toFixed(2), // mag: nig.mag, // time: nig.time, // place: nig.place, // } // }); // (map.current!.getSource('earthquakes') as mapboxgl.GeoJSONSource).setData(geoJsonTitikGempa.current); // setEvents(tgs.current); // } // const ntg = new TitikGempa(nig.id, nig, { // map: map.current! // }); // setGempaDirasakan(ntg); // // getGempaPeriodik(); // }) // .catch((error) => { // console.error('Error initializing socket:', error); // }); // } // function getGempaKecil() { // if (lastGempaKecilId.current) { // return; // } // console.log("getGempaKecil"); // const url = "https://bmkg-content-inatews.storage.googleapis.com/lastQL.json?t=" + new Date().getTime(); // fetch(url) // .then(response => response.json()) // .then((data) => { // if (data.features.length > 0) { // const feature = data.features[0]; // lastGempaKecilId.current = feature.properties.id; // const sentTime = DateTime.fromSQL(feature.properties.time, { zone: 'UTC' }); // const currentTime = DateTime.now().setZone("UTC"); // const msg = `${feature.properties.place} // Magnitudo : ${feature.properties.mag} // Kedalaman : ${feature.properties.depth} // Lokasi (Lat,Lng) : // ${feature.geometry.coordinates[0]} , ${feature.geometry.coordinates[1]}`; // const dt = DateTime.fromSQL(feature.properties.time, { zone: 'UTC' }).setZone("Asia/Jakarta"); // const readAbleTime = dt.toISODate() + " " + dt.toLocaleString(DateTime.TIME_24_WITH_SECONDS) // const nig: InfoGempa = { // id: feature.properties.id, // lng: parseFloat(feature.geometry.coordinates[0]), // lat: parseFloat(feature.geometry.coordinates[1]), // mag: parseFloat(feature.properties.mag), // depth: feature.properties.depth || "10 Km", // message: msg, // place: feature.properties.place, // time: readAbleTime // }; // //if sent time is less than 10 minutes // if ((currentTime.toMillis() - sentTime.toMillis()) < 600000) { // if (map.current) { // var notif = new Audio(smallEarthQuakeSound); // notif.play(); // // map.current!.flyTo({ // // center: [feature.geometry.coordinates[0], feature.geometry.coordinates[1]], // // zoom: 7, // // essential: true // // }); // const tg = new TitikGempa(feature.properties.id, nig, { // pWaveSpeed: 6000, // sWaveSpeed: 3000, // map: map.current!, // description: msg, // zoomToPosition: true, // showMarker: true, // showPopup: true, // showPopUpInSecond: 1, // }); // setGempaTerakhir(tg); // setAlertGempaBumi(new TitikGempa(feature.properties.id, nig)); // } // } else { // setGempaTerakhir(new TitikGempa(feature.properties.id, nig)); // } // const cek = tgs.current.find((v) => v.id == feature.properties.id); // if (!cek) { // tgs.current.unshift(new TitikGempa(feature.properties.id, nig)); // geoJsonTitikGempa.current.features.push(feature); // (map.current!.getSource('earthquakes') as mapboxgl.GeoJSONSource).setData(geoJsonTitikGempa.current); // } // setEvents(tgs.current); // } // getGempaPeriodik(); // }) // .catch((error) => { // console.error('Error initializing socket:', error); // }); // } // function getGempaPeriodik() { // setInterval(() => { // const url = "https://bmkg-content-inatews.storage.googleapis.com/datagempa.json?t=" + new Date().getTime() // //await fetch // fetch(url) // .then(response => response.json()) // .then((data) => { // if (lastGempaId.current != data.identifier) { // lastGempaId.current = data.identifier; // const coordinates = data.info.point.coordinates.split(","); // const sentTime = DateTime.fromISO(data.sent.replace("WIB", ""), { zone: "Asia/Jakarta" }); // const readAbleTime = sentTime.toISODate() + " " + sentTime.toLocaleString(DateTime.TIME_24_WITH_SECONDS); // warningHandler({ // id: data.identifier, // lng: parseFloat(coordinates[0]), // lat: parseFloat(coordinates[1]), // mag: parseFloat(parseFloat(data.info.magnitude).toFixed(1)), // depth: data.info.depth, // message: data.info.description + "\n" + data.info.instruction, // time: readAbleTime // }); // if (data.info.wzarea != undefined && data.info.wzarea.length > 0) { // if (data.info.subject == "Warning Tsunami PD-4") { // //delete outline-costline layer // try { // map.current!.removeLayer('outline-coastline'); // map.current!.removeLayer('outline'); // } catch (error) { // } // } else if (data.info.subject.includes("Warning Tsunami")) { // warningTsunamiHandler(data.info); // } // } // } // }) // .catch((error) => { // console.error('Error initializing socket:', error); // }); // }, 5000); // setInterval(() => { // const url = "https://bmkg-content-inatews.storage.googleapis.com/lastQL.json?t=" + new Date().getTime(); // fetch(url) // .then(response => response.json()) // .then((data) => { // const feature = data.features[0]; // const msg = `${feature.properties.place} // Magnitudo : ${feature.properties.mag} // Kedalaman : ${feature.properties.depth} // Lokasi (Lat,Lng) : // ${feature.geometry.coordinates[0]} , ${feature.geometry.coordinates[1]}`; // const dt = DateTime.fromSQL(feature.properties.time, { zone: 'UTC' }).setZone("Asia/Jakarta"); // const readAbleTime = dt.toISODate() + " " + dt.toLocaleString(DateTime.TIME_24_WITH_SECONDS) // const nig: InfoGempa = { // id: feature.properties.id, // lng: parseFloat(feature.geometry.coordinates[0]), // lat: parseFloat(feature.geometry.coordinates[1]), // mag: parseFloat(feature.properties.mag), // depth: feature.properties.depth || "10 Km", // message: msg, // place: feature.properties.place, // time: readAbleTime // }; // if (lastGempaKecilId.current != feature.properties.id) { // lastGempaKecilId.current = feature.properties.id; // var notif = new Audio(smallEarthQuakeSound); // notif.play(); // if (!map.current) return; // if (gempaTerakhir != null && gempaTerakhir.setting != null && gempaTerakhir.setting.map != null) { // gempaTerakhir.removeAllRender(); // gempaTerakhir.removeMarker(); // if (tgs.current.length > 0) { // const ig = tgs.current[0].infoGempa // geoJsonTitikGempa.current.features.push({ // "geometry": { // "type": "Point", // "coordinates": [ // ig.lng, // ig.lat, // 1 // ] // }, // "type": "Feature", // "properties": { // id: ig.id, // depth: ig.depth, // mag: ig.mag, // time: ig.time, // place: ig.place, // } // }); // (map.current!.getSource('earthquakes') as mapboxgl.GeoJSONSource).setData(geoJsonTitikGempa.current); // } // } // tgs.current.push(new TitikGempa(nig.id, nig, { // map: map.current!, // zoomToPosition: true, // showMarker: true, // showPopup: true, // showPopUpInSecond: 1 // })) // tgs.current.sort(function (a: any, b: any) { // return new Date(b.time).getTime() - new Date(a.time).getTime(); // }); // setEvents(tgs.current); // setAlertGempaBumi(new TitikGempa(nig.id, nig)) // const tg = new TitikGempa(lastGempaKecilId.current, nig, { // pWaveSpeed: 6000, // sWaveSpeed: 3000, // map: map.current!, // description: msg, // }); // // titikGempaKecil.current = tg; // setGempaTerakhir(new TitikGempa(nig.id, nig)); // } else { // const cek = tgs.current.find((v) => v.id == feature.properties.id); // if (cek && cek.infoGempa.mag != parseFloat(feature.properties.mag)) { // console.log(cek.infoGempa.mag, parseFloat(feature.properties.mag)) // setGempaTerakhir(new TitikGempa(nig.id, nig)); // setAlertGempaBumi(new TitikGempa(nig.id, nig)); // const indextgs = tgs.current.findIndex((v) => v.id == feature.properties.id); // tgs.current[indextgs].infoGempa = nig; // } // } // }) // .catch((error) => { // console.error('Error initializing socket:', error); // }); // }, 5000); // } // const selectedPopup = useRef(null); // function selectEvent(d: InfoGempa) { // setDetailInfoGempa(d); // if (selectedPopup.current) { // selectedPopup.current.remove(); // } // map.current!.flyTo({ // center: [d.lng, d.lat], // zoom: 6, // essential: true // }); // const placeholder = document.createElement('div'); // const root = createRoot(placeholder) // root.render( //
//
//

GEMPA BUMI

//
// // } className='min-h-48 min-w-48 whitespace-pre-wrap ' > //
    //
  • // Magnitudo : {d.mag} //
  • //
  • // Kedalaman : {d.depth} //
  • //
  • // Waktu : {new Date(d.time!).toLocaleString()} //
  • //
  • // Lokasi (Lat,Lng) :
    {d.lat} , {d.lng} //
  • //
//
); // selectedPopup.current = new AnimatedPopup({ // closeOnClick: false, // openingAnimation: { // duration: 100, // easing: 'easeOutSine', // transform: 'scale' // }, // closingAnimation: { // duration: 100, // easing: 'easeInOutSine', // transform: 'scale' // } // }).setDOMContent(placeholder).setLngLat([d.lng, d.lat]).addTo(map.current!); // const cekTable = document.querySelector("#histori_tabel tbody"); // if (cekTable) { // cekTable.innerHTML = ""; // } // setTimeout(() => { // readTextFile("https://bmkg-content-inatews.storage.googleapis.com/history." + d.id + ".txt"); // }, 500); // } // function testDemoGempa() { // if (geoJsonData.current == null) { // alert("Wait loading geojson"); // return; // }; // const bbox = turf.bbox(geoJsonData.current); // const randomPosition = turf.randomPosition(bbox); // const mag = (Math.random() * (10 - 5) + 5).toFixed(1); // const depth = (Math.random() * 20).toFixed(1) + " Km"; // const message = "Gempa Bumi Test Pada Lokasi : Lat : " + randomPosition[1].toFixed(4) + " Lng : " + randomPosition[0].toFixed(4) + " Magnitudo : " + mag + " Kedalaman : " + depth; // const id = `tg-${new Date().getTime()}`; // const dt = DateTime.now(); // const readAbleTime = dt.toISODate() + " " + dt.toLocaleString(DateTime.TIME_24_WITH_SECONDS) // const nig: InfoGempa = { // id: id, // lng: randomPosition[0].toFixed(4), // lat: randomPosition[1].toFixed(4), // mag: parseFloat(mag), // depth: depth || "10 Km", // message: message, // time: readAbleTime // }; // warningHandler(nig); // // setTimeout(() => { // // setInfoGempaDirasakanTerakhir(nig); // // }, 6000); // } // function testDemoTsunami() { // const url = "https://bmkg-content-inatews.storage.googleapis.com/last30tsunamievent.xml"; // //fecth and parse xml // fetch(url) // .then(response => response.text()) // .then(data => { // const parser = new XMLParser(); // let jObj = parser.parse(data); // var infos = jObj.alert.info; // infos = infos.filter((v) => v.wzarea != undefined) // var randInfo = infos[(Math.random() * infos.length) | 0] // warningTsunamiHandler(randInfo); // }).catch((error) => { // alert("Failed load geojson data : " + error); // console.error('Error fetching data:', error); // }); // //warningTsunamiHandler(null); // } // function readTextFile(e: string) { // var t = new XMLHttpRequest; // t.open("GET", e, !1), t.onreadystatechange = function () { // if (4 === t.readyState && (200 === t.status || 0 == t.status)) { // let u = t.responseText.split("\n"); // var table = document.getElementById("histori_tabel") as HTMLTableElement; // //clear tbody // let T = u.length - 1; // for (let t = 1; t < T; t++) { // let T = u[t].split("|"); // var n = table.insertRow(t), // a = n.insertCell(0), // l = n.insertCell(1), // s = n.insertCell(2), // i = n.insertCell(3), // o = n.insertCell(4), // r = n.insertCell(5), // d = n.insertCell(6), // m = n.insertCell(7), // g = n.insertCell(8), // c = n.insertCell(9); // a.innerHTML = T[0], l.innerHTML = T[1], s.innerHTML = T[2], i.innerHTML = T[3], o.innerHTML = T[4], r.innerHTML = T[5], d.innerHTML = T[6], m.innerHTML = T[7], g.innerHTML = T[8], c.innerHTML = T[9] // } // } // }, t.send(null) // } // function generateDiv(max) { // let arrayDivs: any = []; // for (let index = 0; index < max; index++) { // arrayDivs.push(
// //
); // } // return arrayDivs; // } // return ( //
// //
// {!loadingScreen && alertGempaBumi && // //
//
//

GEMPA BUMI

//
//
// } className='hidden md:block show-pop-up fixed top-12 md:top-6 left-0 card-float right-0 md:left-6 md:w-1/3 lg:w-1/4 xl:w-1/5 2xl:w-1/6'> //
//
//
//
//
//
{alertGempaBumi.readableMag}
//
MAG
//
//
//
//

DEPTH : {alertGempaBumi.readableDepth} KM

//
//
// // // // // // // // // // // // // // // // // // // // // // // //
TIME{alertGempaBumi.readableTime} WIB
MAG{alertGempaBumi.mag}
DEPTH{alertGempaBumi.depth}
LAT{alertGempaBumi.infoGempa.lat}
LNG{alertGempaBumi.infoGempa.lng}
//
//
//
//

{alertGempaBumi.infoGempa.message}

//
//
// {alertGempaBumi.mag >= 5 &&
//
    // {alertGempaBumi.infoGempa.listKotaTerdampak && alertGempaBumi.infoGempa.listKotaTerdampak.map((kota, i) => { // if (kota.hit) { // return
  • // //
  • // } else { // return
  • // //
  • // } // })} //
//
} // } // {!loadingScreen && infoTsunami && // //
//
//

PERINGATAN TSUNAMI

//
//
// } // footer={ //
// {infoTsunami.infoTsunami.level} //
// } // className='hidden md:block show-pop-up fixed top-12 md:top-6 left-0 card-float right-0 md:left-6 md:w-1/3 lg:w-1/4 xl:w-1/5 2xl:w-1/6'> //
//
//

{infoTsunami.infoTsunami.message}

//
//
// {(infoTsunami.infoTsunami.level?.includes("PD-1") || infoTsunami.infoTsunami.level?.includes("PD-2")) &&
//
    // {infoTsunami.infoTsunami.listKotaTerdampak && infoTsunami.infoTsunami.listKotaTerdampak.map((kota, i) => { // return
  • // //
  • // })} //
//
} // } //
// // //
// {!loadingScreen && EVENT LOG

// } className=' fixed right-0 md:right-6 top-1 md:top-6 card-float md:w-1/3 lg:w-1/5 show-pop-up'> //
    // {events.map((v: TitikGempa, i) => { // return
  • { // selectEvent(v.infoGempa); // }} // className='flex flex-col mb-2 list-event cursor-pointer slide-in-left' style={{ // animationDelay: `${i * 0.01}s`, // transform: 'translateX(-110%)' // }}> // {v.infoGempa.time} WIB //
    // {v.readableMag} M - {v.infoGempa.place || "uknown"} //
    //
  • // })} //
//
} // {!loadingScreen && gempaTerakhir && //

// GEMPA TERDETEKSI TERAKHIR //

// // } // footer={ //
{ // selectEvent(gempaTerakhir.infoGempa); // }}> // //
// } // className='hidden md:block show-pop-up fixed bottom-28 md:bottom-6 card-float left-1 right-1 m-auto md:w-1/4 lg:w-1/6'> //
// // // // // // // // // // // // // // // // // // // // // // // // // // // //
PLACE{gempaTerakhir.infoGempa.place}
TIME{gempaTerakhir.readableTime} WIB
MAG{gempaTerakhir.infoGempa.mag}
DEPTH{gempaTerakhir.readableDepth} KM
LAT{gempaTerakhir.infoGempa.lat}
LNG{gempaTerakhir.infoGempa.lng}
//
//
} // {!loadingScreen && gempaDirasakan && //

// GEMPA DIRASAKAN TERAKHIR //

// // } // footer={ //
{ // selectEvent(gempaDirasakan.infoGempa); // }}> // //
// } // className='hidden md:block show-pop-up fixed bottom-10 left-1 right-1 md:right-0 md:left-6 card-float md:w-1/3 lg:w-1/4 xl:w-1/5 2xl:w-1/6'> //
//
//
//
//
//
{gempaDirasakan.readableMag}
//
MAG
//
//
//
//

DEPTH : {gempaDirasakan.readableDepth} KM

//
//
// // // // // // // // // // // // // // // // // // // // // // // //
TIME{gempaDirasakan.infoGempa.time} WIB
MAG{gempaDirasakan.infoGempa.mag}
DEPTH{gempaDirasakan.infoGempa.depth}
LAT{gempaDirasakan.infoGempa.lat}
LNG{gempaDirasakan.infoGempa.lng}
//
//
//
//

{gempaDirasakan.infoGempa.message}

//
//
//
} // {!loadingScreen && detailInfoGempa && //

// DETAIL EVENT //

// // // } // className='right-6 bottom-10 md:bottom-6 fixed card-float show-pop-up '> //
//
// {/* */} //
//
// // // // // // // // // // // // // // // // // // // // // // // // // // // //
PLACE{detailInfoGempa.place}
TIME{detailInfoGempa.time} WIB
MAG{detailInfoGempa.mag}
DEPTH{parseFloat(detailInfoGempa.depth.replace(" Km", "")).toFixed(2)} KM
LAT{detailInfoGempa.lat}
LNG{detailInfoGempa.lng}
//
//
//
// // // // // // // // // // // // // // // // // // // // //
// Time(UTC) // // +OT(min) // // Lat // // Lng // // Depth // // Phase // // MagType // // Mag // // MagCount // // Status //
//
//
//
//
} // {!loadingScreen && alertGempaBumi && gempaDirasakan && //
//
//

GEMPA BUMI

//
// // } className='block md:hidden show-pop-up fixed bottom-10 md:top-6 left-0 card-warning right-0 md:left-6 md:w-1/4 lg:w-1/5'> //
//
//
//
//
//
{gempaDirasakan.readableMag}
//
MAG
//
//
//
//

DEPTH : {gempaDirasakan.readableDepth} KM

//
//
// // // // // // // // // // // // // // // // // // // // // // // //
TIME{gempaDirasakan.infoGempa.time} WIB
MAG{gempaDirasakan.infoGempa.mag}
DEPTH{gempaDirasakan.infoGempa.depth}
LAT{gempaDirasakan.infoGempa.lat}
LNG{gempaDirasakan.infoGempa.lng}
//
//
//
//

{gempaDirasakan.infoGempa.message}

//
//
//
} // {!loadingScreen && alertGempaBumis.map((v, i) => { // return
// //
// })} // {/* {!loadingScreen && alertGempaBumi && } */} // // {!loadingScreen && alertTsunami &&
//
//
//
// {generateDiv(window.screen.width + (window.screen.width / 3))} //
//
//
//
//
//
//
//
//
// TSUNAMI // Peringatan Dini Tsunami //
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//

POTENSI TSUNAMI

//
//
//
// //
//
//

{alertTsunami.infoTsunami.level}

//
//
// } // className='w-full h-auto'> //

// {alertTsunami.infoTsunami.message} //

// //
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
// } //
// //

INI MERUPAKAN DESAIN KONSEP - DATA GEMPA DARI BMKG

//
// // ); // }