Ruby on rails 使用google maps javascript api的热图未显示在my pdf usign“中;wkhtmltopdf";。我试着在“上”给窗口“U状态”;“已加载瓷砖”;事件 var图、热图; var热点=[]; 函数initMap(){ $.ajax({ 键入:“GET”, url:“/show_heat_map”, 数据类型:“json”, 数据:{}, 成功:功能(数据、状态、xhr){ $。每个(数据[“位置]),功能(索引,项目){ 如果(index==0){//得到热图的中心点 map=new google.maps.map(document.getElementById('map'){ 缩放:10, 中心:{ 纬度:项目[“纬度”], 液化天然气:项目[“经度”] }, mapTypeId:'路线图'//路线图,卫星,混合,地形 }); } var lat=项目[“纬度”]; var lng=项目[“经度”]; 如果(纬度!=null&&lng!=null){ heatpoints.push(新的google.maps.LatLng(lat,lng));//所有的热点 } }); 控制台日志(“热点为”+热点); heatmap=新建google.maps.visualization.HeatmapLayer({ 数据:热点, 地图:地图 }); }, 错误:函数(错误){ 控制台日志(“错误”); } }); }

Ruby on rails 使用google maps javascript api的热图未显示在my pdf usign“中;wkhtmltopdf";。我试着在“上”给窗口“U状态”;“已加载瓷砖”;事件 var图、热图; var热点=[]; 函数initMap(){ $.ajax({ 键入:“GET”, url:“/show_heat_map”, 数据类型:“json”, 数据:{}, 成功:功能(数据、状态、xhr){ $。每个(数据[“位置]),功能(索引,项目){ 如果(index==0){//得到热图的中心点 map=new google.maps.map(document.getElementById('map'){ 缩放:10, 中心:{ 纬度:项目[“纬度”], 液化天然气:项目[“经度”] }, mapTypeId:'路线图'//路线图,卫星,混合,地形 }); } var lat=项目[“纬度”]; var lng=项目[“经度”]; 如果(纬度!=null&&lng!=null){ heatpoints.push(新的google.maps.LatLng(lat,lng));//所有的热点 } }); 控制台日志(“热点为”+热点); heatmap=新建google.maps.visualization.HeatmapLayer({ 数据:热点, 地图:地图 }); }, 错误:函数(错误){ 控制台日志(“错误”); } }); },ruby-on-rails,pdf-generation,wkhtmltopdf,Ruby On Rails,Pdf Generation,Wkhtmltopdf,呈现pdf时会调用initMap。但是它没有到达地图加载。如果这不起作用,有没有一种方法我可以用任何其他的宝石,比如虾,来做同样的事情。我觉得PDF非常简单 在这段代码中,我看不到您正在设置window.status='tilesloadded'。我希望这种情况会发生在success回调的底部。我在initmap函数中这样做,比如-google.maps.event.addListenerOnce(map,'tilesloaded',function(){window.status='done_

呈现pdf时会调用initMap。但是它没有到达地图加载。如果这不起作用,有没有一种方法我可以用任何其他的宝石,比如虾,来做同样的事情。我觉得PDF非常简单

在这段代码中,我看不到您正在设置
window.status='tilesloadded'
。我希望这种情况会发生在
success
回调的底部。我在initmap函数中这样做,比如-google.maps.event.addListenerOnce(map,'tilesloaded',function(){window.status='done_with_heatmap';})@Unixmonkey-wkhtmltopdf是否确实可以显示地图内容?因为我看到它现在不支持。我知道有很多地图库它有问题,但我听说一些(可能是旧版本)可以工作。这可能是因为
wkhtmltopdf
使用了相当于非常旧的Chrome版本的东西,它不支持很多更新的CSS和JS功能。以前从未听说过。看起来很酷。
<div id="map">
</div>

<script>
    var map, heatmap;
    var heatpoints = [];

    function initMap(){

        $.ajax({
            type: 'GET',
            url: '/show_heat_map',
            dataType: 'json',
            data: {},
            success: function(data, status, xhr){

                $.each(data["locations"], function(index, item){
                    if (index == 0) { //To get the center point of heat map
                        map = new google.maps.Map(document.getElementById('map'), {
                        zoom: 10,
                        center: {
                            lat: item["latitude"],
                            lng: item["longitude"]
                        }, 
                        mapTypeId: 'roadmap' //roadmap, satellite, hybrid, terrain
                    }); 
                    }
                    var lat = item["latitude"];
                    var lng = item["longitude"];
                    if (lat != null && lng != null) {
                        heatpoints.push(new google.maps.LatLng(lat, lng)); //all the heatpoints
                    }
                });
                console.log("HEAT POINTS IS "+heatpoints);
                heatmap = new google.maps.visualization.HeatmapLayer({
                    data: heatpoints,
                    map: map
                });
            },
            error: function(error){
                console.log("Error");
            }
        });


    }

</script>
<%= javascript_include_tag 'https://maps.googleapis.com/maps/api/js?key='+Rails.application.secrets.google_maps_api_key+'&libraries=visualization&callback=initMap' %>