Отсканированная страница отображается только в Microsoft Edge - PullRequest
0 голосов
/ 13 марта 2020

У меня есть страница MapBox, которую я пытаюсь сохранить как изображение, и у меня она отлично работает в Microsoft Edge и Inte rnet Explorer, но я не получаю элементы, отображаемые в Chrome или Firefox ??? Когда я запускаю его в режиме отладки для Firefox, я вижу, что элементы заполняются, и страница действительно отображается правильно, но если я запускаю ее без пошагового выполнения кода, она все равно оказывается пустой. Нет ошибок или предупреждений в консоли для Chrome или Firefox ??? Любые идеи? Кажется, это может быть какая-то скрытая проблема безопасности?

function ShowMap() {
var OpenWindow = window.open('ExportMap.html', '_blank', 'width=1500,height=1500,resizable=1');
var imgMap = map.getCanvas().toDataURL('image/png', 1.0);
OpenWindow.document.getElementById('imgExportMap').src = imgMap;
var objLegend = document.getElementById('legend');
var divLeg = OpenWindow.document.getElementById('divLegend');
divLeg.innerHTML = objLegend.innerHTML;
}

<body>
<div id="divRow" class="divRow">
<div id="divCarrierInfo">
<button id="btnSave" class="btnMapAction" onclick="SavePageAsImg()" type="button">Save As</button>
<button id="btnPrint" class="btnMapAction" onclick="window.print()" type="button">Print</button</div>
<div id="divTitle">
<textarea id="taTitle">"Replace this text with your map title"</textarea>
</div>
</div>
<div id="divMapElements">
<div id="divLegend"></div>
<div id="divMap">
<img id="imgExportMap" src="" alt="None" title="Test">
</div>
</div>
<img id="result-image" src="" alt="None" title="ExportMap">
</body>

1 Ответ

0 голосов
/ 20 марта 2020

Вероятно, это связано с параметром map : options.preserveDrawingBuffer. Если установлено значение true, холст карты можно экспортировать в PNG с помощью map.getCanvas().toDataURL(). Это false по умолчанию в качестве оптимизации производительности.

При этом я бы рекомендовал изучить Stati c API изображений Mapbox , как упомянуто в моем комментарии к сообщению. Этот API-интерфейс обеспечивает предполагаемый способ создания статического изображения карты c и, вероятно, будет более производительным, чем экспорт PDF объекта холста карты. Вы отметили, что заинтересованы в том, чтобы включить сгенерированный пользователем заголовок карты - это может быть включено в Stati c Images API. Как отмечено в необязательных параметрах для получения карты stati c из конечной точки стиля , параметр addLayer позволяет добавить слой стиля Mapbox к карте. Для текста вам нужно добавить слой symbol и установить для свойства макета text-field значение заголовка, предоставленное пользователем.

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