using System; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Ink; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using ESRI.ArcGIS.Client; using ESRI.ArcGIS.Client.Geometry; namespace sdhbgis.Dal { public class GoogleMapLayerImage : TiledMapServiceLayer { private const double cornerCoordinate = 20037508.3427892; public override void Initialize() { //this.Opacity = 0.5; this.FullExtent = new ESRI.ArcGIS.Client.Geometry.Envelope(-20037508.342787,-20037508.342787,20037508.342787,20037508.342787);//(-180,-85.0511287798066,180,85.0511287798066) { SpatialReference = new ESRI.ArcGIS.Client.Geometry.SpatialReference(102100); }; this.SpatialReference = new ESRI.ArcGIS.Client.Geometry.SpatialReference(102100); //this.InitialExtent = this.FullExtent; this.TileInfo = new TileInfo() { Height = 256, Width = 256, Origin = new ESRI.ArcGIS.Client.Geometry.MapPoint(-20037508.342787,20037508.342787)//Origin = new ESRI.ArcGIS.Geometry.MapPoint(-180,90) { SpatialReference = new ESRI.ArcGIS.Client.Geometry.SpatialReference(102100) }, Lods = new Lod[20] }; double resolution = 156543.033928; for (int i = 0; i < TileInfo.Lods.Length; i++) { TileInfo.Lods[i] = new Lod() { Resolution = resolution }; resolution /= 2; } base.Initialize(); //this.FullExtent = new ESRI.ArcGIS.Client.Geometry.Envelope(-20037508.3427892,-20037508.3427892,20037508.3427892,20037508.3427892) //{ // SpatialReference = new SpatialReference(102100) //}; //// This layer's spatial reference //this.SpatialReference = new SpatialReference(102100); //// Set up tile @R_490_4045@ion. Each tile is 256x256px,19 levels. //this.TileInfo = new TileInfo() //{ // Height = 256, // Width = 256, // Origin = new MapPoint(-cornerCoordinate,cornerCoordinate) { SpatialReference = new ESRI.ArcGIS.Client.Geometry.SpatialReference(102100) }, // Lods = new Lod[19] //}; //// Set the resolutions for each level. Each level is half the resolution of the prevIoUs one. //double resolution = cornerCoordinate * 2 / 256; //for (int i = 0; i < TileInfo.Lods.Length; i++) //{ // TileInfo.Lods[i] = new Lod() { Resolution = resolution }; // resolution /= 2; //} //// Call base initialize to raise the initialization event //base.Initialize(); } private string setType="2"; public string SetType { get { return setType; } set { setType = value; } } public override string GetTileUrl(int level,int row,int col) { // int num = (col + (2 * row)) % 4; // string str = "&s="; // string str2 = "galileo"; // int length = ((col * 3) + row) % 8; // str = str + str2.Substring(0,length); // if (row >= 0x2710) // { // } // string str3 = "http://khm" + num.ToString() + ".google.com/kh=49&x="; // return (str3 + col.ToString() + "&y=" + row.ToString() + "&z=" + level.ToString() + str); // string baseUrl = "http://mt2.google.cn/vt/lyrs=m@167000000&hl=zh-CN&gl=cn&s=galil&x=";//矢量图 string baseUrl = "http://mt2.google.cn/vt/lyrs=s@169000000,m@169000000&hl=zh-CN&gl=cn&s=galil&x=";//卫星图 // string cbaseUrl = "http://mt2.google.cn/vt/lyrs=m@167000000,m@169000000&hl=zh-CN&gl=cn&x=0&y=0&z=0&s=galil";//市区图 //if (SetType == "1") //{ // baseUrl = "http://mt2.google.cn/vt/lyrs=m@167000000&hl=zh-CN&gl=cn&s=galil&x=";//矢量 //} //else if (SetType == "2") //{ // baseUrl = "http://mt2.google.cn/vt/lyrs=s@167000000&hl=zh-CN&gl=cn&s=galil&x=";//卫星 //} //else //{ // baseUrl = "http://mt2.google.cn/vt/lyrs=t@128&hl=zh-CN&gl=cn&s=galil&x=";//地形 //} string url = baseUrl + col.ToString() + "&y=" + row.ToString() + "&z=" + level.ToString() + ""; // string url2 = "http://api.tiles.virtualearth.net/api/GetMap.ashx?c=" + row.ToString() + "," + col.ToString() + "&z=" + level.ToString() + "&b=h,mkt.en-US&z=4&token={token}"; //string url3 = "http://mt{0}.google.cn/vt/lyrs=s@88&gl=cn&x="; // string ur4 = url3 + col.ToString() + "&y=" + row.ToString() + "&z=" + level.ToString() + ""; return url; } } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。