GeoWebCacheでのBBOXと返却画像との関係を見てみた
思い立って、GeoWebCache(EPSG:4326)で、BBOXパラメータに対して返却画像がどういうふうに生成されるのか、調べてみようと思いました。なお画像サイズは256x256で固定です。
結論から言うと、たぶんこんなかんじ。
- スケールは、2**zoom の指数関数(Google Maps と同じ)。OpenLayersの仕様ね。
- minX,minYを基準にする。
- X幅からresolutionを得る。
- Y幅はX幅を基に決める(画像サイズが同じならY幅はX幅と同じ値にする)、maxYは無視。
- (minY+90)はY幅で割り切れなければならない。+90しているのは南半球を考慮。
- ブイグテレコムとは関係ありません。
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)で割り切れません。
以上より、多分最初に書いたのであってると思う。