ITS Maps

Electron + MSIX + Windows Widgets

Metode Windows ITS Maps

Halaman ini membedah Microsoft Store app, Electron runtime, C# Windows Widget Provider, Adaptive Card templates, media renderer, dan identitas MSIX.

Preview Microsoft Store / Windows ITS Maps
Fitur

Fitur utama yang dibahas

MSIX Microsoft Store

Identitas HanifaTeams.ITSMaps, publisher, AppX assets, location/internet capability.

Windows Widgets

4 AdaptiveCard widgets: ITS Live, Kamera AI ITS, Peta ITS, Data Full & Alert.

Desktop app

Electron shell, custom titlebar, map/camera desktop, history, PiP/fullscreen video.

Widget media

C# renderer membuat chart, map tile, icons, snapshot AI, dan bbox sebagai media card.

Diagram

Alur runtime Microsoft Store / Windows

flowchart LR
  RTDB[("Firebase RTDB")] --> C["ItsWidgetDataService.cs"]
  C --> M["ItsWidgetMediaRenderer.cs"]
  C --> T["AdaptiveCard JSON templates"]
  M --> Board["Windows Widget Board"]
  Electron["Electron Desktop"] --> Renderer["web/src/windows.ts"]
  Package["MSIX HanifaTeams.ITSMaps"] --> Board
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 aplikasi Windows ITS Maps
Screenshot aplikasi Windows ITS Maps
Screenshot peta Windows ITS Maps
Screenshot peta Windows ITS Maps
Screenshot AI Windows ITS Maps
Screenshot AI Windows ITS Maps
Mockup Windows widget peta
Mockup Windows widget peta
Line-by-line source atlas

Atlas kode Microsoft Store / Windows

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/package.json 304 303 template / konfigurasi
web/src/windows.ts 4.059 3.748 Simbol utama L12 BrowserRfDetrDetectionL13 BrowserRfDetrResultL18 DeviceStatusL19 CameraModeL20 TrafficColorL22 VehicleBreakdownL31 RfDetrDetectionL41 TrafficCameraDatasetL49 DeviceRecordL88 SnapshotDeviceL94 SnapshotL100 AppConfigL105 UserLocationL113 NativeLocationResultL122 UpdateStatusL132 ItsDesktopBridgeL150 WebRtcStatusL152 WebRtcSessionRecordL159 WebRtcRuntimeL176 DesktopClientRecordL184 TrafficHistoryPointL194 PoiRecordL205 AppTabL206 MapFocus
web/electron/main.cjs 563 514 Simbol utama L33 iconPathL42 logoDataUrlL47 pathToFileURLL51 readWindowsLocationL100 sendToRendererL105 updateHistoryPathL109 readUpdateHistoryL117 appendUpdateHistoryL126 compareVersionL137 fetchJsonL159 downloadFileL191 openRendererPanelL214 notifyUpdateL226 enableBackgroundUpdateAtLoginL240 createSplashWindowL302 closeSplashWindowL308 maybeShowMainWindowL319 checkForUpdatesL344 downloadFileL384 createWindow
web/electron/preload.cjs 36 34 Simbol utama L16 listenerL21 listenerL26 listenerL31 listener
web/windows.html 20 16 template / konfigurasi
web/windows-widgets/ItsMapsWidgetProvider/Program.cs 136 121 Simbol utama L13 MainL52 RunSelfTestL126 WritePreview
web/windows-widgets/ItsMapsWidgetProvider/WidgetProvider.cs 130 113 Simbol utama L24 WidgetProviderL30 CreateWidgetL43 DeleteWidgetL52 OnActionInvokedL60 OnWidgetContextChangedL68 ActivateL85 DeactivateL94 RecoverRunningWidgets
web/windows-widgets/ItsMapsWidgetProvider/WidgetImplBase.cs 81 68 Simbol utama L14 WidgetImplBaseL52 UpdateWidgetL72 ReadTemplate
web/windows-widgets/ItsMapsWidgetProvider/ItsWidget.cs 151 134 Simbol utama L19 ItsWidgetL54 DataTemplateNameL72 SyncAutomaticDataPhaseL75 autoPhaseL99 ParseL114 ifL118 ifL122 ifL130 SerializeL132 ApplyVerb
web/windows-widgets/ItsMapsWidgetProvider/ItsWidgetDataService.cs 849 792 Simbol utama L62 GetSnapshotL81 ToJsonL253 FetchSnapshotAsyncL276 AttachChartHistoryL303 ifL314 ExtractDeviceElementsL328 ifL337 ReadSnapshotL355 ValidCoordinateL356 ValidCoordinateL357 ValidCoordinateL359 ValidCoordinateL360 ValidCoordinateL361 ValidCoordinateL362 ValidCoordinateL384 ifL385 ifL386 ifL387 ifL396 ReadNumberL397 ReadNumberL402 ReadStringL403 ReadStringL406 ReadString
web/windows-widgets/ItsMapsWidgetProvider/ItsWidgetMediaRenderer.cs 699 628 Simbol utama L20 WhiteBackgroundL30 RenderMapControlButtonL53 ifL62 EncodePngL65 RenderCameraFrameL127 EncodePngL130 RenderCartoMapL177 EncodePngL180 RenderMiniChartL221 EncodePngL224 DrawCartoTilesL228 centerTileXL229 centerTileYL230 halfTilesXL231 halfTilesYL236 wrappedXL248 DrawFallbackMapL265 DrawDetectionBoxL272 xL273 yL274 wL275 hL305 RectangleFL306 RectangleF
web/windows-widgets/ItsMapsWidgetProvider/ItsWidgetIconRenderer.cs 215 203 Simbol utama L14 IconL20 RenderL150 DrawPinL165 TruckCabPathL176 RoundedPathL188 ParseColorL203 DrawRoundedRectangle
web/windows-widgets/ItsMapsWidgetProvider/ItsLockScreenStatusUpdater.cs 67 58 Simbol utama L12 Update
web/windows-widgets/ItsMapsWidgetProvider/WidgetDiagnostics.cs 26 21 Simbol utama L11 Write
web/windows-widgets/ItsMapsWidgetProvider/WidgetHelper/RegistrationManager.cs 74 59 Simbol utama L18 ClassLifetimeUnregisterL21 DisposeL29 RegistrationManagerL34 RegisterProviderL40 RegisterClassL63 GetDisposedEventL67 Dispose
web/windows-widgets/ItsMapsWidgetProvider/WidgetHelper/WidgetProviderFactory.cs 93 74 Simbol utama L23 CreateInstanceL25 LockServerL30 RegisterL47 RevokeL52 CoRevokeClassObjectL60 CreateInstance
web/windows-widgets/ItsMapsWidgetProvider/Package.appxmanifest 137 130 template / konfigurasi
web/windows-widgets/ItsMapsWidgetProvider/Templates/TrafficWidgetTemplate.json 69 68 template / konfigurasi
web/windows-widgets/ItsMapsWidgetProvider/Templates/AiWidgetTemplate.json 49 48 template / konfigurasi
web/windows-widgets/ItsMapsWidgetProvider/Templates/MapWidgetTemplate.json 76 75 template / konfigurasi
web/windows-widgets/ItsMapsWidgetProvider/Templates/DataWidgetTemplate.json 65 64 template / konfigurasi
web/windows-widgets/ItsMapsWidgetProvider/Templates/DataMonitorWidgetTemplate.json 58 57 template / konfigurasi
web/windows-widgets/ItsMapsWidgetProvider/Templates/DataAlertWidgetTemplate.json 68 67 template / konfigurasi
web/scripts/build-windows-msix-with-widgets.ps1 223 198 Simbol utama L21 AssertL49 Assert
web/scripts/generate-transparent-windows-assets.ps1 86 75 Simbol utama L12 Write
web/scripts/appx-manifest-created.cjs 48 42 template / konfigurasi
web/scripts/after-pack-windows.cjs 85 76 Simbol utama L5 findManifestTool
web/package.json 304 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/src/windows.ts 4.059 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/electron/main.cjs 563 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/electron/preload.cjs 36 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/windows.html 20 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/windows-widgets/ItsMapsWidgetProvider/Program.cs 136 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/windows-widgets/ItsMapsWidgetProvider/WidgetProvider.cs 130 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/windows-widgets/ItsMapsWidgetProvider/WidgetImplBase.cs 81 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/windows-widgets/ItsMapsWidgetProvider/ItsWidget.cs 151 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/windows-widgets/ItsMapsWidgetProvider/ItsWidgetDataService.cs 849 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/windows-widgets/ItsMapsWidgetProvider/ItsWidgetMediaRenderer.cs 699 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/windows-widgets/ItsMapsWidgetProvider/ItsWidgetIconRenderer.cs 215 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/windows-widgets/ItsMapsWidgetProvider/ItsLockScreenStatusUpdater.cs 67 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/windows-widgets/ItsMapsWidgetProvider/WidgetDiagnostics.cs 26 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/windows-widgets/ItsMapsWidgetProvider/WidgetHelper/RegistrationManager.cs 74 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/windows-widgets/ItsMapsWidgetProvider/WidgetHelper/WidgetProviderFactory.cs 93 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/windows-widgets/ItsMapsWidgetProvider/Package.appxmanifest 137 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/windows-widgets/ItsMapsWidgetProvider/Templates/TrafficWidgetTemplate.json 69 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/windows-widgets/ItsMapsWidgetProvider/Templates/AiWidgetTemplate.json 49 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/windows-widgets/ItsMapsWidgetProvider/Templates/MapWidgetTemplate.json 76 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/windows-widgets/ItsMapsWidgetProvider/Templates/DataWidgetTemplate.json 65 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/windows-widgets/ItsMapsWidgetProvider/Templates/DataMonitorWidgetTemplate.json 58 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/windows-widgets/ItsMapsWidgetProvider/Templates/DataAlertWidgetTemplate.json 68 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/scripts/build-windows-msix-with-widgets.ps1 223 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/scripts/generate-transparent-windows-assets.ps1 86 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/scripts/appx-manifest-created.cjs 48 baris
Atlas lengkap tersedia sesuai permintaan Belum dimuat
web/scripts/after-pack-windows.cjs 85 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.