Google map распечатать серым цветом на распечатке - PullRequest
0 голосов
/ 03 октября 2018

Я пытаюсь распечатать страницу Google Maps. Когда я печатаю эту страницу, используя Ctrl + P или нажимаю div, не работает в ландшафтном режиме.

Я работаюкод ниже в версии браузера Google Chrome

Google Chrome обновлен до версии 69.0.3497.100 (официальная сборка) (64-разрядная версия)

мой код пока ниже.

<!DOCTYPE html>
<html>

<head>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
  <meta charset="utf-8">
  <title>Circles</title>
  <style type="text/css" media="print">
    @media print {
      img {
        max-width: none !important;
      }
    }
  </style>
</head>

<body style="margin:0;width:800px;height:1000px" onload=initMap()>
  <div class="printdiv" style="border:1px solid red;" onclick="printMap()">Print</div>
  <div id="map" style="width:800px; height:1000px;"></div>
  <script>

    var map;

    var citymap = {
      chicago: {
        center: { lat: 41.878, lng: -87.629 },
        population: 2714856
      },
      newyork: {
        center: { lat: 40.714, lng: -74.005 },
        population: 8405837
      },
      losangeles: {
        center: { lat: 34.052, lng: -118.243 },
        population: 3857799
      },
      vancouver: {
        center: { lat: 49.25, lng: -123.1 },
        population: 603502
      }
    };

    function initMap() {
      // Create the map.
      map = new google.maps.Map(document.getElementById('map'), {
        zoom: 18,
        center: { lat: 37.090, lng: -95.712 },
        mapTypeId: 'terrain'
      });


      for (var city in citymap) {
        // Add the circle for this city to the map.
        var cityCircle = new google.maps.Circle({
          strokeColor: '#FF0000',
          strokeOpacity: 0.8,
          strokeWeight: 2,
          fillColor: '#FF0000',
          fillOpacity: 0.35,
          map: map,
          center: citymap[city].center,
          radius: Math.sqrt(citymap[city].population) * 100
        });
      }

    }

    function printMap() {

      alert("resize new");
      var center = map.getCenter();
      map.setCenter(center);
      google.maps.event.trigger(map, 'resize');
      window.print();
    }

  </script>
  <script async defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBOsQrXRxsQapeKuZ7j2VvK-F-3A3VhGmU">
  </script>
</body>

</html>

Вывод

enter image description here

После нажатия на печать получается серый цвет

enter image description here

1 Ответ

0 голосов
/ 05 декабря 2018

Обходной путь только.Вы можете добавить CSS, чтобы исправить это решение.

#map_canvas div > img {
    position: absolute;
}

map_canvas - это идентификатор, установленный для сопоставления контейнера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...