Самый лучший контрол - это тот, который не требует от юзера вообще никаких телодвижений. Сейчас есть
технология получения геоданных от юзера.
Все, в основном, делают так:
1) юзер зашел на страницу
2) ему всплыл попап, где написано, что мол мы определили твой город как Пупинск
3) ниже 2 кнопки "Правильно определили", "Неправильно определили"
4) если юзер жмёт "Правильно", то ему в куки записывается откуда он (чтоб в следующий раз он этого попапа не увидел вообще)
5) если он нажал "Неправильно", то ему показывается обычный селект, где он выбирает откуда он
5.5) можно показывать необычный селект, а поле с автодополнением, ввёл более 3-х букв, всплыло окно с опциями, совпавшими по введённым буквам