Had to get creative.
Drivers post approx location (like ~1km accuracy). Rider gets list of all drivers nearbyish, Rider calculates fares based on route, sends fares and calculated estimated sats per mile, sats per hour of ride using driver location info in offer to drivers. Driver accepts or rejects. Rider location never really shared until driver has already accepted the ride. Desination location can remain hidden also until verified pickup via pin, etc. Everything stays encrypted to rider/driver pubkeys as needed.
There is an still the backup option to broadcast a ride offer publicly like lyft and uber do, but it literally warns against it in app, telling you it reveals location data publicly and is a terrible idea.