マップ座標 (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
そのリクエストは、次のパラメータで構成された Web ページの 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コードで自分で計算することを好みます。