использовал resolve для определения города

Мне кажется такой подход намного короче и понятнее в исполнении. Плюс - автоопределенный город сохраняется в адресной строке, чтобы определять его только по первому заходу