From 1073190b7eaff62c16d3792273b2fb5744511c14 Mon Sep 17 00:00:00 2001
From: Jacek Kowalski <Jacek@jacekk.info>
Date: Fri, 01 Feb 2019 10:34:17 +0000
Subject: [PATCH] Add safeguard against unknown vehicle types

---
 parse.php |   20 ++++++++++++++++----
 1 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/parse.php b/parse.php
index 6e5b4e9..df4e100 100644
--- a/parse.php
+++ b/parse.php
@@ -1,5 +1,6 @@
 <?php
-require_once 'vendor/autoload.php';
+require('vendor/autoload.php');
+require('common.php');
 
 use transit_realtime\FeedMessage;
 
@@ -53,6 +54,7 @@
 			$trip = $vehiclePosition->getTrip();
 			$tripId = $trip->getTripId();
 			$this->gtfsTrips[self::convertTripId($tripId)] = [
+				'id' => $entity->getId(),
 				'num' => $vehicle->getLicensePlate(),
 				'tripId' => $tripId,
 				'latitude' => $position->getLatitude(),
@@ -102,6 +104,7 @@
 		}
 		
 		if($options != 1) {
+			fwrite(STDERR, 'Found '.$options.' possible mappings!'."\n");
 			return FALSE;
 		}
 		return $bestOffset;
@@ -112,9 +115,18 @@
 		foreach($this->gtfsTrips as $gtfsTripId => $gtfsTrip) {
 			$jsonTripId = $gtfsTripId + $offset;
 			if(isset($this->jsonTrips[$jsonTripId])) {
-				$result[$jsonTripId] = [
-					'num' => $gtfsTrip['num'],
-				];
+				$data = numToTypeB($gtfsTrip['id']);
+				$num = $gtfsTrip['num'];
+				if(!is_array($data) || !isset($data['num'])) {
+					$data = [
+						'num' => $num,
+						'low' => 2,
+					];
+				} elseif($data['num'] != $num) {
+					// Ignore due to incorrect depot markings in the data
+					//fwrite(STDERR, 'Got '.$num.', database has '.$data['num']."\n");
+				}
+				$result[$this->jsonTrips[$jsonTripId]['id']] = $data;
 			}
 		}
 		return $result;

--
Gitblit v1.9.1