mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-04 18:34:02 +00:00
The flight, military and vessel feeds were named after the providers the bundled server uses (/api/opensky, /api/adsblol/mil, /api/ais-live and their track routes; createOpenSkySource, createAdsbLolSource, createAisStreamSource). Any server should be able to answer a feed from its own provider, so the feeds are now: /api/flights /api/flights/track?icao24= /api/military /api/military/track?hex= /api/vessels /api/vessels/track?mmsi= with createFlightSource, createMilitarySource and createVesselSource. The old routes are removed. Each server names its provider in X-Feed-Source (the bundled server sends OpenSky Network, adsb.lol and AISStream, so its attribution is unchanged) and the military feed's cache state and age in X-Feed-Cache and X-Feed-Age-Ms. Sources report the provider the server names and fall back to the feed's name.
53 lines
2.5 KiB
JavaScript
53 lines
2.5 KiB
JavaScript
import { createApplicationVessels } from '../app/layers/aisLiveVessels.js';
|
|
|
|
import { createVesselSource } from '../sources/live/standalone.js';
|
|
|
|
const aisLiveVesselsLayer = createApplicationVessels({
|
|
source: createVesselSource({
|
|
apiUrl: import.meta.env?.VITE_AIS_LIVE_API_URL || '/api/vessels',
|
|
// Resolved against the document's address, which a panel host may serve
|
|
// from its own scheme.
|
|
origin: () => globalThis.document?.baseURI ?? 'http://localhost',
|
|
}),
|
|
options: {
|
|
maxRows: import.meta.env?.VITE_AIS_LIVE_MAX_ROWS,
|
|
maxLabels: import.meta.env?.VITE_AIS_LIVE_LABEL_MAX_ROWS,
|
|
},
|
|
});
|
|
export { AIS_FIRST_CONNECT_GRACE_MS } from '../layers/vessels/policy.js';
|
|
export const deriveAisFeedError = aisLiveVesselsLayer.deriveAisFeedError;
|
|
export const classifyAisFeedSnapshot =
|
|
aisLiveVesselsLayer.classifyAisFeedSnapshot;
|
|
export const mapAnalystRecord = aisLiveVesselsLayer.mapAnalystRecord;
|
|
export const vesselDatumHeightM = aisLiveVesselsLayer.vesselDatumHeightM;
|
|
export const reduceVesselSelection = aisLiveVesselsLayer.reduceVesselSelection;
|
|
export const applyVesselFocusDeemphasis =
|
|
aisLiveVesselsLayer.applyVesselFocusDeemphasis;
|
|
export const buildVesselCard = aisLiveVesselsLayer.buildVesselCard;
|
|
export const buildSelectedVesselCard =
|
|
aisLiveVesselsLayer.buildSelectedVesselCard;
|
|
export const cardScreenSeparated = aisLiveVesselsLayer.cardScreenSeparated;
|
|
export const _bindVesselInteractionForTest =
|
|
aisLiveVesselsLayer.testing._bindVesselInteractionForTest;
|
|
export const _setVesselStateForTest =
|
|
aisLiveVesselsLayer.testing._setVesselStateForTest;
|
|
export const _setVesselOverlayHostForTest =
|
|
aisLiveVesselsLayer.testing._setVesselOverlayHostForTest;
|
|
export const _updateVesselCardsForTest =
|
|
aisLiveVesselsLayer.testing._updateVesselCardsForTest;
|
|
export const _reconcileVesselsForTest =
|
|
aisLiveVesselsLayer.testing._reconcileVesselsForTest;
|
|
export const _applyAisFeedSnapshotForTest =
|
|
aisLiveVesselsLayer.testing._applyAisFeedSnapshotForTest;
|
|
export const _loadLivePositionsForTest =
|
|
aisLiveVesselsLayer.testing._loadLivePositionsForTest;
|
|
export const _beginAisSessionForTest =
|
|
aisLiveVesselsLayer.testing._beginAisSessionForTest;
|
|
export const _setAisRuntimeForTest =
|
|
aisLiveVesselsLayer.testing._setAisRuntimeForTest;
|
|
export const _getVesselFeedStateForTest =
|
|
aisLiveVesselsLayer.testing._getVesselFeedStateForTest;
|
|
export const _getVesselStateForTest =
|
|
aisLiveVesselsLayer.testing._getVesselStateForTest;
|
|
export default aisLiveVesselsLayer;
|