public async Task <Tuple <TileInfo, GeoReferencedImage> > GetTile(TileInfo tile, double mapScale) { try { WiseWebClient client = new WiseWebClient(50); client.Headers.Add("user-agent", "App!"); //var zoom = GetZoomLevel(mapScale); var zoom = IRI.Ham.SpatialBase.Mapping.WebMercatorUtility.GetZoomLevel(mapScale); //google map var url = $@"https://mt0.google.com/vt?x={tile.ColumnNumber}&y={tile.RowNumber}&z={tile.ZoomLevel}"; ////google terrain //var url = $@"http://mt1.google.com/vt/lyrs=t@131,r@176163100&hl=en&x={tile.ColumnNumber}&y={tile.RowNumber}&z={tile.ZoomLevel}"; var byteImage = await client.DownloadDataTaskAsync(url); System.IO.File.WriteAllBytes($@"C:\Users\Hossein\Desktop\New folder (3)\map{tile.RowNumber}.{tile.ColumnNumber}.{tile.ZoomLevel}.png", byteImage); return(new Tuple <TileInfo, GeoReferencedImage>(tile, new GeoReferencedImage(byteImage, tile.WebMercatorExtent.Transform(MapProjects.WebMercatorToGeodeticWgs84)))); } catch (Exception) { return(null); } }
public async Task <GeoReferencedImage> DownloadTileAsync(TileInfo tile, WebProxy proxy) { try { if (IsOffline && _mapProvider.RequireInternetConnection) { return(GetNotFoundImage(tile)); } WiseWebClient client = new WiseWebClient(30); if (proxy != null) { client.Proxy = proxy; } client.Headers.Add("user-agent", "App!"); //var zoom = IRI.Msh.Common.Mapping.GoogleMapsUtility.GetGoogleZoomLevel(mapScale); //google map //var url = $@"https://mt0.google.com/vt?x={tile.ColumnNumber}&y={tile.RowNumber}&z={tile.ZoomLevel}"; ////google terrain //var url = $@"http://mt1.google.com/vt/lyrs=t@131,r@176163100&hl=en&x={tile.ColumnNumber}&y={tile.RowNumber}&z={tile.ZoomLevel}"; //var url = TileServices.MapProviderFactory.GetUrl(_cache.Provider, _cache.Type, tile); var url = this._mapProvider.GetUrl(tile); if (url == null) { return(GetNotFoundImage(tile)); } System.Diagnostics.Debug.WriteLine("Getting Tile at " + url); var byteImage = await client.DownloadDataTaskAsync(url); if (IRI.Jab.Common.Helpers.ImageUtility.ToImage(byteImage) == null) { return(GetNotFoundImage(tile)); } //return new GeoReferencedImage(byteImage, tile.MercatorExtent.Transform(i => MapProjects.MercatorToGeodetic(i))); return(new GeoReferencedImage(byteImage, tile.GeodeticExtent)); } catch (Exception ex) { //var byteImage = IRI.Jab.Common.Helpers.ImageUtility.AsByteArray(Properties.Resources.imageNotFound); //return new GeoReferencedImage(byteImage, tile.MercatorExtent.Transform(i => Projection.MercatorToGeodetic(i)), false); return(GetNotFoundImage(tile)); } }
public async Task <GeoReferencedImage> GetTile(BoundingBox mbb, double mapScale) { WiseWebClient client = new WiseWebClient(50); var center = MapProjects.WebMercatorToGeodeticWgs84(mbb.Center); var zoom = IRI.Ham.SpatialBase.Mapping.WebMercatorUtility.GetZoomLevel(mapScale); var url = $@"https://maps.googleapis.com/maps/api/staticmap?center={center.Y},{center.X}&zoom={zoom}&size=256x256&maptype=roadmap&key=AIzaSyASDX3dnoItXvimcgmsfNgw3J2piODjx9E"; var byteImage = await client.DownloadDataTaskAsync(url); return(new GeoReferencedImage(byteImage, mbb.Transform(MapProjects.WebMercatorToGeodeticWgs84))); }