使用NetMap製作離線地圖標註軟件

地圖標註軟件一般是在地圖上標註一些應用點,通過對應用點的查看、分析等來輔助用戶進行決策。如下就是一個典型的地圖標註軟件:


通用的離線地圖標註軟件一直是我想做的一個東西,它可以滿足一些非專業GIS用戶對地圖標註的產品需求,但是由於工作時間的安排的原因一直沒有啓動。通過本篇博客持續更新,將完成一個較通用的離線地圖標註軟件。同時此離線地圖標註系統是基於個人開源地圖平臺NetMap來做的,也方便軟件開發人員對NetMap的應用有一個瞭解,更好的利用NetMap來完成一些地圖應用。(NetMap是一個輕量的地圖平臺,基於.net,主要應用於桌面GIS和GIS服務。這裏是我開源的一個版本http://yun.baidu.com/share/link?shareid=4057114910&uk=3204739722。)

標註軟件一般的功能爲:

1.離線地圖

2.標註點添加、移動、查看、屬性修改和刪除

3.基於標註點的查詢和分析

開發設計:

1.框架

 複用前面做的NetMap插件式GIS應用軟件框架NetMapDesk

2.地圖工具

 標註要素集構建工具:屬性構建時,需要定義屬性的字段名字、別名、屬性值類型。

 label開關、label屬性設置:label屬性可以設置標註的文字註記,如Name字段作爲文字註記。label可以調整相對於點位的offsetx,offsety。

 信息查看工具:查看標註點的信息,鼠標移動捕捉標註點,進行信息展示;點擊標註點彈出標註點詳情窗口。

 信息管理工具:選擇標註點,進行信息編輯、刪除、移動

 數據導入工具:批量導入、數據版本更新

3.查詢

 查詢面板提供標註點列表,右鍵點擊標註點可以打開標註點操作菜單:定位、詳細信息、刪除。

 查詢工具:名字模糊查詢、目標點周圍標註點查詢。

開發

瓦片圖層的構建

使用天地圖經緯度地圖爲地理底圖,這也是整個地圖的座標參考。

        private void InitMapFromWeb(MapDocument document)
        {
            //瓦片矢量背景
            ITileCache<byte[]> tileCache = new FileCache(@"D:\tile\tiandituvecbk", "png");
            ITileProvider provider = new OfficialTiandituTileProvider(TiandituTileType.VecBack, TiandituTileServiceChanel.t3, tileCache);

            ITileSchema schema = new TiandituTileSchema();
            ITileSource source = new TileSource(provider, schema);
            ILayer layer = new TileLayer(source);
            layer.Name = "Tile";
            document.AddLayer(layer);
            //瓦片矢量註記
            ITileCache<byte[]> tileCacheAno = new FileCache(@"D:\tile\tiandituvecano", "png");
            ITileProvider provider1 = new OfficialTiandituTileProvider(TiandituTileType.VecAno, TiandituTileServiceChanel.t3, tileCacheAno);
            ITileSchema schema1 = new TiandituTileSchema();
            ITileSource source1 = new TileSource(provider1, schema1);
            ILayer layer1 = new TileLayer(source1);
            layer1.Name = "Tile Ano";
            document.AddLayer(layer1);
        }
使用了瓦片緩存加上天地圖web瓦片的方式,當地圖視圖刷新時,會首先去查詢瓦片緩存,也就是D:\tile\tiandituvecbak和D:\tile\tiandituvecano目錄下查找天地圖經緯度地圖的背景和中文註記瓦片,未找到時就會通過web進行下載,下載的瓦片會存儲到對應的目錄下,下載通道是t3通道。這樣標註系統在發佈時,可以不用帶上地圖瓦片,用戶在使用過程中進行瓦片的積累。當用戶出於離線的環境中時,如外出時,由於瓦片是由本地緩存提供,用戶就仍然可以看見常用範圍內的地圖。

定義標註點圖層

標註點圖層的定義分爲2個部分:要素集定義、符號定義。


兼於.NET軟件太難繞過的安全性問題,本人已停止這方面的開發。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章