in src/layers/trip-layer/trip-utils.js [103:135]
export function parseTripGeoJsonTimestamp(dataToFeature) {
// Analyze type based on coordinates of the 1st lineString
// select a sample trip to analyze time format
const empty = {dataToTimeStamp: [], animationDomain: null};
const sampleTrip = dataToFeature.find(
f => f && f.geometry && f.geometry.coordinates && f.geometry.coordinates.length >= 3
);
// if no valid geometry
if (!sampleTrip) {
return empty;
}
const analyzedType = containValidTime(sampleTrip.geometry.coordinates.map(coord => coord[3]));
if (!analyzedType) {
return empty;
}
const {format} = analyzedType;
const getTimeValue = coord =>
coord && notNullorUndefined(coord[3]) ? timeToUnixMilli(coord[3], format) : null;
const dataToTimeStamp = dataToFeature.map(f =>
f && f.geometry && Array.isArray(f.geometry.coordinates)
? f.geometry.coordinates.map(getTimeValue)
: null
);
const animationDomain = getAnimationDomainFromTimestamps(dataToTimeStamp);
return {dataToTimeStamp, animationDomain};
}