vue.js - MapBox (mapbox-gl-vue) 只在容器宽度的 50% 上渲染 map

标签 vue.js vuejs2 mapbox mapbox-gl-js

我正在尝试使用 Vue 2 的 MapBox,但我无法让 map 占据容器的整个宽度。它仅呈现容器宽度的 50%。

我已将这些文件包含在 index.html 的头部,如下所示:

<script src='https://api.mapbox.com/mapbox-gl-js/v0.40.0/mapbox-gl.js'></script>

<link href='https://api.mapbox.com/mapbox-gl-js/v0.40.0/mapbox-gl.css' rel='stylesheet' />

我想要一个组件中的 map (Map.vue,我使用的是vue-router),所以这是Map.vue中的代码:

脚本:

import Mapbox from 'mapbox-gl-vue';

export default {
  components: {
     'mapbox': Mapbox
  }
}

模板:

<mapbox access-token="pk.eyJ1Ijoic3BlZW5pY3Q....."
    :map-options="{
      style: 'mapbox://styles/mapbox/streets-v9',
      center: [-96, 37.8],
      zoom: 3
    }"
    :geolocate-control="{
      show: true, 
      position: 'top-left'
    }"
    :scale-control="{
      show: true,
      position: 'top-left'
    }"
    :fullscreen-control="{
      show: true,
      position: 'top-left'
    }">>
  </mapbox>

风格:

 #map {
 width: 100%;
 height: 600px;
 position: absolute;
 margin:0;
 z-index:1;
}

我已经尝试了我在 CSS id 中知道的所有内容,但它只在容器宽度的右半部分呈现 map ,在左侧仅显示 Logo 和控件,而其余区域为空.

Screenshot

最佳答案

为了解决这个问题,我只需要删除“text-align: center;”来自 App.vue 中的#app。

有关更多详细信息,请查看我在此处打开的问题: https://github.com/phegman/vue-mapbox-gl/issues/11

关于vue.js - MapBox (mapbox-gl-vue) 只在容器宽度的 50% 上渲染 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46215197/

相关文章:

javascript - 从 Vue 中的槽更新父级中的状态

vue.js - Vue Single page app Router,当我们改变路由时组件会发生什么?

javascript - 使用 Promise 传递参数 VUE

javascript - 使用 Vuex 时 $router.push() not a function 错误

vue.js - Vuetify 在特定网格大小上添加类

node.js - 找不到模块 'gulp-util'

javascript - 隐藏来自tilehosting.com的 map 中的国家和城市标签

javascript - 数组不更新的 Vue 计算属性

java - MapBox 地点选择器导致致命信号 6

javascript - 将多个值附加到单个 div