我需要计算地图坐标中给定边界框的比例(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 代码中进行计算。