我使用Openlayers 3来做到这一点。由于您遇到安全问题,至少我尝试过(不能使用html2canvas)(在文档中说您无法呈现iframe)。这是我的代码,希望对你有所帮助。
HTML
的Javascript
功能drawMap (){
变种地图=新ol.Map({
层:[新ol.layer.Tile({源:新ol.sourc e.OSM()})],
目标: '地图',
控制:ol.control.defaults({
attributionOptions:/ ** @type {olx.control.AttributionOptions} * /({
可折叠:假
})
}),
视图:新ol.View({
中心:ol.proj.transform([geografic.longitud,geografic。纬度], 'EPSG:4326', 'EPSG:900913'),
变焦:8
})
});
var exportPNGElement = document.getElementById('export-png');
exportPNGElement.addEventListener( '点击',函数(E){
map.once( 'postcompose',函数(事件){
变种帆布= event.context .canvas;
window.open(canvas.toDataURL( '图像/ PNG'));
});
map.renderSync();
},false);
}