did something with markers

This commit is contained in:
PxlLoewe
2025-04-25 17:37:34 -07:00
parent ef93275d9c
commit 19f036d0c3
11 changed files with 57 additions and 8 deletions

View File

@@ -58,6 +58,7 @@ export const calculateAnchor = (
y: rect.top + rect.height / 2, y: rect.top + rect.height / 2,
}; };
}); });
const ownMarkerBounds = (ownMarker as HTMLElement).getBoundingClientRect(); const ownMarkerBounds = (ownMarker as HTMLElement).getBoundingClientRect();
const ownMarkerPosition = { const ownMarkerPosition = {
x: ownMarkerBounds.left + ownMarkerBounds.width / 2, x: ownMarkerBounds.left + ownMarkerBounds.width / 2,
@@ -75,6 +76,12 @@ export const calculateAnchor = (
centerOfOverlappingMarkers.x /= markersPosition.length; centerOfOverlappingMarkers.x /= markersPosition.length;
centerOfOverlappingMarkers.y /= markersPosition.length; centerOfOverlappingMarkers.y /= markersPosition.length;
if (id == "2") {
console.log("markersInCluser", marksersInCluster);
console.log("ownMarkerPosition", ownMarkerPosition);
console.log("centerOfOverlappingMarkers", centerOfOverlappingMarkers);
}
if (marksersInCluster.length > 1) { if (marksersInCluster.length > 1) {
if (centerOfOverlappingMarkers.y < ownMarkerPosition.y) { if (centerOfOverlappingMarkers.y < ownMarkerPosition.y) {
if (centerOfOverlappingMarkers.x > ownMarkerPosition.x) { if (centerOfOverlappingMarkers.x > ownMarkerPosition.x) {

View File

@@ -281,7 +281,6 @@ const AircraftMarker = ({ aircraft }: { aircraft: Aircraft }) => {
const handleZoom = () => { const handleZoom = () => {
const zoom = map.getZoom(); const zoom = map.getZoom();
console.log("zoom", zoom);
setHideMarker(zoom < 9); setHideMarker(zoom < 9);
handleConflict(); handleConflict();
}; };
@@ -331,6 +330,8 @@ const AircraftMarker = ({ aircraft }: { aircraft: Aircraft }) => {
</span> </span>
<div <div
data-id="${aircraft.id}" data-id="${aircraft.id}"
data-anchor-lat="${aircraft.location.lat}"
data-anchor-lng="${aircraft.location.lng}"
id="marker-domain-${aircraft.id}" id="marker-domain-${aircraft.id}"
class="${cn( class="${cn(
"map-collision absolute w-[200%] h-[200%] top-0 left-0 transform pointer-events-none", "map-collision absolute w-[200%] h-[200%] top-0 left-0 transform pointer-events-none",

View File

@@ -8,9 +8,7 @@ export const ContextMenu = () => {
const map = useMap(); const map = useMap();
const { contextMenu, setContextMenu, setSearchElements, setSearchPopup } = const { contextMenu, setContextMenu, setSearchElements, setSearchPopup } =
useMapStore(); useMapStore();
const setMissionFormValues = usePannelStore( const { setMissionFormValues, setOpen } = usePannelStore((state) => state);
(state) => state.setMissionFormValues,
);
useEffect(() => { useEffect(() => {
const handleContextMenu = (e: any) => { const handleContextMenu = (e: any) => {
setContextMenu({ lat: e.latlng.lat, lng: e.latlng.lng }); setContextMenu({ lat: e.latlng.lat, lng: e.latlng.lng });
@@ -72,7 +70,7 @@ export const ContextMenu = () => {
place_rank: number; place_rank: number;
type: string; type: string;
}; };
console.log(data); setOpen(true);
setMissionFormValues({ setMissionFormValues({
addressLat: contextMenu.lat, addressLat: contextMenu.lat,
addressLng: contextMenu.lng, addressLng: contextMenu.lng,

View File

@@ -277,6 +277,8 @@ const MissionMarker = ({ mission }: { mission: Mission }) => {
${mission.missionKeywordAbbreviation} ${mission.missionKeywordName} ${mission.missionKeywordAbbreviation} ${mission.missionKeywordName}
</span> </span>
<div <div
data-anchor-lat="${mission.addressLat}"
data-anchor-lng="${mission.addressLng}"
data-id="${mission.id}" data-id="${mission.id}"
id="marker-domain-${mission.id}" id="marker-domain-${mission.id}"
class="${cn( class="${cn(

View File

@@ -124,9 +124,7 @@ export const MarkerCluster = () => {
const existingClusterIndex = newCluster.findIndex( const existingClusterIndex = newCluster.findIndex(
(c) => Math.abs(c.lat - lat) < 1 && Math.abs(c.lng - lng) < 1, (c) => Math.abs(c.lat - lat) < 1 && Math.abs(c.lng - lng) < 1,
); );
console.log("existingClusterIndex", existingClusterIndex);
const existingCluster = newCluster[existingClusterIndex]; const existingCluster = newCluster[existingClusterIndex];
console.log("existingCluster", existingCluster, lat, lng);
if (existingCluster) { if (existingCluster) {
newCluster = [...newCluster].map((c, i) => { newCluster = [...newCluster].map((c, i) => {
if (i === existingClusterIndex) { if (i === existingClusterIndex) {
@@ -218,7 +216,6 @@ export const MarkerCluster = () => {
map.off("zoomend", handleZoom); map.off("zoomend", handleZoom);
}; };
}, [map, aircrafts, missions]); }, [map, aircrafts, missions]);
console.log("cluster", cluster);
return ( return (
<> <>
{cluster.map((c, i) => ( {cluster.map((c, i) => (

Binary file not shown.

View File

@@ -0,0 +1,15 @@
model connectedAircraft {
id Int @id @default(autoincrement())
userId String
publicUser Json
lastHeartbeat DateTime @default(now())
stationId Int
loginTime DateTime @default(now())
esimatedLogoutTime DateTime?
logoutTime DateTime?
positionLogIds Int[] @default([])
// relations:
user User @relation(fields: [userId], references: [id])
station Station @relation(fields: [stationId], references: [id])
}

View File

@@ -0,0 +1,12 @@
model ConnectedDispatch {
id Int @id @default(autoincrement())
userId String
publicUser Json
lastHeartbeat DateTime @default(now())
loginTime DateTime @default(now())
esimatedLogoutTime DateTime?
logoutTime DateTime?
// relations:
user User @relation(fields: [userId], references: [id])
}

View File

@@ -0,0 +1,13 @@
model PositionLog {
id Int @id @default(autoincrement())
userId String
simulator String
lat Float
lng Float
alt Int
speed Int
heading Int
timestamp DateTime @default(now())
// relations:
user User @relation(fields: [userId], references: [id])
}

View File

@@ -35,4 +35,5 @@ model Station {
MissionsOnStations MissionsOnStations[] MissionsOnStations MissionsOnStations[]
MissionOnStationUsers MissionOnStationUsers[] MissionOnStationUsers MissionOnStationUsers[]
connectedAircraft connectedAircraft[]
} }

View File

@@ -48,6 +48,9 @@ model User {
*/ */
Mission Mission[] Mission Mission[]
MissionOnStationUsers MissionOnStationUsers[] MissionOnStationUsers MissionOnStationUsers[]
ConnectedDispatch ConnectedDispatch[]
connectedAircraft connectedAircraft[]
PositionLog PositionLog[]
@@map(name: "users") @@map(name: "users")
} }