BingMapsSilverlight访问其他地图
2011-02-20 21:33
295 查看
1.Google地图
[/code]
[/code]
public class GoogleTile : TileSource { // Fields private const string charPhysical = "t"; private const string charPhysicalHybrid = "p"; private const string charSatellite = "s"; private const string charSatelliteHybrid = "y"; private const string charStreet = "m"; private const string charStreetOverlay = "h"; private const string charStreetWaterOverlay = "r"; private GoogleMapModes MapMode = GoogleMapModes.SatelliteHybrid; private int server_rr = 0; private const string TilePathBase = "http://mt{0}.google.com/vt/lyrs={1}&z={2}&x={3}&y={4}"; // Methods public override Uri GetUri(int tilePositionX, int tilePositionY, int tileLevel) { int zoom = tileLevel; string uriString = string.Empty; this.server_rr = (this.server_rr + 1) % 4; switch (this.MapMode) { case GoogleMapModes.Street: uriString = XYZUrl("http://mt{0}.google.com/vt/lyrs={1}&z={2}&x={3}&y={4}", this.server_rr, "m", zoom, tilePositionX, tilePositionY); break; case GoogleMapModes.Satellite: uriString = XYZUrl("http://mt{0}.google.com/vt/lyrs={1}&z={2}&x={3}&y={4}", this.server_rr, "s", zoom, tilePositionX, tilePositionY); break; case GoogleMapModes.SatelliteHybrid: uriString = XYZUrl("http://mt{0}.google.com/vt/lyrs={1}&z={2}&x={3}&y={4}", this.server_rr, "y", zoom, tilePositionX, tilePositionY); break; case GoogleMapModes.Physical: uriString = XYZUrl("http://mt{0}.google.com/vt/lyrs={1}&z={2}&x={3}&y={4}", this.server_rr, "t", zoom, tilePositionX, tilePositionY); break; case GoogleMapModes.PhysicalHybrid: uriString = XYZUrl("http://mt{0}.google.com/vt/lyrs={1}&z={2}&x={3}&y={4}", this.server_rr, "p", zoom, tilePositionX, tilePositionY); break; case GoogleMapModes.StreetOverlay: uriString = XYZUrl("http://mt{0}.google.com/vt/lyrs={1}&z={2}&x={3}&y={4}", this.server_rr, "h", zoom, tilePositionX, tilePositionY); break; case GoogleMapModes.StreetWaterOverlay: uriString = XYZUrl("http://mt{0}.google.com/vt/lyrs={1}&z={2}&x={3}&y={4}", this.server_rr, "r", zoom, tilePositionX, tilePositionY); break; } return new Uri(uriString); } private static string XYZUrl(string url, int server, string mapmode, int zoom, int tilePositionX, int tilePositionY) { url = string.Format(url, new object[] { server, mapmode, zoom, tilePositionX, tilePositionY }); return url; } }
[code]public enum GoogleMapModes
{
Street,
Satellite,
SatelliteHybrid,
Physical,
PhysicalHybrid,
StreetOverlay,
StreetWaterOverlay
} |
2.OpenStreetMap
public class OpenStreetMapTileSource : TileSource { // Methods public OpenStreetMapTileSource() : base("http://tile.openstreetmap.org/{2}/{0}/{1}.png") { } public override Uri GetUri(int x, int y, int zoomLevel) { return new Uri(string.Format(base.UriFormat, x, y, zoomLevel)); } }
[/code]
相关文章推荐
- 学习使用Bing Maps Silverlight Control(五):离线使用和自定义地图模式
- 【Bing Map学习系列】(2)——如何通过Bing Maps Silverlight Control显示地图
- 【Silverlight】Bing Maps学习系列(二):通过Bing Maps Silverlight Control如何显示地图(转)
- 【Silverlight】Bing Maps学习系列(二):通过Bing Maps Silverlight Control如何显示地图
- 学习使用Bing Maps Silverlight Control(三):向地图添加标记
- 【Silverlight】Bing Maps学习系列(二):通过Bing Maps Silverlight Control如何显示地图
- 【Silverlight】Bing Maps学习系列(二):通过Bing Maps Silverlight Control如何显示地图
- 【Bing Map学习系列】(3)——如何通过Bing Maps Silverlight Control控制地图
- 【Silverlight】Bing Maps学习系列(二):通过Bing Maps Silverlight Control如何显示地图
- 学习使用Bing Maps Silverlight Control(六):自定义“鹰眼”地图
- Bing Maps & Bing Maps Silverlight Control中访问WMS笔记
- GIS理论(墨卡托投影、地理坐标系、地面分辨率、地图比例尺、Bing Maps Tile System)【转载】
- 访问地图http://clustrmaps.com/zh/admin/action.php
- Silverlight学习笔记十七BingMap(三)之地图的地区标识
- 基于silverlight+wcf+bingmaps的水文信息检索系统之对实时雨水情数据库(讨论稿)的认识
- 访问地图http://clustrmaps.com/zh/admin/action.php
- SharePoint2010整合Silverlight 4应用——Bing地图控件
- GIS理论(墨卡托投影、地理坐标系、地面分辨率、地图比例尺、Bing Maps Tile System)
- GIS理论(墨卡托投影、地理坐标系、地面分辨率、地图比例尺、Bing Maps Tile System)【转载】
- Bing Maps SDK for Windows Store apps 1.基本使用-在地图上显示自己的位置