private void WmtsClick(object sender, RoutedEventArgs e) { MapControl.Map.Layers.Clear(); //var webRequest = (HttpWebRequest)WebRequest.Create("http://geodata.nationaalgeoregister.nl/wmts/top10nl?VERSION=1.0.0&request=GetCapabilities"); var webRequest = (HttpWebRequest)WebRequest.Create("http://services.arcgisonline.com/arcgis/rest/services/Demographics/USA_Population_Density/MapServer/WMTS/"); var webResponse = webRequest.GetSyncResponse(10000); if (webResponse == null) { throw (new WebException("An error occurred while fetching tile", null)); } using (var responseStream = webResponse.GetResponseStream()) { var tileSources = WmtsParser.Parse(responseStream); //var natura2000 = tileSources.First(t => t.Name.ToLower().Contains("natura2000")); //MapControl.Map.Layers.Add(new TileLayer(natura2000) { Name = "Natura 2000" }); foreach (var layer in tileSources) { MapControl.Map.Layers.Add(new TileLayer(layer) { Name = layer.Name }); } MapControl.ZoomToFullEnvelope(); MapControl.Refresh(); LayerList.Initialize(MapControl.Map.Layers); } }
public MainWindow() { InitializeComponent(); foreach (var knownTileSource in Enum.GetValues(typeof(KnownTileSource)).Cast <KnownTileSource>()) { var httpTileSource = KnownTileSources.Create(knownTileSource); Layers.Children.Add(ToRadioButton(knownTileSource.ToString(), () => httpTileSource)); } var httpClient = new HttpClient(); var stream = httpClient.GetStreamAsync("https://bertt.github.io/wmts/capabilities/michelin.xml").Result; var michelinTileSource = WmtsParser.Parse(stream).First(); Layers.Children.Add(ToRadioButton("Michelin Map", () => michelinTileSource)); Layers.Children.Add(ToRadioButton("Google Map", () => CreateGoogleTileSource("http://mt{s}.google.com/vt/lyrs=m@130&hl=en&x={x}&y={y}&z={z}"))); Layers.Children.Add(ToRadioButton("Google Terrain", () => CreateGoogleTileSource("http://mt{s}.google.com/vt/lyrs=t@125,r@130&hl=en&x={x}&y={y}&z={z}"))); Layers.Children.Add(ToRadioButton("WMS called through tile schema", TileSourceForWmsSample.Create)); Layers.Children.Add(ToRadioButton("Here Maps", () => new HttpTileSource(new GlobalSphericalMercator(0, 18), "https://{s}.base.maps.cit.api.here.com/maptile/2.1/maptile/newest/normal.day/{z}/{x}/{y}/256/png8?app_id=xWVIueSv6JL0aJ5xqTxb&app_code=djPZyynKsbTjIUDOBcHZ2g", new[] { "1", "2", "3", "4" }, name: "Here Maps Source"))); Layers.Children.Add(ToRadioButton("LM topowebb", LantMaterietTopowebbTileSourceTest.Create)); }
private async Task <TileSource[]> GetTileSourcesFromCapabilities(Uri capabilitiesUri) { var stream = await GetStream(capabilitiesUri); var sources = WmtsParser.Parse(stream).Cast <TileSource>(); return(sources.ToArray()); }
public static ITileSource Create() { var httpClient = new HttpClient(); var stream = httpClient.GetStreamAsync("https://bertt.github.io/wmts/capabilities/michelin.xml").Result; var michelinTileSource = WmtsParser.Parse(stream).First(); return(michelinTileSource); }
public static HttpTileSource CreateTileSource() { using (var httpClient = new HttpClient()) using (var response = httpClient.GetStreamAsync("https://geoservices.buergernetz.bz.it/mapproxy/service/ows?SERVICE=WMTS&REQUEST=GetCapabilities").Result) { var tileSources = WmtsParser.Parse(response); return(tileSources.First(t => ((WmtsTileSchema)t.Schema).Layer == "P_BZ_OF_2014_2015_2017" && t.Schema.Srs == "EPSG:25832")); } }
private static ITileSource CreateTDTTileSource() { //本地WmtsParser ITileSource tileSource; using (var stream = System.IO.File.OpenRead(Path.Combine("Resources", "wmtsc3.xml"))) { tileSource = WmtsParser.Parse(stream).First(); } return(tileSource); }
public void TestNoTitlePresentInWmtsCapabilitiesLayer() { // arrange using (var stream = File.OpenRead(Path.Combine(Paths.AssemblyDirectory, "Resources", "Wmts", "wmts-capabilities-opencache-statkart-no.xml"))) { // act var tileSources = WmtsParser.Parse(stream); // assert Assert.AreEqual(319, tileSources.Count()); } }
public void TestParsingWmtsCapabilities() { // arrange using (var stream = File.OpenRead(Path.Combine(Paths.AssemblyDirectory, "Resources", "Wmts", "wmts-capabilties-restful-wien.xml"))) { // act var tileSources = WmtsParser.Parse(stream); // assert Assert.NotNull(tileSources); } }
private static ITileSource CreateWmscSource() { ITileSource tileSource; using (var stream = System.IO.File.OpenRead(Path.Combine("Resources", "tiandituSD.xml"))) { IEnumerable <ITileSource> tileSources = null; tileSources = WmtsParser.Parse(stream); tileSource = new List <ITileSource>(tileSources)[0]; } return(tileSource); }
public void TestParsingWmtsCapabilitiesMarsWithDoubleValues() { // arrange using (var stream = File.OpenRead(Path.Combine(Paths.AssemblyDirectory, "Resources", "Wmts", "wmts-capabilities-mars.xml"))) { // act var tileSources = WmtsParser.Parse(stream); // assert Assert.AreEqual(1, tileSources.Count()); } }
public static ITileSource Create() { var url = "https://api.lantmateriet.se/open/topowebb-ccby/v1/wmts/token/7cdfdab81eba86d0bc4fbb328165e9a/?request=GetCapabilities&version=1.1.1&service=wmts"; var request = WebRequest.Create(new Uri(url)); var response = request.GetResponseAsync(); using (var stream = response.Result.GetResponseStream()) { var tileSources = WmtsParser.Parse(stream); return(tileSources.First(s => s.Name.ToLower() == "topowebb" && s.Schema.Srs.Contains("3857"))); } }
public void TestParsingWmtsCapabilitiesRayaBasemapServer() { // arrange using (var stream = File.OpenRead(Path.Combine(Paths.AssemblyDirectory, "Resources", "Wmts", "wmts-capabilities-raya-basemap-server.xml"))) { // act var tileSources = WmtsParser.Parse(stream); // assert Assert.AreEqual(3, tileSources.Count()); } }
public void TestParsingWmtsCapabilitiesKvp() { // arrange using (var stream = File.OpenRead(Path.Combine("Resources", "Wmts", "wmts-capabilities-pdok.xml"))) { // act var tileSources = WmtsParser.Parse(stream); // assert Assert.NotNull(tileSources); } }
public static ILayer CreateLayer() { using var httpClient = new HttpClient(); // When testing today (20-10-2021) tile 0,0,0 returned a 500. Perhaps this should be fixed in the xml. using var response = httpClient.GetStreamAsync("https://bertt.github.io/wmts/capabilities/michelin.xml").Result; var tileSource = WmtsParser.Parse(response).First(); return(new TileLayer(tileSource) { Name = tileSource.Name }); }
public static ILayer CreateLayer() { using (var httpClient = new HttpClient()) using (var response = httpClient.GetStreamAsync("https://bertt.github.io/wmts/capabilities/michelin.xml").Result) { var tileSource = WmtsParser.Parse(response).First(); return(new TileLayer(tileSource) { Name = tileSource.Name }); } }
public ILayer CreateWmtsLayer() { using (var httpClient = new HttpClient()) using (var response = httpClient.GetStreamAsync("http://geodata.nationaalgeoregister.nl/wmts?VERSION=1.0.0&request=GetCapabilities").Result) { var tileSources = WmtsParser.Parse(response).ToList(); var natura2000 = tileSources.First(t => t.Name.ToLower().Contains("natura2000")); return(new TileLayer(natura2000) { Name = "Natura2000" }); } }
public static ILayer CreateLayer() { using (var httpClient = new HttpClient()) using (var response = httpClient.GetStreamAsync("http://geodata.nationaalgeoregister.nl/wmts/top10nl?VERSION=1.0.0&request=GetCapabilities").Result) { var tileSources = WmtsParser.Parse(response); var nature2000TileSource = tileSources.First(t => t.Name == "natura2000"); return(new TileLayer(nature2000TileSource) { Name = nature2000TileSource.Name }); } }
public void TestParsingWmtsGlobalCRS84Scale() { // arrange using (var stream = File.OpenRead(Path.Combine("Resources", "Wmts", "wmts-capabilities-pdok.xml"))) { // act var tileSources = WmtsParser.Parse(stream); // assert var tileSource = tileSources.First(s => s.Name == "non-existing-GlobalCRS84Scale-layer"); Assert.True(Math.Abs(tileSource.Schema.Extent.Area - new Extent(-180, -90, 180, 90).Area) < 1.0); } }
public void TestParsingWmtsCapabilities(string xml) { // arrange using (var stream = File.OpenRead(Path.Combine("Resources", "Wmts", xml))) { // act IEnumerable <ITileSource> tileSources = null; Assert.DoesNotThrow(() => tileSources = WmtsParser.Parse(stream)); // assert Assert.NotNull(tileSources); Assert.Greater(tileSources.Count(), 0); } }
public void TestParsingWmtsWhereUpperBoundAndLowerBoundLackOwsPrefix() { // arrange using (var stream = File.OpenRead(Path.Combine(Paths.AssemblyDirectory, "Resources", "Wmts", "wmts_capabilities_where_upperbound_and_lowerbound_lack_ows_prefix.xml"))) { // act var tileSources = WmtsParser.Parse(stream); // assert var tileSource = tileSources.First(s => s.Name.ToLower() == "topowebb"); var tileSchema = (WmtsTileSchema)tileSource.Schema; Assert.NotNull(tileSchema.Extent); } }
/// <summary> /// Create tile source /// </summary> /// <param name="config"></param> /// <returns></returns> private ITileSource createTileSource(WMTSInfo config) { Uri uri = new Uri(string.Format("{0}{1}", config.url, "?request=getCapabilities")); var req = WebRequest.Create(uri); var resp = req.GetResponseAsync(); ITileSource tileSource; using (var stream = resp.Result.GetResponseStream()) { IEnumerable <ITileSource> tileSources = WmtsParser.Parse(stream); tileSource = tileSources.FirstOrDefault(); } return(tileSource); }
public ITileSource GetTileSource() { var ser = new XmlSerializer(typeof(Capabilities)); Stream mstream = new MemoryStream(); ser.Serialize(mstream, capabilities); mstream.Seek(0, 0); var sources = WmtsParser.Parse(mstream); var source = sources.Single(s => s.Title == layer.WMSLayer); source = GetLayers(capabilities, sources.Select(s => s.Schema).ToList(), layer.DimensionsDict, layer.Username, layer.Password).Single(s => s.Title == layer.WMSLayer); return(source); }
public void TestPersistentCacheCanBeSet() { // arrange using (var stream = File.OpenRead(Path.Combine(Paths.AssemblyDirectory, "Resources", "Wmts", "wmts-capabilities-dlr.xml"))) { IEnumerable <HttpTileSource> tileSources = null; Assert.DoesNotThrow(() => tileSources = WmtsParser.Parse(stream)); var tileSource = tileSources.First(); // act tileSource.PersistentCache = new NullCache(); // assert Assert.NotNull(tileSource.PersistentCache); } }
public static ITileSource Create() { Uri uri = new Uri( "https://api.lantmateriet.se/open/topowebb-ccby/v1/wmts/token/7cdfdab81eba86d0bc4fbb328165e9a/?request=GetCapabilities&version=1.1.1&service=wmts"); var req = WebRequest.Create(uri); var resp = req.GetResponseAsync(); ITileSource tileSource; using (var stream = resp.Result.GetResponseStream()) { var tileSources = WmtsParser.Parse(stream); tileSource = tileSources.First(s => s.Name.ToLower() == "topowebb"); } return(tileSource); }
public static BruTileLayer GetWmtsLayer(IApplication _application, string format, string capabilitiesUrl, string LayerName, string LayerId) { var httpClient = new HttpClient(); var stream = httpClient.GetStreamAsync(capabilitiesUrl).Result; var tileSources = WmtsParser.Parse(stream); var tileSource = (from a in tileSources where ((WmtsTileSchema)a.Schema).Layer == LayerId select a).FirstOrDefault(); tileSource.Schema.Format = format; var brutileLayer = new BruTileLayer(_application, tileSource) { Name = LayerName, Visible = true }; return(brutileLayer); }
private void FillTree(WmsConnectionInfo connectionInfo) { lvwWmtsLayers.Items.Clear(); //Trying to get more information about layers to display XDocument doc; var req = (HttpWebRequest)WebRequest.Create(connectionInfo.Url); if (!string.IsNullOrEmpty(connectionInfo.Username)) { req.Credentials = new NetworkCredential(connectionInfo.Username, connectionInfo.Password); } if (!string.IsNullOrEmpty(connectionInfo.Referrer)) { req.Referer = connectionInfo.Referrer; } var tileSources = new List <ITileSource>(); using (var resp = req.GetResponse()) { using (var s = resp.GetResponseStream()) { tileSources.AddRange(WmtsParser.Parse(s)); } } foreach (var tileSource in tileSources) { var tmp = (WmtsTileSchema)tileSource.Schema; var n = lvwWmtsLayers.Items.Add(tmp.Identifier); n.SubItems.Add(tmp.Format); n.SubItems.Add(tmp.Style); n.SubItems.Add(tileSource.Name); n.SubItems.Add(tmp.Abstract); n.SubItems.Add(tmp.Name); n.SubItems.Add(tmp.Srs); n.Tag = tileSource; } }
public static async Task <ILayer> CreateLayerAsync() { var url = "http://geodata.nationaalgeoregister.nl/wmts/top10nl?VERSION=1.0.0&request=GetCapabilities"; using var response = await(DefaultCache as IUrlPersistentCache).UrlCachedStreamAsync(url); var tileSources = WmtsParser.Parse(response); var nature2000TileSource = tileSources.First(t => t.Name == "natura2000"); if (DefaultCache != null) { nature2000TileSource.PersistentCache = DefaultCache; } return(new TileLayer(nature2000TileSource) { Name = nature2000TileSource.Name }); }
public IEnumerable <ILayer> GetPdokWmtsLayers() { var result = new List <TileLayer>(); const string url = "http://geodata.nationaalgeoregister.nl/wmts?VERSION=1.0.0&request=GetCapabilities"; using (var httpClient = new HttpClient()) using (var response = httpClient.GetStreamAsync(url).Result) { var tileSources = WmtsParser.Parse(response) .Where(t => t.Schema.Format == "image/png" && t.Schema.Srs.Contains("3857")); result.AddRange(tileSources.Select(tileSource => new TileLayer(tileSource) { Name = tileSource.Name })); return(result); } }
public void TestParsingWmtsCapabilitiesKvpAndRestful() { // arrange using (var stream = File.OpenRead(Path.Combine("Resources", "Wmts", "wmts-capabilities-arcgis-server-doggersbank.xml"))) { // act var tileSources = WmtsParser.Parse(stream); // assert var tileSource = tileSources.First(s => s.Name.ToLower() == "public_doggersbank"); var tileSchema = tileSource.Schema as WmtsTileSchema; Assert.AreEqual(15, tileSource.Schema.Resolutions.Count); Assert.NotNull(tileSchema); Assert.AreEqual("public_doggersbank", tileSchema.Title); Assert.AreEqual("public_doggersbank", tileSchema.Layer); Assert.AreEqual("default028mm", tileSchema.TileMatrixSet); } }
public static async Task <ILayer> CreateLayerAsync() { using var httpClient = new HttpClient(); // When testing today (20-10-2021) tile 0,0,0 returned a 500. Perhaps this should be fixed in the xml. using var response = await httpClient.GetStreamAsync("https://bertt.github.io/wmts/capabilities/michelin.xml"); var tileSource = WmtsParser.Parse(response).First(); if (Michelin.DefaultCache != null) { tileSource.PersistentCache = Michelin.DefaultCache; } return(new TileLayer(tileSource) { Name = tileSource.Name }); }