使用html2canvas导出arcgis地图为图片
本以为很简单的一个需求
却卡了很长时间
因此记录一下
先说遇到的问题
如果使用代码移动和缩放地图
使用html2canvas导出无异常
但是手动拖拽地图
导出会发生偏移
看浏览器的dom元素对比一下
它的偏移主要发生在两个位置
一个是底图
另一个是svg标签
导致偏移问题的属性是
transform:translate()
这个属性
底图使用top和left替代以后完美解决底图的偏移问题
但是svg依旧不行
再次观察svg标签
发现把transform属性放入g标签中即可
代码如下
$("#daochu").on("click", function () {
let transformLay = $("#map_layer1").css('transform');//这个是底图图层
let mapGcDiv = $("#map_gc").css('transform');//这个是svg的id
let layArray = transformLay.replace(")", "").split(",");
let svgArray = mapGcDiv.replace(")", "").split(",");
// 若layArray[4] 或者layArray[5]不为0,导出图片则会发生偏移,要进行属性替换操作
if (parseInt(layArray[4]) !== 0 || parseInt(layArray[5]) !== 0 || parseInt(svgArray[4]) !== 0 || parseInt(svgArray[5]) !== 0) {
// 底图,乘以2处理底图偏移
$("#map_layer1").css({
'transform': 'tra