release: bump version to 0.52.0

This commit is contained in:
linkong
2026-05-12 17:15:02 +08:00
parent b15d097b9c
commit b87cb310fd
70 changed files with 5589 additions and 2187 deletions

View File

@@ -206,7 +206,7 @@ export const PATHS = {
cablesApi: '/api/v1/visualization/geo/cables',
landingPointsApi: '/api/v1/visualization/geo/landing-points',
computeCentersApi: '/api/v1/visualization/geo/compute-centers',
vesselsApi: '/api/v1/visualization/geo/vessels',
vesselsApi: '/api/v1/vessels/snapshot',
vesselTrackApi: (mmsi) => `/api/v1/visualization/vessels/${encodeURIComponent(mmsi)}/track`,
bgpApi: '/api/v1/visualization/geo/bgp-anomalies',
bgpIncidentsApi: '/api/v1/visualization/geo/bgp-incidents',

View File

@@ -258,6 +258,11 @@ const vesselIconLayer = createInteractableLayer({
}),
});
const DEFAULT_VESSEL_VIEWPORT = {
bbox: [-180, -90, 180, 90],
zoom: 2,
};
export function getVesselMarkers() {
return vesselIconLayer.getMarkers();
}
@@ -313,6 +318,14 @@ export function clearVesselData(earth) {
export async function loadVessels(_scene, earth, options = {}) {
const params = new URLSearchParams();
const requestedLimit = Number(options.limit ?? VESSEL_CONFIG.maxRenderedMarkers);
const bbox = Array.isArray(options.bbox) && options.bbox.length === 4
? options.bbox
: DEFAULT_VESSEL_VIEWPORT.bbox;
const zoom = Number.isFinite(Number(options.zoom))
? Number(options.zoom)
: DEFAULT_VESSEL_VIEWPORT.zoom;
params.set("bbox", bbox.join(","));
params.set("zoom", String(zoom));
if (Number.isFinite(requestedLimit) && requestedLimit > 0) {
params.set("limit", String(requestedLimit));
}
@@ -352,7 +365,15 @@ export function startVesselRealtime(earth, { onUpdate } = {}) {
connected: true,
};
onUpdate?.({ totalCount: getVesselCount(), stream: getVesselRealtimeStats() });
socket.send(JSON.stringify({ type: "subscribe", data: { channels: ["vessels"] } }));
socket.send(JSON.stringify({
type: "subscribe",
data: {
channel: "vessels",
bbox: DEFAULT_VESSEL_VIEWPORT.bbox,
zoom: DEFAULT_VESSEL_VIEWPORT.zoom,
limit: VESSEL_CONFIG.maxRenderedMarkers,
},
}));
};
socket.onmessage = (event) => {
let message;