То, что делает для вас Яндекс — это использование баз данных IP-адресов. Далеко не у всех IP есть привязка к географическим объектам (читай адрес). Что получится максимально вытащить, то вам и Яндекс и передаёт.
Определение положения устройства — это всегда функция, требующая разрешения на действия со стороны владельца этого устройства. Так устроен Geolocation API.
Так что
делайте запрос (
спецификация) и передавайте Яндекс-картам полученные координаты. Если устройство перемещается редко, сохраняйте полученный ответ в localStorage.