addControl дает проблему с ol.control.FullScreen
Aug 18 2020
Я экспериментирую с некоторыми настройками OpenLayers, когда я пытаюсь использовать map.addControl
с, ol.control.FullScreen
я вижу это сообщение об ошибке:
Uncaught TypeError: t.element.setMap не является функцией
Это сообщение пришло из PluggableMap.js
.
Я делаю это:
var map = new ol.Map({
target: 'map',
});
var fullScreen = new ol.control.FullScreen({className: 'ol-full-screen', tipLabel: 'Toggle full-screen'});
map.addControl(fullScreen);
var scaleLine = new ol.control.ScaleLine({className: 'ol-scale-line', target: document.getElementById('scale-line')});
map.addControl(scaleLine);
var view = new ol.View({
center: ol.proj.fromLonLat([9.25040, 45.54318]),
zoom: 2
});
map.setView(view);
var osm = new ol.layer.Tile({
source: new ol.source.OSM()
});
map.addLayer(osm);
Если я прокомментирую, fullScreen
то на карте не вижу проблем.
Ответы
TomazicM Aug 20 2020 at 02:36
После некоторых экспериментов кажется, что это ошибка OL. Код из вопроса работает в IE11, Edge (новый) и Chrome, но не в Firefox.
К счастью, есть обходной путь. Если полноэкранный элемент управления добавлен в качестве элемента управления картой по умолчанию, он также работает в Firefox.
Управление в этом случае добавляется на карту следующим образом:
var map = new ol.Map({
target: 'map',
controls: ol.control.defaults().extend([new ol.control.FullScreen()])
});