您的位置:首页 > 编程语言 > Go语言

最新silverlight 调用google影像地图包含矢量标注

2013-05-22 15:57 676 查看
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 information. 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;

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: