単純な話で、text-align: center と position: absolute を一緒に使っちゃダメというだけのこと。
MapBox-GLによってDOMに追加されるcanvas要素には、以下の3つのスタイルが直接指定される。
<canvas class="mapboxgl-canvas" width="1247" height="500" style="position: absolute; width: 1247px; height: 500px;"></canvas> position: absolute width: (親要素のwidth) height: (親要素のheight)
ここで、Vue.js では、initで作成されるサンプルのルート要素に以下が指定されている。
<style>
#app {
/* ..略.. */
text-align: center;
}
</style>
特に何も考えずこれを流用していると、
position:absolute 要素のアンカーは左上にあるので、text-aling:center によって要素の左上が画面の中央に持ってこられてしまった。
ルート要素の text-align を消すか、canvasの親要素に text-align: left などを適用して上書きすればいい。