Масштабирование до разрешения с использованием Openlayers 5 - PullRequest
0 голосов
/ 11 декабря 2018

Компонент Openlayers ScaleLine имеет способ преобразования из разрешения в масштаб, но как же наоборот?

Наши клиенты выбирают масштаб для каждого слоя, указывая масштаб, в котором слой должен быть виден.Вот почему я должен конвертировать из масштаба в разрешение.

Я пробовал следующее, где ScaleLine показывает «50 м». Ожидаемый результат будет для двух разрешений, которые будут одинаковыми.Вывод:

Expected: 0.5964957884324376
Resolution: 0.013229166680160416

Код

const scale = 50; // 50 meters

const view = this.map.getView();
const center = view.getCenter();
const projection = view.getProjection();
const inchesPrMeter = 39.3700787;
const dpi = 96; // What about ol.has.DEVICE_PIXEL_RATIO ?

const expectedResolution = view.getResolution();
const resolution = scale / (projection.getMetersPerUnit() * inchesPrMeter * dpi);
console.log('Expected:', expectedResolution);
console.log('Resolution:', resolution);

Мне также не нравится жестко заданный DPI.

...