ITS Maps

Capacitor + Java Native Widgets

Metode Android APK ITS Maps

Halaman ini menjelaskan APK, native widget Android, lock-screen dashboard, service RTDB, layout XML, dan integrasi icon/widget.

Preview Android APK ITS Maps
Fitur

Fitur utama yang dibahas

Widget ITS Live

Grafik realtime, status sistem, durasi lampu, dan tile kendaraan.

Widget Kamera AI ITS

Carousel 2 snapshot, bbox AI, label objek, confidence, dan ringkasan kendaraan.

Widget Peta ITS

Map preview, marker traffic light, status warna, dan kontrol lokasi/zoom.

Lock screen

Dashboard lock-screen dengan snapshot, media surface, dan service notifikasi.

Diagram

Alur runtime Android APK

flowchart LR
  RTDB[("Firebase RTDB")] --> S["WidgetRealtimeService.java"]
  S --> W1["ITS Live Widget"]
  S --> W2["Kamera AI ITS Widget"]
  S --> W3["Peta ITS Widget"]
  S --> W4["Data Full & Alert Widget"]
  S --> L["LockScreenDashboardActivity"]
  Main["MainActivity / Capacitor"] --> S
Matematika dan logika

Formulasi yang dipakai kode

Status realtime

Perangkat dianggap online jika selisih waktu heartbeat masih di bawah ambang offline.

\[\Delta t=t_{now}-t_{lastSeen}\]
\[online(d)=\begin{cases}1,&\Delta t\le T_{offline}\\0,&\Delta t>T_{offline}\end{cases}\]

Total kendaraan

Tile kendaraan menampilkan jumlah kelas yang sama di WebApp, APK, dan Windows widget.

\[N=N_{mobil}+N_{motor}+N_{bus}+N_{truk}+N_{sepeda}\]

Proyeksi bounding box

AI menggambar kotak deteksi dengan skala dari frame sumber ke canvas/tampilan.

\[x'=x\cdot\frac{W_{view}}{W_{src}},\quad y'=y\cdot\frac{H_{view}}{H_{src}}\]
\[w'=w\cdot\frac{W_{view}}{W_{src}},\quad h'=h\cdot\frac{H_{view}}{H_{src}}\]

IoU dan NMS

Deteksi ganda ditekan dengan Intersection over Union agar satu objek tidak dihitung berkali-kali.

\[IoU(A,B)=\frac{|A\cap B|}{|A\cup B|}\]
\[score'=score\cdot e^{-\frac{IoU^2}{\sigma}}\]

Grafik realtime

History grafik dibatasi ke jendela data terbaru supaya widget tetap terbaca.

\[H_t=tail_k(H_{t-1}\cup\{(t,N,color,seconds)\})\]

Jarak Haversine

Dipakai untuk memperkirakan jarak user, POI, dan device pada peta.

\[a=\sin^2\frac{\Delta\phi}{2}+\cos\phi_1\cos\phi_2\sin^2\frac{\Delta\lambda}{2}\]
\[d=2R\cdot atan2(\sqrt a,\sqrt{1-a})\]

Contoh kode yang bisa dijalankan

Contoh ini menjalankan rumus kecil yang sama konsepnya dengan kode aplikasi: freshness, total kendaraan, IoU, dan durasi lampu.

const total = car + motorcycle + bus + truck + bicycle;
const green = Math.min(120, Math.max(10, 0.85 * total + 8));
Tekan salah satu tombol Run.
Screenshots

Gambar pendukung

Screenshot widget ITS Live Android
Screenshot widget ITS Live Android
Screenshot widget Kamera AI ITS Android
Screenshot widget Kamera AI ITS Android
Screenshot widget Peta ITS Android
Screenshot widget Peta ITS Android
Screenshot widget Data Full & Alert Android
Screenshot widget Data Full & Alert Android
Line-by-line source atlas

Atlas kode Android APK

Ringkasan file tetap tersedia di halaman utama. Isi kode asli dan catatan teknis per baris dimuat hanya saat diminta agar dokumentasi cepat dibuka dan tetap dapat dipelajari secara lengkap.

File Baris Baris logika Simbol utama
web/android/app/src/main/AndroidManifest.xml 165 145 template / konfigurasi
web/android/app/src/main/java/id/ac/telkomuniversity/its/MainActivity.java 405 366 Simbol utama L51 onCreateL58 onDestroyL64 onResumeL75 bootstrapAppL80 registerApkInstallerBridgeL92 installApkL97 notifyUpdateL102 activateLockScreenWidgetL107 previewLockScreenWidgetL112 openNotificationAccessSettingsL117 isLockScreenMonitoringEnabledL122 setLockScreenMonitoringEnabledL127 setVideoFullscreenL134 setLockScreenMonitoringEnabledL146 continueLockScreenSetupL156 openLockScreenPreviewL162 openNotificationAccessSettingsL171 requestFullScreenIntentAccessIfNeededL186 installApkFromUrlL209 requestApkInstallPermissionL223 downloadApkL256 isBase64ApkUrlL262 safeApkFileNameL270 openPackageInstaller
web/android/app/src/main/java/id/ac/telkomuniversity/its/WidgetRealtimeService.java 474 431 Simbol utama L65 onLocationChangedL71 onProviderEnabledL75 onProviderDisabledL79 onStatusChangedL83 startL87 startFromLockScreenL91 startL106 onCreateL120 onStartCommandL130 onDestroyL146 onBindL150 listenLoopL176 openStreamConnectionL192 drainStreamL221 handleEventL230 broadcastWidgetRefreshL248 startLocationUpdatesL276 stopLocationUpdatesL286 saveUserLocationL295 closeConnectionL302 createChannelL327 buildNotificationL338 startLockScreenMonitorL342 onReceive
web/android/app/src/main/java/id/ac/telkomuniversity/its/ChartWidgetProvider.java 842 745 Simbol utama L56 onReceiveL74 onEnabledL88 onDisabledL93 onUpdateL98 startRealtimeServiceSafelyL106 refreshAllWidgetsL130 updateWidgetL167 scheduleRefreshL184 cancelRefreshL190 openIntentL202 refreshPendingIntentL213 scheduleRefreshL225 fetchSnapshotL247 fetchJsonL275 readCachedSnapshotL286 saveCachedSnapshotL293 loadAndAppendPointsL342 createVehicleVsGreenChartL449 alignUpL458 colorForTrafficL465 adjustAlphaL469 colorFromHexL534 fallbackL554 fromFirebase
web/android/app/src/main/java/id/ac/telkomuniversity/its/TrafficDetectionWidgetProvider.java 1.639 1.464 Simbol utama L65 onReceiveL83 onUpdateL90 onEnabledL97 onDisabledL101 refreshAllWidgetsAsyncL112 refreshAllWidgetsL124 updateWidgetL134 fetchSnapshotL167 fetchJsonL195 renderWidgetL211 quickDetectObjectsL224 drawBackgroundL244 drawShadeL255 drawHeaderL267 drawTrafficStatusL291 drawCarouselDotsL302 drawRaspberryInfoL321 drawMapMarkerIconL343 drawDetectionBoxesL413 growFromCenterL420 drawBoxCornersL431 countSeedL436 quickDetectObjectsL567 enqueue
web/android/app/src/main/java/id/ac/telkomuniversity/its/MapsWidgetProvider.java 970 850 Simbol utama L72 onReceiveL104 onUpdateL110 onEnabledL117 onDisabledL121 handleSelectionActionL133 refreshAllWidgetsL152 refreshAllWidgetsAsyncL163 startRealtimeServiceSafelyL171 updateWidgetL206 openActionIntentL220 scheduleRefreshL239 cancelRefreshL245 refreshPendingIntentL256 readWidgetStateL264 writeWidgetStateL272 normalizeLocationL276 clampZoomL282 fetchSnapshotL302 fetchJsonL330 readCachedSnapshotL340 saveCachedSnapshotL347 buildPreviewBitmapL356 createFallbackBitmapL387 createFallbackBitmap
web/android/app/src/main/java/id/ac/telkomuniversity/its/AlertFullDataWidgetProvider.java 1.668 1.508 Simbol utama L82 onReceiveL147 onUpdateL154 onEnabledL161 onDisabledL166 onDeletedL175 refreshAllWidgetsAsyncL186 refreshAllWidgetsL198 refreshWidgetL207 updateWidgetL219 fetchDataL258 localVersionCodeL269 fetchJsonL293 updateHistoryL319 loadHistoryL339 renderWidgetL359 drawBaseL394 drawSidebarButtonL416 drawVehicleDataL424 StatCardL425 StatCardL426 StatCardL427 StatCardL428 StatCardL429 StatCard
web/android/app/src/main/java/id/ac/telkomuniversity/its/LockScreenDashboardActivity.java 3.316 3.105 Simbol utama L105 runL116 runL126 onCreateL154 onStartL167 onResumeL180 onPauseL189 onStopL201 onDestroyL220 onBackPressedL225 onActivityResultL233 handleBackL239 createDetectorWebViewL255 onPageFinishedL261 onConsoleMessageL272 onStatusL286 onDetectionL356 fromL370 configureLockScreenWindowL388 hideSystemBarsL407 loadSnapshotAsyncL425 requestSystemUnlockL431 onDismissSucceededL436 onDismissCancelledL441 onDismissError
web/android/app/src/main/java/id/ac/telkomuniversity/its/LockScreenRenderer.java 6.898 6.282 Simbol utama L157 trackPreviousSongL199 trackPlayHistoryL219 mediaHistoryForL225 clearMediaHistoryL230 removeMediaHistoryEntryL236 splitTitleArtistL243 mediaTrackTransitionFractionL255 clamp01L258 easeOutCubicL264 lerpL268 lerpRectL277 teaserRectCenteredAtL283 LockScreenRendererL286 loadL315 renderL322 drawL326 drawL342 drawL378 drawBaseL414 drawFluentBackdropL436 drawFluentGlowL491 fromL519 drawHeaderL558 drawHeaderMeta
web/android/app/src/main/java/id/ac/telkomuniversity/its/LockScreenPreferences.java 27 21 Simbol utama L10 LockScreenPreferencesL13 isEnabledL19 setEnabled
web/android/app/src/main/java/id/ac/telkomuniversity/its/ItsNotificationListenerService.java 279 249 Simbol utama L34 onListenerConnectedL41 onListenerDisconnectedL47 onNotificationPostedL55 onNotificationRemovedL61 replyToNotificationL67 dismissNotificationL81 openNotificationL100 syncActiveNotificationsL113 rememberNotificationL163 removeStoredNotificationL193 textL197 readListL206 replyInternalL233 findActiveNotificationL243 findReplyActionIndexL260 hasFreeFormRemoteInputL269 refreshWidgets
web/android/app/src/main/java/id/ac/telkomuniversity/its/IndonesianObjectLabels.java 131 123 Simbol utama L102 IndonesianObjectLabelsL104 displayL118 putL123 normalize
web/android/app/src/main/java/id/ac/telkomuniversity/its/WidgetBootReceiver.java 26 22 Simbol utama L9 onReceiveL20 sendWidgetUpdate
web/android/app/src/main/res/layout/widget_alert_full_data.xml 62 55 template / konfigurasi
web/android/app/src/main/res/layout/widget_maps.xml 77 70 template / konfigurasi
web/android/app/src/main/res/xml/widget_alert_full_data_info.xml 15 14 template / konfigurasi
web/android/app/src/main/res/xml/widget_maps_info.xml 15 14 template / konfigurasi
web/android/app/src/main/res/xml/widget_traffic_detection_info.xml 15 14 template / konfigurasi
web/android/app/build.gradle 66 57 Simbol utama L3 itsVersionCodeL4 itsVersionNameL33 getDefaultProguardFileL45 fileTreeL49 projectL53 projectL59 servicesJSON
web/capacitor.config.json 14 13 template / konfigurasi
web/android/app/src/main/AndroidManifest.xml 165 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/android/app/src/main/java/id/ac/telkomuniversity/its/MainActivity.java 405 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/android/app/src/main/java/id/ac/telkomuniversity/its/WidgetRealtimeService.java 474 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/android/app/src/main/java/id/ac/telkomuniversity/its/ChartWidgetProvider.java 842 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/android/app/src/main/java/id/ac/telkomuniversity/its/TrafficDetectionWidgetProvider.java 1.639 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/android/app/src/main/java/id/ac/telkomuniversity/its/MapsWidgetProvider.java 970 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/android/app/src/main/java/id/ac/telkomuniversity/its/AlertFullDataWidgetProvider.java 1.668 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/android/app/src/main/java/id/ac/telkomuniversity/its/LockScreenDashboardActivity.java 3.316 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/android/app/src/main/java/id/ac/telkomuniversity/its/LockScreenRenderer.java 6.898 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/android/app/src/main/java/id/ac/telkomuniversity/its/LockScreenPreferences.java 27 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/android/app/src/main/java/id/ac/telkomuniversity/its/ItsNotificationListenerService.java 279 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/android/app/src/main/java/id/ac/telkomuniversity/its/IndonesianObjectLabels.java 131 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/android/app/src/main/java/id/ac/telkomuniversity/its/WidgetBootReceiver.java 26 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/android/app/src/main/res/layout/widget_alert_full_data.xml 62 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/android/app/src/main/res/layout/widget_maps.xml 77 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/android/app/src/main/res/xml/widget_alert_full_data_info.xml 15 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/android/app/src/main/res/xml/widget_maps_info.xml 15 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/android/app/src/main/res/xml/widget_traffic_detection_info.xml 15 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/android/app/build.gradle 66 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/capacitor.config.json 14 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
User download

Link aplikasi

Microsoft Store

ITS Maps Windows

Store ID: 9MWFGGW3FD2C. Deep link web tersedia setelah produk live.

QR code QR Microsoft Store QR Microsoft Store
Buka Microsoft Store app
Credits

Ucapan terima kasih

Hanifa Septhi Larasati @hanifasepthi Developer utama, publisher Hanifa Teams, dan pemilik repository ITS Maps.
Roboflow RF-DETR roboflow/rf-detr Rujukan arsitektur object detection RF-DETR untuk pipeline deteksi visual.
Transformers.js / Xenova transformers.js Runtime inference JavaScript untuk model AI di browser.
OpenStreetMap, OpenMapTiles, OpenFreeMap, Leaflet, MapLibre, CARTO, Firebase, Microsoft, AndroidEkosistem peta vector, fallback raster, hosting realtime, web, widget, dan distribusi aplikasi.