Bing maps SDK Win8.1 — Добавление слоев

Я пытаюсь заставить слои карты работать в моем приложении для Windows 8.1, которое использует Bing Maps SDK. Следуя документации Microsoft, я создал этот код, и, похоже, он не работает. Никаких ошибок не выдается, что делает эту проблему еще более запутанной.

MapTileLayer tileLayer = new MapTileLayer();
tileLayer.TileSource = string.Format("http://mesonet.agron.iastate.edu/cache/tile.py/1.0.0/nexrad-n0q-900913/{{zoomLevel}}/{{x}}/{{y}}.png?{0}", DateTime.Now.ToString());
rMap.TileLayers.Add(tileLayer);

Переменные URI zoomLevel, x и y представляют, куда загрузить плитку. 0 — субдомен (этот код был портирован из Windows Phone 8, где он работает нормально)


person Kevin    schedule 03.10.2014    source источник


Ответы (1)


Windows Phone 8 и Windows 8 — это совсем не то же самое управление, что и для WP8, которое предоставляется здесь, а для Win8 оно предоставляется Microsoft.

В любом случае, вы можете делать то, что хотите, используя следующий код:

    /// <summary>
    /// Invoked when this page is about to be displayed in a Frame.
    /// </summary>
    /// <param name="e">Event data that describes how this page was reached.  The Parameter
    /// property is typically used to configure the page.</param>
    protected override async void OnNavigatedTo(NavigationEventArgs e)
    {
        Bing.Maps.MapTileLayer layer = new Bing.Maps.MapTileLayer();
        layer.GetTileUri += layer_GetTileUri;
        this.map.TileLayers.Add(layer);
    }

    private async void layer_GetTileUri(object sender, Bing.Maps.GetTileUriEventArgs e)
    {
        e.Uri = this.ComposeMyCustomUri(e);
    }

Вы обнаружите, что e — это конкретный объект параметра типа GetTileUriEventArgs, см.:

http://msdn.microsoft.com/en-us/library/jj672952.aspx

person Nicolas Boonaert    schedule 05.10.2014