We build a flat indexing scheme using zip codes; this scheme
alleviates the overhead of doing the costly linear comparisons.
First, we pre-compute the zip codes for all the bus stops, bus routes
and train lines. Then, for each zip code in the city, we maintain a
bus stop candidate list, bus route candidate list, and rail line
candidate list. We cache this zip code index on the central server.
Next, when a mobile user submits a GPS sensor report, instead of
doing a linear comparison with all the bus stops, buses, and rail
lines, we only compare against those in the same zip code from
which the GPS sensor report was submitted