PIE SDK加載自定義服務數據

1.功能簡介

  自定義服務數據,將符合要求的矢量數據和柵格數據集等數據以服務的方式發佈,將數據存儲在某服務器中,在有網絡的狀況下能夠根據URL就能夠訪問,比較常見的服務數據類型的有ArcGIS Server,天地圖在線地圖,百度在線地圖,高德在線地圖等,若是沒有他們大型的服務器能夠發佈就能夠本身自定義發佈並調用。瀏覽器

2. 功能實現說明

2.1. 實現思路及原理說明

第一步服務器

設置自定義服務URL(即服務連接地址)網絡

第二步ide

根據URL獲得自定義圖層tiledLayer測試

第三步url

設置瓦片信息並設置爲自定義圖層tiledLayer的瓦片信息spa

第四步code

將tiledLayer添加到地圖控件中並設置顯示範圍orm

2.2 . 核心接口與方法

接口/類視頻

方法

說明

PIE.Carto.CustomerOnlineTiledLayer

SetTileInfo

設置瓦片信息

Name

圖層名稱

 

 

 

 

PIE.Carto.TileInfo

Format

瓦片圖像格式

DPI

每英寸點數

CompressionQuality

壓縮的質量

LODInfos

LOD信息

SpatialReference

空間參考

InitialExtent

初始化範圍

FullExtent

全圖範圍

TileWidth

瓦片寬度

TileHeight

瓦片高度

 

PIE.Carto.LODInfo

Level

瓦片級別

Resolution

瓦片分辨率

Scale

瓦片比例尺

2.3. 示例代碼

項目路徑

百度雲盤地址下/PIE示例程序/03.數據加載/14. 打開自定義服務數據

視頻路徑

百度雲盤地址下/PIE視頻教程/03.數據加載/14.打開自定義服務數據.avi

示例代碼

 1         /// <summary>
 2         /// 自定義服務影像圖加載
 3         /// </summary>
 4         /// <param name="sender"></param>
 5         /// <param name="e"></param>
 6         private void toolStripButton1_CustomerServer_Click(object sender, EventArgs e)
 7         {
 8              string strUrl = "http://imageservices.cresda.com/seis/v3/wmts/tile/1027/131?service=WMTS&request=GetTile&version=1.0.0&layer=&style=&tilematrixSet=&format=image%2Fpng&transparent=false&width=256&height=256&token=guest&zIndex=0&maxNativeZoom=10&srs=EPSG%3A4326&tilematrix=[$Level]&tilerow=[$Row]&tilecol=[$Column]";
 9             //根據url字符串獲得自定義在線地圖圖層
10             CustomerOnlineTiledLayer tiledLayer = new CustomerOnlineTiledLayer(strUrl);
11             tiledLayer.Name = "自定義服務影像";
12 //設置瓦片信息
13             TileInfo tileInfo = new TileInfo();
14             tileInfo.Format = TileImageFormat.Png;
15             tileInfo.DPI = 96;
16             tileInfo.CompressionQuality = 75;
17             tileInfo.LODInfos = new List<LODInfo>();
18             double dResolution = 1.40625;
19             double dScale = 5.90995197141668E8;
20             for (int i = 0; i < 16; ++i)//顯示16級數據
21             {
22                 LODInfo lodInfo = new LODInfo();
23                 lodInfo.Level = i;
24                 lodInfo.Resolution = dResolution / Math.Pow(2.0, i);
25                 lodInfo.Scale = dScale / Math.Pow(2.0, i); ;
26                 tileInfo.LODInfos.Add(lodInfo);
27             }
28             //設置瓦片開始位置
29             ISpatialReference spatialReference = SpatialReferenceFactory.CreateSpatialReference(4326);
30             tileInfo.SpatialReference = spatialReference;
31             IPoint point = new PIE.Geometry.Point();
32             point.PutCoords(-180, 90);//開始點切片
33             (point as IGeometry).SpatialReference = spatialReference;
34             tileInfo.Origin = point;
35 
36             //設置瓦片顯示範圍
37             IEnvelope envelope = new Envelope();
38             envelope.PutCoords(-180, -90, 180, 90);
39             tileInfo.InitialExtent = envelope;
40             tileInfo.FullExtent = envelope;
41             tileInfo.TileWidth = 256;
42             tileInfo.TileHeight = 256;
43             tiledLayer.SetTileInfo(tileInfo);
44 
45             //加載影像並設置地圖顯示範圍
46             mapControlMain.FocusMap.AddLayer(tiledLayer);
47             IEnvelope envelop = new Envelope();
48             envelop.PutCoords(60, 10, 160, 60);
49             mapControlMain.ActiveView.Extent = envelop;          mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
50         }
View Code

2.4 . 示例截圖

 

註明:

一、若是想加載自定義註記圖(效果如上圖所示),能夠將代碼的URL修改成:

  stringstrUrl= "http://t0.tianditu.gov.cn/cva_c/wmts?service=WMTS&request=GetTile&version=1.0.0&layer=cva&style=&tilematrixSet=c&format=tiles&transparent=false&width=256&height=256&zIndex=200&tk=f2b11a204a2f84fc62bc5af15e483b48&token=guest&srs=EPSG%3A4326&tilematrix=[$Level]&tilerow=[$Row]&tilecol=[$Column]";

上述連接用瀏覽器打開報錯爲: 400 Bad Request,緣由是,爲了用加載一個URL加載全球的服務數據將連接在請求服務信息中的返回瓦片比例尺級別和行列號用了模糊查找,若是爲了測試能夠將連接中的[$Level]、[$Row] 和[$Column] 換成你要瀏覽的參數便可,例如level爲10,row爲150, column爲858,下圖左爲註記圖,右爲影像圖,

                                                               

二、本文提供的連接爲資源衛星中心發佈的服務,示例中URL的token爲guest,若是你們想用本身的token,能夠本身註冊一個(token爲用戶獲取令牌)。

相關文章
相關標籤/搜索