addControl da un problema con ol.control.FullScreen
Aug 18 2020
Estoy experimentando con algunas personalizaciones de OpenLayers, cuando trato de usarlo map.addControl
, ol.control.FullScreen
veo este mensaje de error:
TypeError no detectado: t.element.setMap no es una función
Este mensaje proviene de PluggableMap.js
.
Hago esto:
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);
Si comento fullScreen
puedo ver sin problemas el mapa.
Respuestas
TomazicM Aug 20 2020 at 02:36
Con algo de experimentación, parece que se trata de un error de OL. El código de la pregunta funciona en IE11, Edge (nuevo) y Chrome, pero no en Firefox.
Afortunadamente hay una solución. Si se agrega el control de pantalla completa como control de mapa predeterminado, también funciona en Firefox.
En este caso, el control se agrega al mapa de la siguiente manera:
var map = new ol.Map({
target: 'map',
controls: ol.control.defaults().extend([new ol.control.FullScreen()])
});