Dokumentasi Integrasi Sistem Peta Wisata 2D
MiniMaps adalah platform visual denah peta 2D interaktif (*site plan / layout*) untuk kawasan rekreasi dan tempat wisata. Platform ini dirancang untuk di-embed ke website eksternal dan terintegrasi dengan sistem tiket gelang pintar (*smart wristband*) untuk menampilkan anggota rombongan secara *real-time*.
1. Panduan Iframe Embed
Sistem peta siap disematkan di web portal, web promosi tiket, maupun webview aplikasi mobile.
Kode HTML Iframe Dasar:
<iframe
src="https://dev.mm.awh.co.id/embed/maps/sari-ater-resort"
width="100%"
height="600px"
allow="geolocation"
frameborder="0"
style="border-radius: 12px; border: 1px solid #cbd5e1;">
</iframe>
allow="geolocation" wajib disertakan agar browser pengunjung mengizinkan fitur deteksi lokasi tombol "Saya".
2. Alur Scan QR Tiket Pengunjung
Setiap pengunjung memiliki kode tiket unik (misal: TIK-101). Saat pengunjung scan QR pada tiket / gelang, arahkan ke URL embed dengan parameter ?ticket_id=...:
Tampilan Pengunjung:
- Hanya melihat diri sendiri & anggota satu rombongannya.
- Tidak melihat pengunjung dari rombongan lain (privasi terjaga).
- Anggota yang tidak membuka peta tetap terlihat posisinya.
Tampilan Admin:
- Melihat seluruh pengunjung & seluruh rombongan di denah.
- Dapat memfilter peta berdasarkan rombongan tertentu.
- Memantau status pengunjung yang sedang di dalam (
in) maupun yang sudah keluar (out).
/api/v1/attractions/{slug}/groups
Penyimpanan Data Kelompok / Rombongan
Dipanggil oleh aplikasi sistem tiket saat pengunjung membeli tiket atau saat salah satu pengunjung pertama kali membuka menu maps.
group_id dan ticket_id yang sama dikirim kembali, sistem tidak melempar error, melainkan tetap sukses (200 OK) tanpa mengubah/me-reset posisi pengunjung yang sedang berjalan.
Header Request:
Content-Type: application/jsonAccept: application/json
Request Payload (JSON Body):
{
"group_id": "GRP-12345",
"group_name": "Keluarga Budi Santoso",
"members": [
{
"ticket_id": "TIK-001",
"name": "Budi Santoso",
"status": "in"
},
{
"ticket_id": "TIK-002",
"name": "Ani Rahayu",
"status": "in"
},
{
"ticket_id": "TIK-003",
"name": "Dika",
"status": "out"
}
]
}
Response Sukses Baru Disimpan (HTTP 201 Created):
{
"success": true,
"message": "Data kelompok dan pengunjung berhasil disimpan.",
"data": {
"group_id": "GRP-12345",
"group_name": "Keluarga Budi Santoso",
"total_members": 3,
"members": [
{
"ticket_id": "TIK-001",
"name": "Budi Santoso",
"status": "in",
"map_url": "https://dev.mm.awh.co.id/embed/maps/sari-ater-resort?ticket_id=TIK-001"
},
{
"ticket_id": "TIK-002",
"name": "Ani Rahayu",
"status": "in",
"map_url": "https://dev.mm.awh.co.id/embed/maps/sari-ater-resort?ticket_id=TIK-002"
}
]
}
}
Response Sukses Jika Data Sudah Ada (HTTP 200 OK):
{
"success": true,
"message": "Data kelompok dan tiket sudah terdaftar. Tidak ada perubahan data.",
"data": { ... }
}
/api/v1/attractions/{slug}/tickets/{ticket_id}/status
Update Status Pengunjung (In / Out)
Dipanggil saat pengunjung melakukan tap / scan gelang di gerbang keluar atau masuk.
Request Payload (JSON Body):
{
"status": "out"
}
Response Sukses (HTTP 200 OK):
{
"success": true,
"message": "Status tiket TIK-001 berhasil diubah menjadi out.",
"data": {
"ticket_id": "TIK-001",
"name": "Budi Santoso",
"status": "out"
}
}
/api/v1/attractions/{slug}/tickets/{ticket_id}/name
Update Nama Pengunjung
Dipanggil saat ada perubahan nama pemegang tiket/pengunjung dari aplikasi ticketing.
Request Payload (JSON Body):
{
"name": "Budi Santoso, S.Kom"
}
Response Sukses (HTTP 200 OK):
{
"success": true,
"message": "Nama pengunjung dengan tiket TIK-001 berhasil diperbarui.",
"data": {
"ticket_id": "TIK-001",
"name": "Budi Santoso, S.Kom",
"status": "in"
}
}
/api/v1/attractions/{slug}/tickets/{ticket_id}/offline
Set Pengunjung Offline (Pulang)
Dipanggil saat pengunjung sudah pulang/keluar dari tempat wisata sehingga pin lokasinya otomatis tidak lagi muncul di denah maps.
Response Sukses (HTTP 200 OK):
{
"success": true,
"message": "Pengunjung dengan tiket TIK-001 berhasil di-set offline (pulang).",
"data": {
"ticket_id": "TIK-001",
"name": "Budi Santoso",
"status": "out",
"is_online": false
}
}
3. Standar JSON AWH
Semua endpoint API dibangun menggunakan trait AwhStandardJson dengan format seragam:
Format Sukses:
{
"success": true,
"message": "Ok",
"data": { ... }
}
Format Error:
{
"success": false,
"message": "Pesan error",
"errors": { ... }
}
Live API Tester (Playground)
Uji Coba LangsungGunakan form di bawah ini untuk menguji pengiriman data rombongan secara langsung ke sistem maps.