gpt4 book ai didi

css - 图像缺少图 block 和 svg

转载 作者:行者123 更新时间:2023-11-28 07:58:35 25 4
gpt4 key购买 nike

我正在使用 Html2Canvas 和传单。当我向左、向右、向上或向下平移 map 然后导出时,我得到一张缺少图 block 的图像。我的叠加层也不再存在。但是,如果我不平移,我就会得到叠加层。这是丢失的瓷砖的图片。 enter image description here

有谁知道如何解决这个问题吗?

这是我的代码

//CSS
/* Map */
#map {
height: 440px;
}
//HTML
<div id="map"></div>
<div id="exportDiv">
<button id="btnClickHere" type="button">Click Me!</button>
</div>
//Javascript
var tilesReady;

$(document).ready(function () {
buildMap();

$("#btnClickHere").on("click", function () {
exportMap();
});
});
function exportMap() {
//get transform value
html2canvas($("#map")[0], {
useCORS: true,
background: "#E8F0F6",
onrendered: function (canvas) {
var a = document.createElement('a');
a.download = name;
a.href = canvas.toDataURL('image/png');
document.body.appendChild(a);
a.click();
},
width: 800,
height: 500
});
}
function buildMap() {
tilesReady = false;
map = L.map('map', {
center: [28.418749, -81.581211],
zoom: 12
});
var data = [{
"coords": [28.3710, -81.5500],
"time": 1
}, {
"coords": [28.4186, -81.5811],
"time": 2
}, {
"coords": [28.3570, -81.5561],
"time": 3
}];
var layers = L.tileLayer('http://{s}.mqcdn.com/tiles/1.0.0/map/{z}/{x}/{y}.png', {
attribution: "Map: Tiles Courtesy of MapQuest (OpenStreetMap, CC-BY-SA)",
subdomains: ["otile1", "otile2", "otile3", "otile4"],
maxZoom: 18,
minZoom: 2
}).addTo(map);
/* Initialize the SVG layer */
map._initPathRoot();
/* We simply pick up the SVG from the map object */
var svg = d3.select("#map").select("svg"),
g = svg.append("g");
/* Add a LatLng object to each item in the dataset */
data.forEach(function (d) {
d.LatLng = new L.LatLng(d.coords[0],
d.coords[1]);
});
var feature = g.selectAll("circle")
.data(data)
.enter().append("circle")
.style("stroke", "black")
.style("opacity", '.6')
.style("fill", "red")
.attr("r", 20);
map.on("viewreset", update);
update();
function update() {
feature.attr("transform",
function (d) {
return "translate(" + map.latLngToLayerPoint(d.LatLng).x + "," + map.latLngToLayerPoint(d.LatLng).y + ")";
});
}
}

最佳答案

我认为您需要等到所有图 block 都加载到图 block 层上,然后才能开始捕获过程。见

http://leafletjs.com/reference.html#tilelayer-load

使用 layer.on('load', callback) 附加事件

关于css - 图像缺少图 block 和 svg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29952374/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com