2012-07-18 93 views
2

我想使用Bing地圖WPF控件,並且想知道是否可以設置我們自己的「圖像源」。 基本上我想使用該控件爲我的應用程序加載的各種圖像提供深度縮放功能。使用Bing地圖的自定義可縮放圖像

我知道這可能與谷歌地圖(如圖所示:http://blog.mikecouturier.com/2011/07/create-zoomable-images-using-google.html#maps_code_tilesgen) 但我想知道我們可以做與Bing地圖類似的東西嗎?

P.S .:我寧願使用Bing,因爲微軟提供了原生的WPF控件,而Google卻沒有。

回答

3

爲了添加自定義地圖(或圖片)磁貼提供程序,您必須實施TileSource並覆蓋它的GetUri方法以提供圖像磁貼的URI。

查看Adding Tile Overlays to the Map瞭解詳情。代碼示例沒有那麼好,因爲它們在代碼中執行的某些操作可能更好地在XAML中完成,但它是一個起點。

但請注意,即使您未使用Bing地圖內容,使用WPF控件也會強制您使用Bing Maps API Key。該控件在Bing地圖服務提供商處驗證您的密鑰,這需要互聯網連接。因此,您的圖像顯示應用程序不會在脫機環境中運行,或者更準確地說,它將運行,但在控制區域的中心顯示一個醜陋的錯誤消息。

+0

感謝您的建議。 這意味着雖然,默認的bing地圖將仍然存在,我只是添加一個自定義覆蓋它呢? 是不是有辦法完全取消冰毒地圖並使用我自己的自定義圖像? – Mathieu 2012-07-19 11:56:45

+0

有一種方法。只需將[Map.Mode](http://msdn.microsoft.com/zh-cn/library/microsoft.maps.mapcontrol.wpf.mapcore.mode)屬性設置爲[MercatorMode](http://msdn.microsoft.com/zh-cn/ .COM/EN-US /庫/ microsoft.maps.mapcontrol.wpf.mercatormode)。示例代碼位於[MercatorMode](http://msdn.microsoft.com/en-us/library/microsoft.maps.mapcontrol.wpf.mercatormode)中。 – Clemens 2012-07-19 13:26:27

2

您當然可以在Bing地圖中輕鬆完成任務。微軟開發了一款名爲MapCruncher的工具,可將提供的圖片切分爲具有Bing地圖所期望的結構的圖塊。這非常重要,因爲儘管Bing Maps和Google共享相同的tile結構,Bing Maps使用稱爲quadkey的東西來定義每個tile(意思是tile的z-x-y)。

注意:也可以在Bing地圖中加載爲Google地圖製作的拼貼。你只需要調整瓷磚來源。

無論如何,比所說的要好。

這裏是一個非常詳細的教程由微軟研究團隊使用MapCruncher:

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

+0

謝謝。 所以我必須使用這個工具來處理我的圖像,然後使用Clemens建議的解決方案來實現它? – Mathieu 2012-07-19 11:59:22

+0

我只是看了一下這個工具。問題是MapCruncher需要引用來映射我的圖像與bing地圖。這不完全是我想要的,因爲我只是想放棄bing地圖並使用我自己的圖像。 沒有辦法將我的圖像處理爲地圖控件可以理解的拼貼格式嗎? – Mathieu 2012-07-19 12:44:33

+0

其實MapCruncher不需要Bing地圖。它只是在文件系統上呈現圖像。然後,在您的地圖控件(可能由Bing地圖,Leaflet或其他人提供支持)上,您可以創建一個指向這些圖片的圖塊層。 – psousa 2012-07-19 13:41:55