Finds the fairest place for a group to meet by ranking real places on the trip of whoever has it worst, not on the midpoint of a map.
Every time family, friends or coworkers needed somewhere to meet, I did it by hand: open a map, guess a spot in the middle, check everyone's trip, try another spot. all roads does that part for me.
The obvious answer is the geographic midpoint, but straight-line distance isn't travel time. So the midpoint never decides anything. Every person gets a real drive, transit or walking time to every candidate.
A search is two Google calls on the backend: one to find candidate places, one to time every person's trip to every candidate.
The backend averages everyone's coordinates into a centroid and measures how far the farthest person is from it. The search radius is half that spread, clamped between 1.5 and 50 km, so a group across one neighborhood and a group across a state both get a sensible area.
Places Text Search treats location as a suggestion, so anything more than 2 × radius + 2 km from the middle gets dropped, along with anything permanently closed. Then a brand filter: if you search "starbucks," you want Starbucks, not the coffee shop next door. When enough results contain every word of the query in their name, only those stay. "Coffee" rarely matches names, so it passes through untouched.
The top 20 go into one Distance Matrix pass covering everyone × every candidate, chunked to fit the API's per-request limits and run in parallel.
Venues sort by their longest trip, rounded to the minute, with the average breaking ties. The first version minimized total travel time instead, which will happily send one friend on a 50-minute drive to save the other two ten minutes each. In the search up top, El Toro wins on total time, 42 minutes to 43. Ranking by the worst trip gives whoever is coming from Manayunk two minutes back, and nobody has to hear about it.
The URL holds everyone's rounded coordinates and labels, the query and the mode, so a shared link just re-runs the search. Links from before the 2026 redesign used a base64 ?state= param, and those still decode.
Minimizing total travel time can stick one person with the worst trip.
Text Search returns results well outside your radius, so the distance filter has to be yours.
Five endpoints and a matrix call per venue became one function, one search and one batched matrix.
The fix was a server-side key and a browser key locked to the domain.
Once people have sent links around, the old format has to keep working.