addControl ol.control.FullScreen ile ilgili bir sorun veriyor

Aug 18 2020

Ben kullanmaya çalıştığınızda, openlayers bazı özelleştirmeleri deneme olduğum map.addControlile ol.control.FullScreenben bu hata mesajını görebilirsiniz:

Yakalanmamış TypeError: t.element.setMap bir işlev değil

Bu mesaj geliyor PluggableMap.js.

Bunu yapıyorum:

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);

Yorum fullScreenyaparsam, haritadaki problemleri görebilirim.

Yanıtlar

TomazicM Aug 20 2020 at 02:36

Bazı deneylerle, bu bir OL hatası gibi görünüyor. Sorudaki kod IE11, Edge (yeni) ve Chrome'da çalışır, ancak Firefox'ta çalışmaz.

Neyse ki bir çözüm var. Tam ekran kontrolü varsayılan harita kontrolü olarak eklenirse, Firefox'ta da çalışır.

Kontrol bu durumda haritaya şu şekilde eklenir:

var map = new ol.Map({
  target: 'map',
  controls: ol.control.defaults().extend([new ol.control.FullScreen()])
});