Unplanned
Last Updated: 08 Sep 2021 04:48 by ADMIN
Created by: Serena
Comments: 5
Category: Map
Type: Feature Request
6

Hi
We would like to use vector tiles in our offline mapping applications, like ones you can get here :- https://openmaptiles.com/downloads/dataset/osm/europe/great-britain/england/#5.03/52.946/-2.426

I think telerik only supports raster files right now.  Is there any plans to support vector files in the future?  Could it be added to the roadmap?

(I am not looking for a way to convert vector files into PNG/Bitmap/JPEG Image tiles in a custom provider thanks)

Completed
Last Updated: 12 Jul 2021 07:37 by ADMIN
Release R3 2021 (LIB 2021.2.712)
If you apply 'left' padding to a callout, it wrongly applies to the right side as well.
Completed
Last Updated: 12 Jul 2021 07:37 by ADMIN
Release R3 2021 (LIB 2021.2.712)
The RadMap.Layers collection offers several overloads for the HitTest method:

- HitTest(PointG location)
- HitTest(PointL point)
- HitTest(Point location)

However, if the layer is not visible, its IsVisible property is set to false, the HitTest(PointL point) will not return the clicked pin, but the HitTest(PointG point) method will return it. This behavior is not consistent and all overloads should consider whether the layer is visible or not.
Completed
Last Updated: 12 Jul 2021 07:37 by ADMIN
Release R3 2021 (LIB 2021.2.712)

Hello,

on a german Windows, when searching with the bingmapsprovider for "München",

the tooltip on the Pin doesn't shows the ü in the correct way.

 

Completed
Last Updated: 12 Jul 2021 07:37 by ADMIN
Release R3 2021 (LIB 2021.2.712)
Please run the attached sample project and follow the steps from the gif file. You will notice that for ZoomLevel=19, clicking the pin shifts it on the left.
Duplicated
Last Updated: 07 Jul 2021 10:58 by ADMIN
Created by: Ketan
Comments: 2
Category: Map
Type: Bug Report
0

Hi,

Please refer. below code...

        void ShowInfoUI()
        {
            var padding = new Padding(0);
            var font = new Font(Font.FontFamily, 8.0f);

            if (T.InfoLayer.IsVisible = cbShowInfo.Checked)
            {
                var overlays = T.PinsLayer.Overlays;

                for (int i = 0; i < overlays.Count; i++)
                {
                    var callout = new MapCallout(overlays[i]) { Font = font, Padding = padding, Text = "1234567", Distance = 5 };

                    T.InfoLayer.Add(callout);
                }
            }
        }

There are 2 layers, InfoLayer (MapCallout) and PinsLayer (MapPins). cbShowInfo controls if MapCallout tobe shown.

If the 'Text' length is less than 8 wrapping happens, and not otherwise. Usually, If Text length is more then wrapping should happen.

Thanks

Completed
Last Updated: 15 Jun 2021 10:26 by ADMIN
Release R2 2021 SP1
GeoCoordinate class in System.Device.Location namespace does implement IEquatable<T> interface.

So it might be useful if PointG (and PointL, RectangleG, RectangleL, SizeG, SizeL) value types also implement it. There are so many articles about its advantage. The reason is I want to use LINQ queries on a PointG collection, GroupBy, Distinct, etc... so it will be better optimized.

Please refer.
https://medium.com/@semuserable/c-journey-into-struct-equality-comparison-deep-dive-9693f74562f1 

The Epilogue part specifically.
Completed
Last Updated: 09 Jun 2021 14:23 by ADMIN
Release R2 2021 SP1
Created by: Ketan
Comments: 3
Category: Map
Type: Feature Request
0

Hi,

An exception is thrown while adding layers without name. (System.InvalidOperationException: 'A layer with the same Name already exists in the collection.')

i.e

            var layer1 = new MapLayer();
            var layer2 = new MapLayer();

            map.Layers.Add(layer1);
            map.Layers.Add(layer2);

The simple fix is to always pass a unique name, but it must work like say DataTable.Columns.Add(); (which internally generates unique name)

Thanks

Completed
Last Updated: 09 Jun 2021 14:23 by ADMIN
Release R2 2021 SP1

Hi,

Please refer attached screen.

In a specific use case, it was required to add MapPins to a MapLayer, and later MapLayer to be added to a RadMap, and this exception.

Thanks

Completed
Last Updated: 31 May 2021 07:44 by ADMIN
Release R2 2021 SP1

Use the custom implementation in the following KB article: https://docs.telerik.com/devtools/winforms/knowledge-base/radmap-export-to-an-image?_ga=2.41263138.1402359144.1621138970-937174403.1607349180

The pins are successfully exported in version 2021.1.204:

After upgrading to version 2021.2.511, the pins are not exported anymore:

  
Unplanned
Last Updated: 05 May 2021 12:15 by ADMIN
Created by: Manoj
Comments: 0
Category: Map
Type: Feature Request
0
https://en.wikipedia.org/wiki/GPS_Exchange_Format
Completed
Last Updated: 15 Apr 2021 13:36 by ADMIN
Release R2 2021

Run the attached project.
Expected: 
10 points on each row.
Actual:
There is a seemingly random number of points on each row:

Declined
Last Updated: 16 Feb 2021 13:17 by ADMIN

Run the attached project and follow the steps in the gif file. As a result the following exception occurs:

System.IO.IOException: 'The process cannot access the file 't_0_0_1.png' because it is being used by another process.'

Declined
Last Updated: 08 Oct 2020 11:00 by ADMIN
Created by: Steinar
Comments: 1
Category: Map
Type: Feature Request
1
Add functionality for saving the RadMap control to a svg file.
Unplanned
Last Updated: 13 Aug 2020 12:02 by ADMIN

Please refer to the attached gif file. The sample project together with the sample files of the local provider can be downloaded here: https://1drv.ms/u/s!AnnV2HsINMD_yxDEY2iOWHXn5V9_?e=VurA0N 

Unplanned
Last Updated: 05 Jun 2020 06:52 by ADMIN
Created by: Yariv
Comments: 0
Category: Map
Type: Bug Report
0

There is a noticeable delay after moving the mouse while panning the map. After making a comparison with Open Street Maps and a local provider, it seems that the local provider is slightly slower than the OSM provider. Please refer to the attached gif file. 

After profiling the project, it seems that Image.FromFile for loading the required tile takes most of the time:

With the OSM the tile is loaded by using Image.FromStream and it takes 3 times less time:

Completed
Last Updated: 23 Apr 2020 16:12 by ADMIN
Release R2 2020 (LIB 2020.1.423)

Hello,

I am using RadMap to display a KML file.

Unfortunately, it looks like RadMap is not displaying properly all the shapes (departments).

Displayed with RadMap (few holes, ie departments not displayed): 

 

Displayed with a third party tool (all departments properly displayed):

I have attached the KML file in a zip file.

 Best,

Olivier 

Unplanned
Last Updated: 04 Mar 2020 15:28 by ADMIN
Add a MapPath object to a layer of RadMap and zoom in to the last possible level. 
An exception is thrown.
public partial class RadForm1 : RadForm
{
    private BingRestMapProvider bingProvider;

    public RadForm1()
    {
        this.InitializeComponent();
        this.SetupBingProvider();
        this.SetupLayers();

        this.ImportTestItem();
        this.radMapViewer.MapElement.MiniMapElement.EnableZooming = true;
    }

    private void SetupBingProvider()
    {
        string bingKey = "Your Bing Key";

        this.bingProvider = new BingRestMapProvider();
        this.bingProvider.UseSession = true;
        this.bingProvider.BingKey = bingKey;
        this.bingProvider.ImagerySet = Telerik.WinControls.UI.Map.Bing.ImagerySet.Aerial;
        LocalFileCacheProvider cache = new LocalFileCacheProvider(@"..\..\cache");
        this.bingProvider.CacheProvider = cache;
        this.bingProvider.ProviderUpdated += this.BingProvider_ProviderUpdated;
        this.radMapViewer.Providers.Add(this.bingProvider);

        this.bingProvider.InitializationComplete += this.BingProvider_InitializationComplete;
    }

    private void BingProvider_ProviderUpdated(object sender, EventArgs e)
    {
        // Workaround
        this.bingProvider.MaxZoomLevel = 20;
    }

    private void BingProvider_InitializationComplete(object sender, EventArgs e)
    {
        this.radMapViewer.BringIntoView(new PointG(42.698559196991135, 23.320803862212352), 20);
    }

    private void SetupLayers()
    {
        MapLayer modelLayer = new MapLayer("Models");
        this.radMapViewer.Layers.Add(modelLayer);
    }

    public void ImportTestItem()
    {
        Collection<Collection<PointG>> paths = new Collection<Collection<PointG>>();
        var points = new Collection<PointG>();
        paths.Add(points);
        points.Add(new PointG(42.698559196991135, 23.320803862212352));
        points.Add(new PointG(42.698927962901238, 23.319237221916447));
        points.Add(new PointG(42.698928093965123, 23.319236667248555));
        points.Add(new PointG(42.698928095639218, 23.319236660952237));
        points.Add(new PointG(42.698661960692946, 23.319152714625682));
        points.Add(new PointG(42.698661958997257, 23.319152719880927));
        points.Add(new PointG(42.698661126454983, 23.319156258531189));
        points.Add(new PointG(42.698366706433447, 23.320407248233786));
        points.Add(new PointG(42.698559196991135, 23.320803862212352));

        MapPath mapVisual = new MapPath(paths);
        mapVisual.BorderColor = Color.Blue;
        mapVisual.BackColor = Color.Empty;
        mapVisual.BorderWidth = 3;

        this.radMapViewer.Layers["Models"].Add(mapVisual);
    }
}
Completed
Last Updated: 22 Jan 2020 11:12 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 2
Category: Map
Type: Bug Report
0
To reproduce: add a RadMap with a Bing provider, select the canvas "Aerial with labels on demand" and zoom in all the way. It always gets the following exception:

System.ArgumentException: Parameter is not valid.
   at System.Drawing.Image.FromStream(Stream stream, Boolean useEmbeddedColorManagement, Boolean validateImageData)
   at Telerik.WinControls.UI.MapTileDownloader.TileDownloadDataCompleted(Object sender, DownloadDataCompletedEventArgs e)
   at System.Net.WebClient.OnDownloadDataCompleted(DownloadDataCompletedEventArgs e)

The issue is reproducible in Demo application with the Bing examples.

Workaround:

        public RadForm1()
        {
            InitializeComponent();

            string cacheFolder = @"..\..\cache";
            BingRestMapProvider bingProvider = new Telerik.WinControls.UI.BingRestMapProvider();
            bingProvider.TileDownloader = new CustomMapTileDownloader();
            bingProvider.UseSession = true;
            bingProvider.BingKey = "your bing key";
            LocalFileCacheProvider cache = new LocalFileCacheProvider(cacheFolder);
            bingProvider.CacheProvider = cache;
            this.radMap1.Providers.Add(bingProvider);
             
        }

        public class CustomMapTileDownloader : MapTileDownloader
        {
            protected override void TileDownloadDataCompleted(object sender, System.Net.DownloadDataCompletedEventArgs e)
            {
                TileInfo tileInfo = ((TileInfo)e.UserState);

                if (e.Error == null)
                {
                    try
                    {
                        using (MemoryStream ms = new MemoryStream(e.Result))
                        {
                            Image img = Image.FromStream(ms, true, true);
                            tileInfo.Content = e.Result;

                            this.OnTileDownloadComplete(new TileInfoEventArgs(tileInfo));

                            lock (this.webClientsPoolLockObject)
                            {
                                this.webClientsPool[tileInfo.Quadkey].DownloadDataCompleted -= this.TileDownloadDataCompleted;
                                this.webClientsPool.Remove(tileInfo.Quadkey);
                                this.webRequestCache.Remove(tileInfo.Quadkey);
                            }
                        }
                    }
                    catch (Exception)
                    {
                        
                        
                    }
                           
                    
                }
                else
                {
                    if (this.ShouldRetryDownload(e.Error))
                    {
                        Uri uri = this.webRequestCache[tileInfo.Quadkey];

                        lock (this.webClientsPoolLockObject)
                        {
                            uri = new Uri(this.webClientsPool[tileInfo.Quadkey].BaseAddress);
                            this.webClientsPool[tileInfo.Quadkey].DownloadDataCompleted -= this.TileDownloadDataCompleted;
                            this.webClientsPool.Remove(tileInfo.Quadkey);
                            this.webRequestCache.Remove(tileInfo.Quadkey);
                        }

                        this.BeginDownloadTile(uri, tileInfo);
                    }
                }
            }
        }
    }
Completed
Last Updated: 09 Jan 2020 16:06 by ADMIN
Release R1 2020

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.

 

1 2 3