Hi Perico,
Thank you for writing.
The reported behavior is an issue and I have logged it on our
feedback portal, here:
https://feedback.telerik.com/Project/154/Feedback/Details/230060-fix-radmap-using-clusters-in-radmap-breaks-the-tooltips-added-to-mappins. I have also updated your
Telerik points. Additionally, you can subscribe to the issue and be updated with its status changes. The issue is already in development and a fix will be included in the R1 2018 release.
Until then you can use the workaround below and handle the
ToolTipTextNeeded event:
public
partial
class
Form3 : Form
{
public
Form3()
{
InitializeComponent();
MapLayer pointLayer =
new
MapLayer(
"PointG"
);
pointLayer.ClusterStrategy =
new
ElementClusterStrategy();
pointLayer.ClusterDistance = 100;
this
.radMap1.Layers.Add(pointLayer);
MapPin pin1 =
new
MapPin(
new
PointG(45d, 15d)) { BackColor = Color.Coral, ToolTipText =
"Tool Tip1"
};
MapPin pin2 =
new
MapPin(
new
PointG(44d, 18d)) { BackColor = Color.Coral, ToolTipText =
"Tool Tip2"
};
this
.radMap1.Layers[
"PointG"
].Add(pin1);
this
.radMap1.Layers[
"PointG"
].Add(pin2);
this
.SetupProviders();
this
.radMap1.ToolTipTextNeeded += radMap1_ToolTipTextNeeded;
}
private
void
radMap1_ToolTipTextNeeded(
object
sender, Telerik.WinControls.ToolTipTextNeededEventArgs e)
{
MapCluster cluster = sender
as
MapCluster;
if
(cluster !=
null
&& cluster.ClusteredItems.Count == 1)
{
cluster.ToolTipText = ((MapPin)cluster.ClusteredItems[0]).ToolTipText;
}
}
private
void
SetupProviders()
{
string
cacheFolder = @
"..\..\cache"
;
BingRestMapProvider bingProvider =
new
BingRestMapProvider();
bingProvider.Culture = System.Threading.Thread.CurrentThread.CurrentCulture;
bingProvider.ImagerySet = ImagerySet.Road;
bingProvider.UseSession =
true
;
bingProvider.BingKey =
"..."
;
LocalFileCacheProvider cache =
new
LocalFileCacheProvider(cacheFolder);
bingProvider.CacheProvider = cache;
this
.radMap1.MapElement.Providers.Add(bingProvider);
bingProvider.InitializationComplete += bingProvider_InitializationComplete;
}
private
void
bingProvider_InitializationComplete(
object
sender, EventArgs e)
{
this
.radMap1.BringIntoView(
new
PointG(45d, 15d), 5);
}
}
I hope this helps. Please let me know if you need further assistance.
Regards,
Hristo
Progress Telerik