0

私は MultiScaleImage のソースを読んでいますが、有用なものを見つけるのは非常に難しいことがわかっているため、ここで専門家に相談します。私が知りたい特定の知識は、GetTileLayers メソッドに関するものです。このメソッドが画像タイルを取得するために使用されることは知っています。しかし、このメソッドがどこから呼び出されたのか、パラメーターがどこから来たのか、MultiScaleTileSource クラスをサブクラス化した場合にどのように使用するのかはわかりません。この方法または MSI モデルに関する洞察は素晴らしいものですが、主な質問が 3 つあります。

1. メソッド GetTileLayers をどこから呼び出す必要がありますか?
2. 非ローカル URI から png を描画したい場合、このメソッドをどのように変更すればよいですか?
3. これに役立つ資料はどこにありますか?

4

1 に答える 1

0

カスタム タイル ソースを作成するには、次の例に示すように、メソッドをサブクラス化MultiScaleTileSourceしてオーバーライドします。このメソッドは、サイズがそれぞれ 256x256 ピクセルの 1000*1000 個のタイルで構成される画像を定義します。GetTileLayers

public class MyTileSource : MultiScaleTileSource
{
    public MyTileSource()
        : base(1000 * 256, 1000 * 256, 256, 256, 0)
    {
    }

    protected override void GetTileLayers(
        int tileLevel, int tilePositionX, int tilePositionY,
        IList<object> tileImageLayerSources)
    {
        // create an appropriate URI for tileLevel, tilePositionX and tilePositionY
        // and add it to the tileImageLayerSources collection

        var uri = new Uri(...);
        tileImageLayerSources.Add(uri);
    }
}

ここで、MyTileSource クラスのインスタンスを MultiScaleImage コントロールに割り当てます。

MultiScaleImage msImage = ...
msImage.Source = new MyTileSource();
于 2014-06-10T12:13:59.363 に答える