diff --git a/src/components/flightPlans/FlightPlanMap.vue b/src/components/flightPlans/FlightPlanMap.vue index 7ff279b..bc31855 100644 --- a/src/components/flightPlans/FlightPlanMap.vue +++ b/src/components/flightPlans/FlightPlanMap.vue @@ -22,19 +22,22 @@ const props = defineProps({ pointsOfInterest: { type: Array, required: true + }, + insertPosition: { + type: Number, + required: true } }); -const emits = defineEmits(["markers-changed"]); +const emits = defineEmits(["markers-changed", "change-insert-position"]); const {center} = useGeocode(); -const {markerObject, googleMapsCustomMarkerObject, googleMapsMarkerObject, infoWindowObject, editableNameTypes} = useFlightPlanObjects(); -const {getIcon, getMarkersFrom} = useFlightPlanUtils(); +const {markerObject, googleMapsMarkerObject, infoWindowObject, editableNameTypes} = useFlightPlanObjects(); +const {getMarkersFrom} = useFlightPlanUtils(); const infoWindow = ref(infoWindowObject({})); const handleMapClick = ({clickCoordinates, airspaces, airport}) => { - console.log(clickCoordinates, airspaces, airport); infoWindow.value = infoWindowObject({active: true, airspaces, position: clickCoordinates, airport}) } @@ -47,19 +50,23 @@ const handlePoiClick = (poi) => { } const markers = ref([]); - watch(() => props.flightPlan.track, (newVal) => { markers.value = getMarkersFrom(props.flightPlan); }, {immediate: true, deep: true}); const track = computed(() => markers.value.map(m => ({lat: m.gpsLatitude, lng: m.gpsLongitude}))); + const addMarker = async (point) => { if (!point) return; - markers.value.push(markerObject({...point})); + + const insertAt = Math.min(markers.value.length, props.insertPosition); + + markers.value.splice(insertAt, 0, markerObject({...point})); + infoWindow.value = infoWindowObject({active: false}); emits("markers-changed", markers.value); - infoWindow.value = infoWindowObject({active: false}); + emits("change-insert-position",insertAt + 1); } const {searchPlaceName} = useGeocode(); @@ -74,12 +81,14 @@ const handleMarkerMove = async (idx, event) => {