首页 > 解决方案 > Openlayers ol 未定义

问题描述

这是我要导入的内容:

import React, { useState, useEffect, useRef } from 'react';
import 'ol/ol.css';
import ExtentInteraction from 'ol/interaction/Extent';
import { Map, View } from 'ol';
import { OSM } from 'ol/source';
import { Tile as TileLayer } from 'ol/layer';
import { shiftKeyOnly } from 'ol/events/condition';
import { Stroke, Style } from 'ol/style';
import { Control, defaults as defaultControls } from 'ol/control';

这是我对被标记的 ol 的用法:

    const controls = map.getControls();
    controls.forEach((control) => {
        console.log(control instanceof ol.control.Zoom);
    });

错误是 ol 未定义。这是我的导入问题还是需要使用其他参考?

标签: reactjsopenlayers

解决方案


Zoom也从以下位置导入ol/control

import { Control, Zoom, defaults as defaultControls } from 'ol/control';

...

controls.forEach((control) => {
  console.log(control instanceof Zoom);
});

推荐阅读