为什么 openlayers 地图在 vue-cli 3 中不起作用

why openlayers map not working in vue-cli 3

我已经通过

将 ol 包添加到我的 vue-cli 项目中

npm install ol

但是地图没有加载。没有错误,我只是在结果源中找到一个空的 div。

这是我的代码=>

html 部分:

<div id="map-container"></div>

js 部分:

import 'ol/ol.css';
import Map from 'ol/Map';
import View from 'ol/View';
import TileLayer from 'ol/layer/Tile';
import XYZSource from 'ol/source/XYZ';

export default {
    name: "page",
    data() {
        return {
            ...
        }
    },
    methods: {

        initMap: function () {
            new Map({
                target: 'map-container',
                view: new View({
                center: [0, 0],
                zoom: 2
            })
        });
    },
    mounted: function () {
            this.initMap();
    },
}

注意 => 一些我发现我必须调用 init 函数的地方:

this.$nextTick(function () {
            initMap();
        })

但这没有什么区别。

伙计们,我 运行 没时间了,请帮助我。 感谢所有愿意帮助的人

您似乎缺少 TileLayer。像这样:

new Map({
  target: "map-container",
  layers: [
    new TileLayer({
      source: new XYZ({
        url: "https://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png"
      })
    })
  ],
  view: new View({
    center: [0, 0],
    zoom: 2
  })
});