Ja bym się nie bawił w graf dróg, za duża korzyść z tego nie będzie, a skąd takie coś dostaniesz (za darmo nikt Ci tego pewnie nie da). Sprawdziłbym czy po prostu przelecenie dla każdej osoby po wszystkich placówkach i sprawdzenie odległości nie będzie za długie, szczególnie że trzeba to robić tylko przy dodawaniu nowej osoby. Z drugiej strony zawsze możesz zrobić Voronoia na placówkach, wtedy pójdzie zdecydowanie szybciej, ale kod jest bardziej skomplikowany. Dodatkowo musiałbyś jakoś przerzucić sensownie współrzędne na płaszczyznę, lub zrobić go na sferze (jakieś pracę naukowe na ten temat można znaleźć, ale czas spędzony nad implementacją może się nie opłacać)