Initial commit: PilotVault multi-service project

Add API Server (Go/PocketBase), Web App (Go BFF + Vue), Fly App
(Flutter/DJI MSDK), Adobe Plugin, and Docker/Docker AIO deployment
configs. Design assets and build artifacts are gitignored.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
tajniak81andClaude Opus 4.8 committed 2026-07-13 11:43:33 +02:00
commit afc6952eda
172 files changed
+24591

No files matched your search

+49
View File
@@ -0,0 +1,49 @@
<script setup>
import { onMounted, watch, ref } from 'vue'
import L from 'leaflet'
const props = defineProps({
position: { type: Object, default: null }, // { lat, lng }
trail: { type: Array, default: () => [] },
})
const el = ref(null)
let map, marker, line
function draw() {
if (!map) return
const p = props.position
if (p && (p.lat || p.lng)) {
const pos = [p.lat, p.lng]
if (!marker) {
marker = L.marker(pos).addTo(map)
map.setView(pos, 17)
} else {
marker.setLatLng(pos)
}
}
if (line) line.remove()
if (props.trail.length) {
const accent =
getComputedStyle(document.documentElement).getPropertyValue('--accent').trim() || '#3D7BF0'
line = L.polyline(props.trail, { color: accent, weight: 3 }).addTo(map)
}
}
onMounted(() => {
map = L.map(el.value, { zoomControl: true }).setView([20, 0], 2)
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution: '© OpenStreetMap',
maxZoom: 19,
}).addTo(map)
setTimeout(() => map.invalidateSize(), 60)
draw()
})
watch(() => props.position, draw, { deep: true })
watch(() => props.trail, draw, { deep: true })
</script>
<template>
<div ref="el" class="h-[320px] w-full rounded-lg"></div>
</template>