Мне нужно рассчитать масштаб с учетом ограничивающей рамки в координатах карты (EPSG:900913) и ширины/высоты изображения.
Это потому, что я реализую очень простой сервер WMS, но в определенные моменты мне нужно знать масштаб изображения.
Простым запросом будет:
wms.exe?LAYERS=all&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&FORMAT=image%2Fjpeg&SRS=EPSG%3A900913&BBOX=-7810029.800979,-2298920.0623849,-7809724.0528659,-2298614.3142718&WIDTH=256&HEIGHT=256
этот запрос исходит от компонента openlayer на веб-странице, настроенной со следующими параметрами:
var optionsGmap = {
projection: new OpenLayers.Projection("EPSG:900913"),
units: "m",
sphericalMercator: true,
numZoomLevels: 16,
maxExtent: new OpenLayers.Bounds(-20037508.34, -20037508.34, 20037508.34, 20037508.34),
scales : [110936068.185464,55468034.0927321,27734017.0463661,13867008.523183,6933504.26159152,
3466752.13079576,1733376.06539788,866688.03269894,433344.01634947,216672.008174735,108336.004087367,54168.0020436837,27084.0010218419,
13542.0005109209,6771.00025546046,3385.50012773023],
maxResolution: "auto" };
есть формула для расчета этого? У меня есть доступ к postgres+posgis в бэкенде, но я предпочитаю выполнять вычисления самостоятельно в коде C.