Как лучше реализовать такую задачу?
Обычно подходят с другой стороны, пользователь выбирает регион и страну, а затем уже город. В вашем же случае вам придется разруливать ситуации, когда в разных странах есть город с одинаковым названием (скажем Париж в Беларуси и Франции, и всякие другие забавные примеры). 
Используйте сервисы для определения местоположения пользователя. В довольно большом проценте случаев даже и вводить пользователю тогда ничего не придется, что  улучшит юзабилити.
Технических проблем, думаю, тут нет, вопрос в отображении?
Посмотрите, как на яндекс-картах сделано. Довольно удобно.