public static ITileSource CreateTileSource(string urlString, string layerName, string CRS) { var schema = new GlobalSphericalMercator("png", YAxis.OSM, 0, 21, null); var layers = new List <string>(); layers.Add(layerName); var styles = new List <string>(); if (!urlString.ToLower().Contains("&version=")) { urlString = urlString + "&version=1.3.0"; } if (!urlString.ToLower().Contains("&crs=")) { urlString = urlString + "&CRS=" + CRS; } if (!urlString.ToLower().Contains("&format=")) { urlString = urlString + "&format=png"; } if (!urlString.ToLower().Contains("&transparent=")) { urlString = urlString + "&transparent=true"; } var request = new WmscRequest(new Uri(urlString), schema, layers, new string[0].ToList()); var provider = new HttpTileProvider(request); return(new TileSource(provider, schema)); }
private static ITileSource ParseTileSetNode(XElement xTileSet, OnlineResource onlineResource) { var styles = xTileSet.Elements("Styles").Select(xStyle => xStyle.Value).ToList(); var layers = xTileSet.Elements("Layers").Select(xLayer => xLayer.Value).ToList(); var schema = ToTileSchema(xTileSet, CreateDefaultName(layers)); var wmscRequest = new WmscRequest(new Uri(onlineResource.Href), schema, layers, styles); return new WmscTileSource(schema, new HttpTileProvider(wmscRequest)); }
private void SafeRequest(WmscRequest request) { _url = ReflectionHelper.ReflectBaseUri(request).ToString(); _layers = new List <string>(ReflectionHelper.ReflectListItems(request, "_layers")); _styles = new List <string>(ReflectionHelper.ReflectListItems(request, "_styles")); _customParameters = new Dictionary <string, string>(ReflectionHelper.ReflectDictionary(request, "_customParameters")); _version = ReflectionHelper.Reflect <string>(request, "_version"); }
private static IRequest GetRequestBuilder(ITileSchema schema) { const string url = "http://geoserver.nl/tiles/tilecache.aspx?"; var parameters = new Dictionary<string, string>(); var request = new WmscRequest(new Uri(url), schema, new List<string>(new[] {"world_GM"}), new List<string>(), parameters); return request; }
public void WmscRequest_Version130() { var request = new WmscRequest(new Uri("http://testserver.com"), new SphericalMercatorWorldSchema(), new List <string>(new string[] { "Layer One" }), null, null, "1.3.0"); var ti = new TileInfo(); var uri = request.GetUri(ti); StringAssert.Contains("VERSION=1.3.0", uri.ToString()); StringAssert.Contains("CRS=", uri.ToString()); }
private static IRequest GetRequestBuilder(ITileSchema schema) { const string url = "http://geoserver.nl/tiles/tilecache.aspx?"; var parameters = new Dictionary <string, string>(); var request = new WmscRequest(new Uri(url), schema, new List <string>(new[] { "world_GM" }), new List <string>(), parameters); return(request); }
public ITileSource GetTileSource() { var styles = layerConfig.Style.Split(','); var layers = layerConfig.WMSLayer.Split(',').ToList(); var schema = generateSchema(); var wmscRequest = new WmscRequest(new Uri(capabilities.Capability.Request.GetMap.DCPType.First().HTTP.Get.OnlineResource.href), schema, layers, styles, layerConfig.DimensionsDict, capabilities.version); return(new TileSource(new WebTileProvider(wmscRequest, null, new TileFetcher(layerConfig.Username, layerConfig.Password).fetchTile), schema)); }
public void WmscRequest_Version130() { var request = new WmscRequest(new Uri("http://testserver.com"), new GlobalSphericalMercator(YAxis.TMS), new[] { "Layer One" }, null, null, "1.3.0"); var ti = new TileInfo { Index = new TileIndex(0, 0, 0) }; var uri = request.GetUri(ti); StringAssert.Contains("VERSION=1.3.0", uri.ToString()); StringAssert.Contains("CRS=", uri.ToString()); }
internal static Uri ReflectBaseUri(WmscRequest request) { var fi = typeof(WmscRequest).GetField("_baseUrl", BindingFlags.Instance | BindingFlags.NonPublic); if (fi == null) { throw new ArgumentException("Request does not have a private field '_baseUri'", "request"); } return((Uri)fi.GetValue(request)); }
internal static T Reflect <T>(WmscRequest request, string field) { var fi = typeof(WmscRequest).GetField(field, BindingFlags.Instance | BindingFlags.NonPublic); if (fi == null) { throw new ArgumentException("Request does not have a private field '" + field + "'", "request"); } return((T)fi.GetValue(request)); }
public void WmscRequest_NoVersion() { var request = new WmscRequest(new Uri("http://testserver.com"), new GlobalSphericalMercator(YAxis.TMS), new [] { "Layer One" }); var ti = new TileInfo { Index = new TileIndex(0, 0, "0") }; var uri = request.GetUri(ti); StringAssert.DoesNotContain("VERSION=", uri.ToString()); StringAssert.Contains("SRS=", uri.ToString()); }
public static ITileSource Create() { const string url = "http://geodata.nationaalgeoregister.nl/omgevingswarmte/wms?SERVICE=WMS&VERSION=1.1.1"; // You need to know the schema. This can be a problem. Usally it is GlobalSphericalMercator var schema = new WkstNederlandSchema { Format = "image/png" }; var request = new WmscRequest(new Uri(url), schema, new[] { "koudegeslotenwkobuurt" }.ToList(), new string[0].ToList()); var provider = new HttpTileProvider(request); return(new TileSource(provider, schema)); }
public static ITileSource Create() { const string url = "http://geodata.nationaalgeoregister.nl/ahn25m/wms?service=wms"; // You need to know the schema. This can be a problem. Usally it is GlobalSphericalMercator var schema = new WkstNederlandSchema { Format = "image/png" }; var request = new WmscRequest(new Uri(url), schema, new[] { "ahn25m" }.ToList(), new string[0].ToList()); var provider = new HttpTileProvider(request); return(new TileSource(provider, schema)); }
public GeodanWorldWmsTileSource() { var schema = new SphericalMercatorInvertedWorldSchema(); schema.Srs = "EPSG:900913"; const string url = "http://geoserver.nl/world/mapserv.cgi?map=world/world.map&VERSION=1.1.1"; var request = new WmscRequest(new Uri(url), schema, new List <string>(new [] { "world" }), new List <string>(), new Dictionary <string, string>()); Provider = new WebTileProvider(request); Schema = new SphericalMercatorInvertedWorldSchema(); }
public static WmsTileSource Create(WmsServerInfo serverInfo) { var href = serverInfo.OnlineResource; var layers = new List <string> { serverInfo.Layer }; var schema = //new GlobalMercator("image/png"); new UnProjected(); var request = new WmscRequest(new Uri(href), schema, layers, new List <string>(), // styles new Dictionary <string, string>(), // custom parameters serverInfo.Version); var provider = new WebTileProvider(request); return(new WmsTileSource(provider, schema)); }
/// <summary> /// Method called prior to any tile access /// </summary> public void Initialize() { if (_initialized) { return; } _initialized = true; var schema = RestoreSchema(); var request = new WmscRequest(new Uri(_url), schema, _layers, _styles, _customParameters, _version); ITileProvider provider = new HttpTileProvider(request); TileSource = (WmscTileSource)Activator.CreateInstance(typeof(WmscTileSource), BindingFlags.NonPublic, schema, provider); TileCache = CreateTileCache(); _tileFetcher = new TileFetcher(provider, BruTileLayerPlugin.Settings.MemoryCacheMinimum, BruTileLayerPlugin.Settings.MemoryCacheMaximum, TileCache); }
private bool GetMap(string url, string version, string layer, int minLevel, int maxLevel, string imageType, out ITileSource tileSource) { if (string.IsNullOrEmpty(imageType)) { tileSource = null; return(false); } var schema = new GlobalSphericalMercator(imageType, YAxis.OSM, minLevel, maxLevel); schema.Validate(); var request = new WmscRequest(new Uri(url), schema, layers: new[] { layer }.ToList(), styles: new[] { "" }.ToList(), version: version); var provider = new HttpTileProvider(request); tileSource = new TileSource(provider, schema); return(tileSource != null); }
private bool GetMap(string url, string version, string layer, GeographicBounds bounds, string imageType, out ITileSource tileSource) { if (string.IsNullOrEmpty(imageType)) { tileSource = null; return(false); } Extent extent = new Extent(bounds.MinimumCoordinates.Longitude, bounds.MinimumCoordinates.Latitude, bounds.MaximumCoordinates.Longitude, bounds.MaximumCoordinates.Latitude); var schema = new GlobalSphericalMercator(imageType, YAxis.OSM, null, null, extent); schema.Validate(); var request = new WmscRequest(new Uri(url), schema, layers: new[] { layer }.ToList(), styles: new[] { "" }.ToList(), version: version); var provider = new HttpTileProvider(request); tileSource = new TileSource(provider, schema); return(tileSource != null); }
private void SafeRequest(WmscRequest request) { _url = ReflectionHelper.ReflectBaseUri(request).ToString(); _layers = new List<string>(ReflectionHelper.ReflectListItems(request, "_layers")); _styles = new List<string>(ReflectionHelper.ReflectListItems(request, "_styles")); _customParameters = new Dictionary<string, string>(ReflectionHelper.ReflectDictionary(request, "_customParameters")); _version = ReflectionHelper.Reflect<string>(request, "_version"); }
/// <summary> /// Method called prior to any tile access /// </summary> public void Initialize() { if (_initialized) return; _initialized = true; var schema = RestoreSchema(); var request = new WmscRequest(new Uri(_url), schema, _layers, _styles, _customParameters, _version); ITileProvider provider = new HttpTileProvider(request); TileSource = (WmscTileSource)Activator.CreateInstance(typeof(WmscTileSource), BindingFlags.NonPublic, schema, provider); TileCache = CreateTileCache(); _tileFetcher = new TileFetcher(provider, BruTileLayerPlugin.Settings.MemoryCacheMinimum, BruTileLayerPlugin.Settings.MemoryCacheMaximum, TileCache); }