使用Bing地图自定义可缩放图像

时间:2012-07-18 19:50:49

标签: c# wpf api bing-maps

我想使用Bing地图WPF控件,我想知道是否可以设置我们自己的“图像源”。 基本上我想使用该控件为我的应用程序加载的各种图像提供深度缩放功能。

我知道谷歌地图可以实现(如下所示:http://blog.mikecouturier.com/2011/07/create-zoomable-images-using-google.html#maps_code_tilesgen) 但我想知道我们可以用Bing地图做类似的事情吗?

P.S。:我更喜欢使用Bing,因为微软提供了一个原生的WPF控件,这是谷歌没有的。

2 个答案:

答案 0 :(得分:3)

要添加自定义地图(或图片)磁贴提供程序,您必须实现TileSource并覆盖其GetUri方法以提供图片磁贴的URI。

有关详细信息,请参阅Adding Tile Overlays to the Map。那里的代码示例并不是那么好,因为他们在代码中做的一些事情最好在XAML中完成,但这是一个起点。

但请注意,即使您不使用Bing地图内容,使用WPF控件也会强制您使用Bing Maps API Key。该控件在Bing Maps服务提供商处验证您的密钥,该服务提供商需要互联网连接。因此,您的图像显示应用程序不会在脱机环境中运行,或者更准确地说,它将运行但在控制区域的中心显示一条丑陋的错误消息。

答案 1 :(得分:2)

你当然可以在Bing Maps中轻松搞定。 Microsoft开发了一个名为MapCruncher的工具,可以将提供的图像切割成具有Bing Maps预期结构的图块。这非常重要,因为虽然Bing Maps和Google共享相同的图块结构,但Bing Maps使用称为quadkey的东西来定义每个图块(意思是图块的z-x-y)。

注意:也可以在Bing地图中加载为Google地图制作的图块。你只需要调整磁贴源。

无论如何,表现得比说得好。

这是微软研究团队使用MapCruncher的一个非常详细的教程:

http://research.microsoft.com/en-us/um/redmond/projects/mapcruncher/tutorial/version3.0docs/index.htm