Почему выдает undefined?
Потому что обработчик промиса выполнится только после того как завершится выполнение основного потока программы. Это вам не php.
А с чего ему знать значение coord1  в этой строке? Оно действительно не определено, так как считается внутри локальной функции, в параметре другой функции, т.е. существует только в момент вызова mygeocoder. Как исправить, а кто же его знает чего вы пишите-то.