addControl ให้ปัญหากับ ol.control.FullScreen
Aug 18 2020
ฉันกำลังทดลองการปรับแต่งบางอย่างของ OpenLayers เมื่อฉันพยายามใช้map.addControl
กับol.control.FullScreen
ฉันเห็นข้อความแสดงข้อผิดพลาดนี้:
Uncaught TypeError: t.element.setMap ไม่ใช่ฟังก์ชัน
นี้ cames 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()])
});