Даже при использовании внешних систем точно узнать город сложная задача(будут ошибки).
Если же вы хотите решить вопрос самостоятельно, то единственный выход - самостоятельно описать границы нужных вам городов и решать задачу вхождения точки в многоугольник.
Вообще, решение задачи точного определения города по точке достаточно сложная, и потребует и внешних ресурсов и самостоятельной их доработки, потому что и границы меняться и условности есть, что то де юро считаться пригородом, а люди считают это частью города.