Есть список городов присутствия фирмы.
Если посетитель заходит на сайт из города присутствия, то ему показываются контактные данные фирмы из данного города.
Если посетитель заходит из города, в котором нет фирмы, то как можно определить ближайший?
Желательно средствами Яндекса или Гугла
У яндекс карт есть апи, вы можете записать координаты всех городов, в которых есть фирма. И соответственно, когда человек пишет из другого города, посмотреть его координаты и определить, какая точка ближе всего к нему.
Можно построить матрицу расстояний до каждого офиса, если их действительно не много. Это правильный подход, но может выйти в копеечку. По прямой на глобусе - быстро и сердито, но можно ударить в грязь лицом из-за рек и гор.