【发布时间】:2018-08-17 21:10:57
【问题描述】:
我正在尝试将包含路线(使用折线)的谷歌地图导出到图像,但结果该线没有出现。通过一些 css 转换,它与谷歌地图 api v3.31 配合得很好,但由于这个版本在 8 月之后不再可用,我需要使用 v3.33。在这种情况下,折线会在打印的图像中消失。然而,其他组件确实出现在结果中。
我可以在以下示例中重现该问题:
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
zoom: 7,
center: new google.maps.LatLng(53.140665, 8.805315),
mapTypeId: 'roadmap'
});
var routeCoordinates = [
{lat: 52.593534, lng: 7.327996},
{lat: 52.701129, lng: 7.692394},
{lat: 52.459662, lng: 8.264844},
{lat: 52.697619, lng: 8.705006},
{lat: 52.297608, lng: 9.225077}
];
var routePath = new google.maps.Polyline({
map: map,
path: routeCoordinates,
geodesic: true,
strokeColor: '#FF0000',
strokeOpacity: 1.0,
strokeWeight: 2
});
//console.log('routePath=' + routePath.getPath().getArray());
routePath.setMap(map);
}
在 html2canvas 中使用以下选项:
var options = {
useCORS: true,
allowTaint: false
};
并应用以下转换:
var mapNodes = '.gm-style>div:first>div:first>div:last>div';
var transformer = $(mapNodes).css('transform');
var comp = transformer.split(',');
var mapLeft = parseFloat(comp[4]);
var mapTop = parseFloat(comp[5]);
$(mapNodes).css({
'transform': 'none',
'left': mapLeft,
'top': mapTop
});
测试(其中包括):
- html2canvas:html2canvas 1.0.0-alpha.12
- 浏览器和版本:Firefox Quantum 60.0.2(64 位)
- 操作系统:Win 7
- Google maps api:v3.33(v3.32 也有同样的问题)
任何提示可能是什么问题?
谢谢!
【问题讨论】:
标签: google-maps-api-3 html2canvas