Recently OpenStreetMap changed their tile usage policy and require UserAgent string in the web headers for accessing tile.openstreetmap.org tiles.
https://operations.osmfoundation.org/policies/tiles/
As a result, standard open street map mode does not work - no tiles are loaded and "too many requests" error is returned from the server.
RadMap's OpenStreetMapProvider needs API (event, property or similar) for easier set up of UserAgent / Referer / other headers of web requests.
Currently, the workaround is to override the OpenStreetMapProvider like so:
public class CustomOpenStreetProvider : OpenStreetMapProviderAdd an API to load Dark tiles in the provider.
This mode can be achieved by showing tiles from the Carto Dark tile server.
If you update the Location of a map shape data object (for example, EllipseData, PolygonData, ect.) at run-time, while the clustering feature is enabled, the shape disappears.
To work this around, reset the clustering via the IsClusteringEnabled property when the Location changes.
this.ellipseShapeData = new Location(newLatitude, newLongitude);
this.visualizationLayer.ClusteringEnabled = false;
this.visualizationLayer.ClusteringEnabled = true;
If XML of the KML file is not ordered properly (beautified with tabs and new lines), the AsyncKmlReader doesn't read all shapes.
To work this around, beautify the KML file before passing it to the shape reader.
I have only seen this once. It's possible this is because I am using multiple maps at the same time. I think it crashed the application, but I do not recall.
System.IO.IOException
HResult=0x80070020
Message=The process cannot access the file 'C:\Users\jasond\AppData\Local\TelerikMapCache\Telerik.Windows.Controls.Map.BingRestRoadOnDemandSource.23x7935x11621' because it is being used by another process.
Source=mscorlib
StackTrace:
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
at Telerik.Windows.Controls.Map.FileSystemCache.OpenCacheStream(String fileName)
at Telerik.Windows.Controls.Map.FileCacheBase.LoadAsync(String fileName, Action`1 callback)
at Telerik.Windows.Controls.Map.TiledMapSource.GetCachedTileAsync(Int32 tileLevel, Int32 tilePositionX, Int32 tilePositionY, Action`1 callback)
at Telerik.Windows.Controls.Map.MultiScaleTileSource.DownloadTile(TileId tileId)
at Telerik.Windows.Controls.Map.TilesDownloadManager.RequestTile(Int32 requestLevel, Int32 tileX, Int32 tileY, Nullable`1 absTileX)
at Telerik.Windows.Controls.Map.TilesDownloadManager.RequestTop3Levels(Int32 endLevel3)
at Telerik.Windows.Controls.Map.TilesDownloadManager.Process()
at Telerik.Windows.Controls.Map.TilesDownloadManager.DownloaderThread()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
Here maps has the ability to render map tiles with traffic. They include a freemium tier unlike some of the others.
https://developer.here.com/documentation/map-tile/topics/quick-start-map-tile.html
https://developer.here.com/documentation/map-tile/topics/resource-base-tile-intro.html
Unlike Bing Maps, Azure Maps allows for traffic tiles to be rendered over top the standard map tiles. Please bring the traffic layer back with Azure Maps Traffic Tiles!
https://docs.microsoft.com/en-us/rest/api/maps/traffic/gettrafficflowtile
In reference to: https://www.telerik.com/forums/binding-question
This sample project is not exactly the same as my actual project, but has the same issue.
I have multiple maps visible. I have a PolygonData that I want to be visible on both maps. It shows up fine. However, the polygon on the first map will not scale when zooming with the FIRST map. If I zoom with the SECOND map, both polygons will correctly scale.
If I replace PolygonData with my own object (PolygonVM), both polygons always correctly scale.
OpenStreetMap provider uses OpenStreetMapSources which have MaxZoomLevel 18.
When Wraparound of the Map is True and you move (with SetView or ZoomLevel + Center properties) the map to zoomlevel > 18 , no tiles are loaded.
Implement AzureMaps Provider in RadMap based on the following API https://azure.microsoft.com/en-us/services/azure-maps/