Für mich ergeben sich zwei Randbedingungen, die das Leben wesentlich vereinfachen:

  1. Echtzeit ist nicht gefordert
  2. Die Autos bewegen sich in einem überschaubarem Raum

Damit lässt sich das Problem wie folgt lösen:
Die OSM für den in Frage kommenden geographischen Bereich einmal runterladen (die Aktualität sollte da auch keine
allzu große Rolle spielen) und dann off-line auswerten. Den Bereich kann man schon mal großzügig wählen und
falls mal wirklich ein Fahrzeug “ausbricht”, kann nachgeladen werden.

Da Du nur an Straßen interessiert bis, lässt sich die OSM Datenmenge drastisch reduzieren, aber für die Such kommst Du um eine
Datenbank wahrschinlich nicht herum.