There is a change in the Open Street Map Cycle and CylcleTransport services and they require an API key. Without it the service will returned tiles with a watermark saying "API KEY REQUIRED". Currently, the OpenStreetProvider doesn't expose a mechanism for providing a key.
At this point you can provide a key by creating a custom map provider deriving from OpenStreeMapProvider and also a custom OsmTileMapSource. And override the original URL to use also an API Key.
public class CustomOpenStreetMapProvider : OpenStreetMapProvider
{
public CustomOpenStreetMapProvider()
{
string sourceKey = (typeof(OpenStreetCycleTransportSource)).FullName;
this.MapSources[sourceKey] = new CustomOpenStreetCycleTransportSource("your api key here");
}
}
public class CustomOpenStreetCycleTransportSource : OsmTileMapSource
{
private static string UrlFormat = @"http://{prefix}.tile.thunderforest.com/transport/{zoom}/{x}/{y}.png?apikey={apikey}";
private string apiKey;
public CustomOpenStreetCycleTransportSource(string apiKey)
: base(UrlFormat)
{
this.apiKey = apiKey;
}
protected override Uri GetTile(int tileLevel, int tilePositionX, int tilePositionY)
{
Uri originalUri = base.GetTile(tileLevel, tilePositionX, tilePositionY);
string newUri = originalUri.OriginalString.Replace("{apikey}", this.apiKey);
return new Uri(newUri);
}
}
<telerik:RadMap>
<telerik:RadMap.Provider>
<local:CustomOpenStreetMapProvider/>
</telerik:RadMap.Provider>
</telerik:RadMap>