Silverlightで地図にTileを追加したりしてみる
のSilverlight版です。(次はXamarin.Androidだと思った?ねぇ思った?)
すでにオワコンのSilverlight情報なんて誰得(多分私の得にもならない)ですがまぁネタということと、TMSにかかわるきっかけでもあったので書いておかないとね!
使うのはMicrosoft.Maps.MapControl.Map
です。
とりあえず表示するところまで準備します。
懐かしい。そして余りのヌルヌル動作にびっくり。(試せる人は試してみてほしい) これだけ軽快に動くのになくなっちゃうのはもったいないですね。
Open Street Mapを追加する
他の例と同じように追加してみます。
public class CustomTileSource : TileSource { public override Uri GetUri(int x, int y, int zoomLevel) => new Uri($"http://tile.openstreetmap.org/{zoomLevel}/{x}/{y}.png"); }
TileSource
を継承してGetUri
をオーバーライドします。
あとはこれを追加してあげるだけ。
var mode = Map.Mode as MercatorMode; var mapLayer = mode.Content as MapTileLayer; mapLayer.TileSources.Add(new CustomTileSource());
Map
はインスタンス名です。
実行すると
できました。
既定の地図を変更する
変更するというか既定の地図を削除するです。
var mode = Map.Mode as MercatorMode; var mapLayer = mode.Content as MapTileLayer; mapLayer.TileSources.Clear(); mapLayer.TileSources.Add(new CustomTileSource());
TileSources
に既定の地図がすでに入っているので、追加前に消せばOK。
自分で描いたタイルの追加
カスタムソースのタイルって書いていたけど、意味が違う気がするので・・。
んでやり方は知りません。
できないんじゃない?
続く・・・