2017-08-25 7 views
0

私にはわからない問題があります。私は2つのコンテナを持っていますそれぞれの はマップを含みます。私の目的は、それらを印刷することができるようにすることです。 window.print()を使用しましたが、レイアウトに移動するとタイルはロードされません。 レイアウト。何が起こっているのか分かっているなら、教えてください。印刷時にタイルをロードする際の問題

var map1; 
    var map2; 
    $(document).ready(function(){ 
     map1 = L.map('map1', { 
     center: [33.960057, -6.916462], 
     minZoom: 2, 
     zoom: 14, 
     zoomControl: true 
     }); 
     L.tileLayer("https://stamen-tiles-c.a.ssl.fastly.net/terrain-labels/{z}/{x}/{y}.png",{opacity:0.7}).addTo(map1); 
     L.tileLayer("http://c.tile.stamen.com/watercolor/{z}/{x}/{y}.jpg",{opacity:0.7}).addTo(map1); 

     map2 = L.map('map2', { 
     center: [33.960057, -6.916462], 
     minZoom: 2, 
     zoom: 14, 
     zoomControl: true 
     }); 
     L.tileLayer("https://stamen-tiles-c.a.ssl.fastly.net/terrain-labels/{z}/{x}/{y}.png",{opacity:0.7}).addTo(map2); 
     L.tileLayer("http://c.tile.stamen.com/watercolor/{z}/{x}/{y}.jpg",{opacity:0.7}).addTo(map2); 

     map1.on("click",function (e) { 
     var center = map1.getCenter(); 
     map2.flyTo(center); 
     }); 
     window.print(); 


    }); 
html, body{ 
    width: 100% !important; 
    height: 100% !important; 
    padding:0; 
    position: relative; 
    margin: 0px; 
    overflow: hidden; 
    } 
    #map1, #map2{ 
    height : 100%; 
    position: relative; 
    z-index: 500; 
    border-radius: 10px; 
    } 
    @media print { 
    @page { 
    size: landscape; 
    } 

    body *{ 
    -webkit-print-color-adjust: exact !important; 
    color-adjust: exact !important; 
    /*color:unset !important; 
    color: transparent !important;*/ 
    } 

} 
<body> 
    <div class="container" style="height:100%;"> 
     <div class="row" style="height:100%;"> 
     <div id="map1"class="col-xs-6"> 

     </div> 
     <div id="map2"class="col-xs-6"> 

     </div> 
     </div> 
    </div> 
    </body> 
var map1; 
    var map2; 
    $(document).ready(function(){ 
     map1 = L.map('map1', { 
     center: [33.960057, -6.916462], 
     minZoom: 2, 
     zoom: 14, 
     zoomControl: true 
     }); 
     L.tileLayer("https://stamen-tiles-c.a.ssl.fastly.net/terrain-labels/{z}/{x}/{y}.png",{opacity:0.7}).addTo(map1); 
     L.tileLayer("http://c.tile.stamen.com/watercolor/{z}/{x}/{y}.jpg",{opacity:0.7}).addTo(map1); 

     map2 = L.map('map2', { 
     center: [33.960057, -6.916462], 
     minZoom: 2, 
     zoom: 14, 
     zoomControl: true 
     }); 
     L.tileLayer("https://stamen-tiles-c.a.ssl.fastly.net/terrain-labels/{z}/{x}/{y}.png",{opacity:0.7}).addTo(map2); 
     L.tileLayer("http://c.tile.stamen.com/watercolor/{z}/{x}/{y}.jpg",{opacity:0.7}).addTo(map2); 

     map1.on("click",function (e) { 
     var center = map1.getCenter(); 
     map2.flyTo(center); 
     }); 
     window.print(); 


    }); 
​​
<html> 
    <head> 
    <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
    <link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet"> 
    <link href="https://fonts.googleapis.com/css?family=Hind+Siliguri" rel="stylesheet"> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
    <script type="text/javascript" src="http://maps.stamen.com/js/tile.stamen.js?v1.3.0"></script> 
    <link rel="stylesheet" href="bootstrap.css"> 
    <link rel="stylesheet" href="print.css"> 
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
    <link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css" 
    integrity="sha512-07I2e+7D8p6he1SIM+1twR5TIrhUQn9+I6yjqD53JQjFiMf8EtC93ty0/5vJTZGF8aAocvHYNEDJajGdNx1IsQ==" 
    crossorigin=""/> 
    <script src="https://unpkg.com/[email protected]/dist/leaflet.js" 
    integrity="sha512-A7vV8IFfih/D732iSSKi20u/ooOfj/AGehOKq0f4vLT1Zr2Y+RX7C+w8A1gaSasGtRUZpF/NZgzSAu4/Gc41Lg==" 
    crossorigin=""></script> 
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <title></title> 
    </head> 

<body> 
    <div class="container" style="height:100%;"> 
     <div class="row" style="height:100%;"> 
     <div id="map1"class="col-xs-6"> 

     </div> 
     <div id="map2"class="col-xs-6"> 

     </div> 
     </div> 
    </div> 
    </body> 
+0

最初に推測されるのは、単にバックグラウンドイメージ。しかし、この例を調べると、これらは単に普通の画像であることがわかります。マッププラグインに付属しているスタイルシートは、printやsthのために明示的に隠しているかもしれません。そのようなものは、彼らの地図が印刷されることを望んでいないからです...? – CBroe

+0

map1 onclick関数でprintを実行すると動作し、マップ1をクリックして印刷する必要があります。 だから私はあなたが印刷ボタンを追加することをseggust –

+1

はいこれは私がタイルが読み込まれる前に印刷が開始されると思います。 –

答えて

0

postでこれを見た - それは、任意のヘルプのでしょうか? "ChromeとSafariを使用すると、要素にCSSスタイル-webkit-print-color-adjust: exact;を追加して、背景色や画像を強制的に印刷することができます。

+0

あなたの返信ありがとう、このプロパティはすでに使用されていますが、タイルは表示されません。 –

+0

これは役に立ちますか?同じ問題のようです: https://github.com/h5bp/html5-boilerplate/issues/1741 – srattigan

関連する問題