In a scenario where two cabs are reporting themselves to a central system using the same unique cab id (due to fraud or poor configuration of mobile systems), can I write a GeoEvents trigger to alert on this situation and highlight both cabs?
Hello Rob -
If I understand your question, no, I don't think you will be able to easily configure the GeoEvent Extension (GEx) to discover that two sensors (or in your case two reporting vehicles) have the same identifier.
Every event is made up of attributes. Any attribute (String, Date, Double, Geometry, Boolean, etc.) can be tagged as the TRACK_ID. This tells the GeoEvent Extension that the event is associated with a given source (a reporting vehicle or sensor). If a fraudulent reporter or poorly configured sensor were reporting events with a TRACK_ID assigned to another vehicle or sensor ... how would you tell just by looking at two event which one was the impostor?
I would be complicated, but in the vehicle tracking scenario, if you assume that a vehicle with a given TRACK_ID cannot be in two places at the same time, you could use a spatial processor to buffer the vehicle's position and send the polygon buffers out a stream service. You could then configure a GeoFence synchronization rule to update the extension's catalog of GeoFences as events are received from the stream service. You would have to be careful to enrich each vehicle's report with a timestamp of when the event was received and calculate a fairly short time range (so that each buffer had a TIME_START and a TIME_END) before it was broadcast out the stream service. That way the GeoFence synchronization would have the information it needed to expire a GeoFence which was out-of-date and the GeoEvent Extension could purge the "old" GeoFences.
You then might use a GeoEvent Service to check if a given vehicle report's buffer is DISJOINT with a previous buffer for the same TRACK_ID. Two vehicles reporting on opposite sides of the city would be the trigger you would use to send an event to an alerting output (such as email, or SMS text). This would not be a simple configuration to set-up ... but it is one idea ... off the top of my head.
Hope this information is helpful -
Retrieving data ...