Subversion Repositories Projects

Compare Revisions

Ignore whitespace Rev 2286 → Rev 2287

/MKLiveView/v1.0/GMap.NET.Core/GMap.NET.MapProviders/Etc/MapBenderWMSProvider.cs
0,0 → 1,92

namespace GMap.NET.MapProviders
{
using System;
using GMap.NET.Projections;
using System.Globalization;
 
/// <summary>
/// MapBender provider, WMS demo http://www.mapbender.org/
/// </summary>
public class MapBenderWMSProvider : GMapProvider
{
public static readonly MapBenderWMSProvider Instance;
 
MapBenderWMSProvider()
{
}
 
static MapBenderWMSProvider()
{
Instance = new MapBenderWMSProvider();
}
 
#region GMapProvider Members
 
readonly Guid id = new Guid("45742F8D-B552-4CAF-89AE-F20951BBDB2B");
public override Guid Id
{
get
{
return id;
}
}
 
readonly string name = "MapBender, WMS demo";
public override string Name
{
get
{
return name;
}
}
 
GMapProvider[] overlays;
public override GMapProvider[] Overlays
{
get
{
if(overlays == null)
{
overlays = new GMapProvider[] { this };
}
return overlays;
}
}
 
public override PureProjection Projection
{
get
{
return MercatorProjection.Instance;
}
}
 
public override PureImage GetTileImage(GPoint pos, int zoom)
{
string url = MakeTileImageUrl(pos, zoom, LanguageStr);
 
return GetTileImageUsingHttp(url);
}
 
#endregion
 
string MakeTileImageUrl(GPoint pos, int zoom, string language)
{
var px1 = Projection.FromTileXYToPixel(pos);
var px2 = px1;
 
px1.Offset(0, Projection.TileSize.Height);
PointLatLng p1 = Projection.FromPixelToLatLng(px1, zoom);
 
px2.Offset(Projection.TileSize.Width, 0);
PointLatLng p2 = Projection.FromPixelToLatLng(px2, zoom);
 
var ret = string.Format(CultureInfo.InvariantCulture, UrlFormat, p1.Lng, p1.Lat, p2.Lng, p2.Lat, Projection.TileSize.Width, Projection.TileSize.Height);
 
return ret;
}
 
static readonly string UrlFormat = "http://mapbender.wheregroup.com/cgi-bin/mapserv?map=/data/umn/osm/osm_basic.map&VERSION=1.1.1&REQUEST=GetMap&SERVICE=WMS&LAYERS=OSM_Basic&styles=&bbox={0},{1},{2},{3}&width={4}&height={5}&srs=EPSG:4326&format=image/png";
}
}