CustomMapTileDataSource未渲染任何图像
本文关键字:任何 图像 CustomMapTileDataSource | 更新日期: 2023-09-27 18:29:59
我在Windows Phone 8.1上使用Bing地图,尝试在地图上渲染GIF图像。
我希望能够将它们添加为互动程序。
编辑:我使用了来自Microsoft的以下链接作为基本示例:http://msdn.microsoft.com/en-us/library/windows/apps/xaml/dn632728.aspx
这是我用来渲染图像的代码。没有任何中断,我没有看到任何错误,但图像没有显示。如果我将图像添加为map控件的子项,我可以看到该图像,因此我得出结论,这与DataSource本身有关。
任何关于为什么不渲染图像的想法都将非常有用。
// item is a IRandomAccessStream
MainMap.AddImage(item);
// the following methods/events are in another class
// imageData is a global IRandomAccessStream
// _map is my Map object
public void AddImage(IRandomAccessStream image, double x, double y)
{
imageData = image;
X = x;
Y = y;
CustomMapTileDataSource customSource = new CustomMapTileDataSource();
customSource.BitmapRequested += customSource_BitmapRequested;
var customTileSource = new MapTileSource(customSource);
customTileSource.Visible = true;
customTileSource.ZIndex = 10;
customTileSource.TilePixelSize = 256;
_map.TileSources.Add(customTileSource);
private async void customSource_BitmapRequested(CustomMapTileDataSource sender, MapTileBitmapRequestedEventArgs args)
{
var deferral = args.Request.GetDeferral();
args.Request.PixelData = await GetImageData();
deferral.Complete();
}
private async Task<IRandomAccessStreamReference> GetImageData()
{
return RandomAccessStreamReference.CreateFromStream(imageData);
}
看起来您有一个始终使用的流,但从未将位置设置为0。想知道是否可能在第一个瓦片请求之后,如果所有额外的瓦片都没有得到任何数据。
看看我使用CustomMapTileDataSource类组合的这个代码示例:https://code.msdn.microsoft.com/Adding-Opacity-and-WMS-cf6773f1
第二个链接:https://rbrundritt.wordpress.com/2015/05/06/adding-opacity-and-wms-support-to-tile-layers-in-wp8-1-maps/
如果你注释掉了改变我的代码示例中像素不透明度的for循环,它应该正是你想要做的。