0

スクリプトを使用gdal_retile.pyしてラスターをタイルにカットします(に書き換えられC#ます)。すべて正常に動作しますが、スクリプトを少し異なる方法で動作させたいと思います。私が欲しいのは、最初のレベルのスケールを変更することです。次のパターンを使用して計算する必要があります。

private const double MetersPerInch = 0.0254;
private const double DPI = 96;

private double GetScale(int meters, int pixels)
{
    return meters/pixels/MetersPerInch*DPI;
}

例えば。

サイズのラスターを取得し、4k x 4k pxそれがである場合、次のようになります100 km
scale = 100000 / 4000 / 0.0254 * 96 = ~94488
次に、カウントよりも高い、2の累乗である最初のスケールを見つける必要があります。この場合は1:131072です。そして、それを最初のレベルのスケールとして設定する必要があります。次のレベルのスケールは2の累乗である必要があります[1:262144, 1:524288, 1:1048576, ...]

any1はスクリプトの変更に役立ちますか?私は言語を気にしません(Pythonまたはで行うことができますC#)。

解決策を事前に感謝します!

4

1 に答える 1

0

はい、やりました!

ソースコードは次のとおりです(おそらくsome1は将来必要になるでしょう-注意してください、私は行に変更を加えました370432そして433-変更を元に戻したい場合は、_scaleFactor変数を置き換えてすべての計算2を削除してください): http: //pastebin.com/0qUCVk9J_scaleFactor

于 2012-09-24T14:54:20.277 に答える