OpenLayers ol-overlaycontainer-stopevent div, блокирующий ввод холста - PullRequest
0 голосов
/ 08 апреля 2020

Я создал очень простую c карту с OpenLayers внутри метода componentDidMount реагирующего компонента:

var tileSource = new source.XYZ({ url: "http://localhost:5000/Tiles/GetTile/{x}/{y}/{z}", minZoom:5, maxZoom: 18 });
var tileLayer = new TileLayer({ source: tileSource });

var options = { controls: [] };

//initialise and populate the map
this.Map = new Map(options);

this.Map.addLayer(tileLayer);
this.Map.setView(new View({ center: [-28.613, 25.225], zoom: 5, minZoom:5, maxZoom: 18 }));
this.Map.setTarget(this.MapDiv);

В моем событии рендеринга у меня есть целевой элемент для карты OpenLayers:

return (
        <div style={{ height: "100%" }}>
            <div className="openlayers-map" ref={(el)=> this.MapDiv = el}></div>
        </div>
    )

Это работает достаточно хорошо, и карта отображается хорошо, но ни один из входов (панорамирование, масштабирование и т. Д. c) с помощью мыши не работает, и карта зафиксирована на месте. Я немного покопался и обнаружил, что этот элемент

<div class="ol-overlaycontainer-stopevent" style="position: absolute; z-index: 0; width: 100%; height: 100%;"></div>

потребляет все события ввода мыши. Если я принудительно удаляю элемент с помощью инспектора браузера, я возвращаю себе контроль над картой, и панорамирование и масштабирование снова начинают работать.

Насколько я понимаю, он используется для наложений (полагаю, чтобы предотвратить взаимодействие с наложение, чтобы повлиять на карту). Но я не добавил на карту никаких наложений, похоже, ее там не должно быть.

Кто-нибудь знает, почему этот элемент существует и как предотвратить его влияние на мою карту?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...