public async static Task <Bitmap> GetSquareAsync(int row, int column, int zoom) { Bitmap bitmapImage; try { var requesParams = new MapVieArgs() { Zoom = zoom, Column = column, Row = row }; string target = CreateUrl(requesParams); using (var response = await client.GetAsync(target)) { response.EnsureSuccessStatusCode(); using (Stream stream = await response.Content.ReadAsStreamAsync()) { bitmapImage = new Bitmap(stream); } } return(bitmapImage); } catch { throw; } }
/// <summary> /// Create URL for HERE REST API /// </summary> /// <param name="args"></param> /// <param name="type"></param> /// <returns>Returns null on bad arguments or ready to use URL</returns> private static string CreateUrl(MapVieArgs args) { int balancedServer = 1 + ((args.Row + args.Column) % 4); string baseUrl = $"https://{balancedServer}.base.maps.api.here.com"; string apiVersion = "maptile/2.1"; string resource = "maptile"; string mapVersion = "newest"; string viewScheme = "normal.day"; string zoom = args.Zoom.ToString(); string column = args.Column.ToString(); string row = args.Row.ToString(); string size = args.Size.ToString(); string format = "png8"; string credentialParameters = $"?app_id={Credentials.AppId}&app_code={Credentials.AppCode}"; string res = $"{baseUrl}/{apiVersion}/{resource}/{mapVersion}/{viewScheme}/" + $"{zoom}/{column}/{row}/{size}/{format}" + credentialParameters; return(res); }