Я работаю над сайтом, где я могу настроить карту, и они экспортируют ее как изображение высокой четкости, чтобы я мог распечатать ее.
Я сгенерировал настраиваемую карту с помощью mapboxgl API.
const initMap = () => {
const mapElement = document.getElementById('mapid');
if (mapElement) {
mapboxgl.accessToken = mapElement.dataset.mapboxApiKey;
map = new mapboxgl.Map({
container: 'mapid',
style: 'mapbox://styles/ma-v/cjzv3hkp30svs1cp5xeexv54g',
center: [5.380000, 43.300000],
zoom: 11.5
});
let frame = document.querySelector('#mapid');
frame.insertAdjacentHTML('beforeend', '<div class="map-title"><div class="title-map"></div><div class="info-track"></div><div>')
}
Пользователь может настроить карту (перемещать локализацию, масштабирование и изменять стиль слоя в основном).Как только пользователь хочет напечатать свою карту, я генерирую статическое изображение mapbox Url со всей информацией о персонализации пользователя (currentZoom, currentCenter, styleLayer) и применяю к нему размеры 914px x 1280px(максимальный размер возможен с mapbox).
Проблема заключается в том, что отображаемое изображение покрывает гораздо большую область, чем карта DOM (см. Примеры ссылок ниже).Действительно, оба имеют один и тот же центр, один и тот же масштаб, но изображение URL в два раза превосходит изображение в пикселях. Dom image Url image
Мне бы хотелось сохранить тот же масштаб увеличения (чтобы карта отображалась одинаково), но иметь больший размеризображение в пикселях, поэтому я могу напечатать его в хорошем качестве.Я пробовал несколько способов, но всегда сталкивался с этой же проблемой.
Большое спасибо за вашу помощь.Ура