silverlight   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ArcGIS Silverlight API访问天地图服务大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

天地图服务是经过缓存的数据,所以需要继承的是TiledMapserviceLayer;继承的这个图层,需要收集到以下几个信息: n  Tiling scheR_573_11845@e Origin n  切图的范围,也就是FullExtent n  SpatialReference n  TileInfo,包括切图的大小,级数,以及每级的Resolution n  最后就是重写GetTileUrl方法 当地图控件的范围

天地图服务是经过缓存的数据,所以需要继承的是TiledMapserviceLayer;继承的这个图层,需要收集到以下几个信息:

n  Tiling scheR_573_11845@e Origin

n  切图的范围,也就是FullExtent

n  SpatialReference

n  TileInfo,包括切图的大小,级数,以及每级的Resolution

n  最后就是重写GetTileUrl方法

当地图控件的范围改变时,能够获取到当前范围的信息,那么只要把左上角和右下角之间的Tile全部按顺序@L_607_5@出来就行了。

 

    天地图图层(TDTTileLyr)重载TiledMapserviceLayer

public class TDTTileLyr : TiledMapserviceLayer

    {

        public override void Initialize()

        {

 

            this.FullExtent = new

            ESRI.ArcGIs.CLIENt.Geometry.Envelope(-180,-90,180,90);

            {

                SpatialReference = new ESRI.ArcGIs.CLIENt.Geometry.SpatialReference(4326);

            };

            this.SpatialReference = new ESRI.ArcGIs.CLIENt.Geometry.SpatialReference(4326);

            this.TileInfo = new TileInfo()

            {

                Height = 256,

                Width = 256,

                Origin = new ESRI.ArcGIs.CLIENt.Geometry.MapPoint(-180,90)

                {

                    SpatialReference = new ESRI.ArcGIs.CLIENt.Geometry.SpatialReference(4326)

                },

                lods = new Lod[16]

            };

            TileInfo.Lods[0] = new Lod() { Resolution = 0.703125 };

            TileInfo.Lods[1] = new Lod() { Resolution = 0.3515625 };

            TileInfo.Lods[2] = new Lod() { Resolution = 0.17578125 };

            TileInfo.Lods[3] = new Lod() { Resolution = 0.087890625 };

            TileInfo.Lods[4] = new Lod() { Resolution = 0.0439453125 };

            TileInfo.Lods[5] = new Lod() { Resolution = 0.02197265625 };

            TileInfo.Lods[6] = new Lod() { Resolution = 0.010986328125 };

            TileInfo.Lods[7] = new Lod() { Resolution = 0.0054931640625 };

            TileInfo.Lods[8] = new Lod() { Resolution = 0.00274658203124999 };

            TileInfo.Lods[9] = new Lod() { Resolution = 0.001373291015625 };

            TileInfo.Lods[10] = new Lod() { Resolution = 0.0006866455078125 };

            TileInfo.Lods[11] = new Lod() { Resolution = 0.000343322753906249 };

            TileInfo.Lods[12] = new Lod() { Resolution = 0.000171661376953125 };

            TileInfo.Lods[13] = new Lod() { Resolution = 0.0000858306884765626 };

            TileInfo.Lods[14] = new Lod() { Resolution = 0.0000429153442382813 };

            TileInfo.Lods[15] = new Lod() { Resolution = 0.0000214576721191406 };

 

            base.Initialize();

        }

        private String _url = "";

        public override String GetTileUrl(int level,int row,int col)

        {

            String url = _url + "&X=" + col.ToString() + "&Y=" + row.ToString() + "&L=" + level.ToString();

            return url;

        }

        public String Url

        {

            get

            {

                return _url;

            }

            set

            {

                _url = value;

            }

        }

    }

 

访问天地图影像切片服务

 TDTTileLyr p = new TDTTileLyr();

 p.Url = "http://tile0.tianditu.com/DataServer?T=sbsm0210";

 p.ID = "YINGXIANG";

 p.Visible = true;

 mainMap.Layers.Add(p);

ArcGIS Silverlight API访问天地图服务

 

访问天地图矢量切片服务

TDTTileLyr p = new TDTTileLyr();

 p.Url = " http://tile0.tianditu.com/DataServer?T=A0512_EMap";

 p.ID = "SHILIANG";

 p.Visible = true;

 mainMap.Layers.Add(p);

ArcGIS Silverlight API访问天地图服务

 

 

影像服务、注记服务叠加@L_607_5@

//注记

 TDTTileLyr p = new TDTTileLyr();

 p.Url = "http://tile0.tianditu.com/DataServer?T=A0610_ImgAnno";

 p.ID = "ZJ";               

 p.Visible = true;

 //影像服务

 TDTTileLyr p1 = new TDTTileLyr();

 p1.Url = "http://tile0.tianditu.com/DataServer?T=sbsm0210";

 p1.ID = "YINGXIANG";

 p1.Visible = true;

 mainMap.Layers.Add(p1);

 mainMap.Layers.Add(p);

ArcGIS Silverlight API访问天地图服务

 

 

天地图服务资源

http://www.tianditu.com/guide/resource.jsp

天地图影像服务地址

http://tile0.tianditu.com/DataServer?T=sbsm0210 (1-10级)

http://tile0.tianditu.com/DataServer?T=e11 (11级)

http://tile0.tianditu.com/DataServer?T=e12 (12级)

http://tile0.tianditu.com/DataServer?T=e13 (13级)

http://tile0.tianditu.com/DataServer?T=eastdawnall (14级)

http://tile0.tianditu.com/DataServer?T=sbsm1518 (15-18级)

初始范围:111.9,27.85,114.25,28.67

天地图矢量地图服务地址

http://tile0.tianditu.com/DataServer?T=A0512_EMap (1-10级)

http://tile0.tianditu.com/DataServer?T=B0627_EMap1112 (11-12级)

http://tile0.tianditu.com/DataServer?T=siwei0608 (13-18级)

 

天地图影像注记服务地址

http://tile0.tianditu.com/DataServer?T=A0610_ImgAnno中文地名注记)

http://tile0.tianditu.com/DataServer?T=A0104_ImgAnnoE(英文地名注记)

http://tile0.tianditu.com/DataServer?T=siweiAnno68 (注记)

 

天地图矢量注记服务地址

http://tile0.tianditu.com/DataServer?T=AB0512_Anno中文地名注记)

http://tile0.tianditu.com/DataServer?T=AB0106_AnnoE (英文地名注记)

大佬总结

以上是大佬教程为你收集整理的ArcGIS Silverlight API访问天地图服务全部内容,希望文章能够帮你解决ArcGIS Silverlight API访问天地图服务所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。