GeoWebCacheでのBBOXと返却画像との関係を見てみた

思い立って、GeoWebCache(EPSG:4326)で、BBOXパラメータに対して返却画像がどういうふうに生成されるのか、調べてみようと思いました。なお画像サイズは256x256で固定です。
結論から言うと、たぶんこんなかんじ。

  1. スケールは、2**zoom の指数関数(Google Maps と同じ)。OpenLayersの仕様ね。
  2. minX,minYを基準にする。
  3. X幅からresolutionを得る。
  4. Y幅はX幅を基に決める(画像サイズが同じならY幅はX幅と同じ値にする)、maxYは無視。
  5. (minY+90)はY幅で割り切れなければならない。+90しているのは南半球を考慮。
  6. ブイグテレコムとは関係ありません。
E -180,-90,180,90 (360,180)
E 0,0,180,90 (180,90)
1 0,-90,180,0 (180,90)
1 0,-90,180,90 (180,180)
2 90,0,135,90 (45,90)
2 90,0,135,45 (45,45)
E 90,22.5,135,45 (45,22.5)
3 112.5,22.5,135,45 (22.5,22.5)
3 112.5,22.5,135,67.5 (22.5,45)
4 112.5,0,135,90 (22.5,90)

1カラム目は、画像IDみたいなもので、同じ数字なら同じ画像が得られたことを示します。Eはエラー発生。
2カラム目はBBOX範囲
3カラム目はBBOXのサイズ

エラーが出たのが、(minY+90)がY幅(:=X幅)で割りきれなかったもの。
ただし、

E -180,-90,180,90 (360,180)

は特殊。Y幅をX幅の値に置き換えたら(360,360)のボックスになるので、解像度が対応できないということでエラーになります。
そのほかの二つ、

E 0,0,180,90 (180,90)
E 90,22.5,135,45 (45,22.5)

について見てみます。
1つ目は (minY+90)=90 で、X幅(180)で割り切れません。
2つ目は (minY+90)=112.5 で X幅(45)で割り切れません。
以上より、多分最初に書いたのであってると思う。