feat(pbf): read more from pbf
This commit is contained in:
parent
6fb285e9de
commit
16abe8b37a
|
@ -6,7 +6,7 @@ import { FeedMessage } from '../../proto2js/js/gtfs-rt.js';
|
||||||
import '../style.css';
|
import '../style.css';
|
||||||
const Home = () => {
|
const Home = () => {
|
||||||
/*storage*/
|
/*storage*/
|
||||||
const [vehPos, setVehPos] = useState({});
|
const [vehPos, setVehPos] = useState([]);
|
||||||
/*fetch vehPost in a JavaScript function*/
|
/*fetch vehPost in a JavaScript function*/
|
||||||
const getVehPos = async () => {
|
const getVehPos = async () => {
|
||||||
try {
|
try {
|
||||||
|
@ -26,21 +26,23 @@ const Home = () => {
|
||||||
//console.log('getVehPos() JSON pbf: ', JSON.stringify(pbf));
|
//console.log('getVehPos() JSON pbf: ', JSON.stringify(pbf));
|
||||||
const feed = FeedMessage.read(pbf);
|
const feed = FeedMessage.read(pbf);
|
||||||
if (feed.header) {
|
if (feed.header) {
|
||||||
console.log('getVehPos() header available');
|
//console.log('getVehPos() header available');
|
||||||
const {gtfs_realtime_version, incrementality, timestamp}=feed.header;
|
const {gtfs_realtime_version, incrementality, timestamp}=feed.header;
|
||||||
if(gtfs_realtime_version && incrementality, timestamp){
|
if(gtfs_realtime_version && incrementality, timestamp){
|
||||||
console.log(`getVehPos() gtfs_realtime_version: ${gtfs_realtime_version}, incrementaltiy: ${incrementality}, timestamp: ${timestamp} available`);
|
console.log(`getVehPos() gtfs_realtime_version: ${gtfs_realtime_version}, incrementaltiy: ${incrementality}, timestamp: ${timestamp} available`);
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
console.error('getVehPos() header NOT available');
|
||||||
}
|
}
|
||||||
|
const messages = [];
|
||||||
//console.log('getVehPos() feed: ', feed);
|
//console.log('getVehPos() feed: ', feed);
|
||||||
//console.log('getVehPos() JSON feed: ', JSON.stringify(feed));
|
//console.log('getVehPos() JSON feed: ', JSON.stringify(feed));
|
||||||
feed.entity.forEach(entity => {
|
feed.entity.forEach(entity => {
|
||||||
const vehiclePos = entity.vehicle;
|
const vehiclePos = entity.vehicle;
|
||||||
if (vehiclePos) {
|
if (vehiclePos) {
|
||||||
console.log('getVehPos() vehiclePos available');
|
//console.log('getVehPos() vehiclePos available');
|
||||||
const { trip, position, vehicle } = vehiclePos;
|
const { trip, position, vehicle } = vehiclePos;
|
||||||
if (trip && position && vehicle) {
|
if (trip && position && vehicle) {
|
||||||
console.log(`getVehPos() trip: ${trip}, position: ${position} & vehicle: ${vehicle} available`);
|
|
||||||
const {trip_id, route_id, direction_id, start_time, start_date, schedule_relationship}=trip;
|
const {trip_id, route_id, direction_id, start_time, start_date, schedule_relationship}=trip;
|
||||||
if(trip_id){
|
if(trip_id){
|
||||||
console.log(`getVehPos() trip_id:${trip_id} available`);
|
console.log(`getVehPos() trip_id:${trip_id} available`);
|
||||||
|
@ -64,6 +66,12 @@ const Home = () => {
|
||||||
if(longitude){
|
if(longitude){
|
||||||
console.log(`getVehPos() longitude:${longitude} available`);
|
console.log(`getVehPos() longitude:${longitude} available`);
|
||||||
}
|
}
|
||||||
|
const message={
|
||||||
|
routeId: route_id === undefined ? -1 : parseInt(route_id,10) || -2,
|
||||||
|
lat: latitude === undefined ? -360 : latitude,
|
||||||
|
lon: longitude === undefined ? -720 : longitude,
|
||||||
|
};
|
||||||
|
messages.push(message);
|
||||||
} else {
|
} else {
|
||||||
console.error('getVehPos() trip, position & vehicle NOT unavailable ');
|
console.error('getVehPos() trip, position & vehicle NOT unavailable ');
|
||||||
}
|
}
|
||||||
|
@ -71,11 +79,11 @@ const Home = () => {
|
||||||
console.error('getVehPos() vehiclePos NOT available');
|
console.error('getVehPos() vehiclePos NOT available');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
/*set state*/
|
||||||
|
setVehPos(messages);
|
||||||
} else {
|
} else {
|
||||||
console.error('getVehPos() res.data unavailable ');
|
console.error('getVehPos() res.data unavailable ');
|
||||||
}
|
}
|
||||||
/*set state*/
|
|
||||||
setVehPos(res.data);
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error('err.message: ' + err.message);
|
console.error('err.message: ' + err.message);
|
||||||
}
|
}
|
||||||
|
@ -87,6 +95,9 @@ const Home = () => {
|
||||||
<h3>(React.js Lambda Function Component)</h3>
|
<h3>(React.js Lambda Function Component)</h3>
|
||||||
<Hello msg="Hello World!" />
|
<Hello msg="Hello World!" />
|
||||||
<button onClick={getVehPos}>getVehPos</button>
|
<button onClick={getVehPos}>getVehPos</button>
|
||||||
|
<p>
|
||||||
|
vehicle position count: {vehPos.length}
|
||||||
|
</p>
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue