var pos = this.getAttribute('data-goto');
myMap.panTo(pos, {
data-goto="[59.938531, 30.313497]"
Как подсказывает документация, метод panTo в качестве координат ожидает массив чисел, в то время как вы подсовываете строку.
Поскольку строка представляет собой корректный JSON, который, в свою очередь, представляет собой требуемый массив, то заставить всё работать как надо - дело тривиальное:
this.getAttribute('data-goto')
--->
JSON.parse(this.dataset.goto)