我正在爲Windows Phone和Windows 8編寫一個基於Bing Map的通用應用程序,該應用程序顯示一些非常大的地圖圖層。加速一個非常大的基於Bing Maps多段線圖層
編寫最初的應用程序是沒有問題的(我遵循的教程是在http://blogs.msdn.com/b/rbrundritt/archive/2014/06/24/how-to-make-use-of-maps-in-universal-apps.aspx),但是我現在遇到的主要問題是渲染一個包含數千個折線的圖層,並且有數以萬計的座標。
數據太大 - 在Windows 8.1上,地圖崩潰了應用程序,而在Windows Phone 8.1上,該圖層需要很長時間才能呈現。
根據http://blogs.msdn.com/b/bingdevcenter/archive/2014/04/23/visualize-large-complex-data-with-local-tile-layers-in-bing-maps-windows-store-apps-c.aspx,我應該通過將其轉換爲本地磁貼層來加速它,但文章(MapCruncher)中提到的程序需要PNG作爲輸入。問題是,如何將我的地圖數據轉換爲PNG?我可以將數據作爲shapefile,KML文件或CSV文件。還有另外一種方法我應該這樣做嗎?我知道我可以通過Geoserver來做到這一點,但是我的應用程序必須有脫機支持,因此無法根據需要從Web服務器下載適當的文件。
如果有人有其他方法我可以用大圖層來解決這個速度問題,那麼將不勝感激。我意識到我可以通過四叉樹來加速在Bing地圖中繪製圖層,但是我發現的大部分內容都是理論上的。如果任何人有一些我可以插入的代碼,這將是非常有用的。
我之前解決了這個問題,通過確保我只在地圖上添加多邊形(如果它們實際在地圖上可見)(使用邊界框),並且不添加多邊形的多邊形以注意給定當前縮放級別。只需訂閱地圖的事件即可檢測視圖中的更改,並相應地添加或刪除多段線。 – 2014-09-27 10:00:32
@KrisVandermotten您是否有任何使用此方法的示例代碼? – Peter 2014-09-28 00:37:55
不幸的是,這是一個客戶端的工作,我無法再訪問源代碼。但實際上這很直接。只需找出地圖的哪一部分正在顯示,無論是最初和通過視圖更改時的事件。除去不可見的多段線,並添加多段線。在四叉樹中組織多段線可以提高性能,但我不確定它甚至是必需的。儘管預先計算並緩存邊界框。 – 2014-09-28 09:19:53