Add marker clustering support to the Telerik UI for Blazor Map control. When a map with many close to each other markers is viewed, they should group together.
Ability to refresh data for specific Map Layers. Currently the only way to update markers on Map is by calling Refresh on the Map component or issuing a StateHasChanged call.
Currently Maps does not support observable data, according to documentation: Databind to Observable Collection - Telerik UI for Blazor
Purpose: Ability to have "live" updating markers and/or shapes without calling MapRef.Refresh() which causes a full component "blink" and refresh in Edge, and to avoid StateHasChanged.
Example/Pseduo-Razor code:<TelerikMap @ref="MapRef">
<MapLayers>
<MapLayer Type="@MapLayersType.Marker" Data=@MyData" @ref="LayerRef" />
</MapLayers>
</TeleriKMap>
@code {
TelerikMap MapRef {get; set; }
TelerikMapLayer LayerRef { get; set; }
MyData = new List<MapMarker>() {
// Data in here
};
private void WholeComponentRefresh() {
MapRef.Refresh(); // Existing functionality
}
private void AddMarker() {
MyData.Add(new MapMarker()); // Map ignores this because it does not treat as observable
}
private void MyLayerRefresh() {
LayerRef.Refresh(); // If we don't have observable, could we at least get per-layer Refresh?
}
}
Hi
Can bounding box support be considered for the map please. It would be great if we can reference at runtime the current bounds that are displayed on the screen in bounding box format (https://wiki.openstreetmap.org/wiki/Bounding_Box) such as the open street map format below.
Im hoping as the map uses open street map this can be made available to the component.
The event would fire when the map zoom level has changed.
===
ADMIN EDIT: The new zoom level should be accessible in the event handler.
Hello,
i am came into scenario, where user wants multiple "colored" bubbles, the only option in current version is:
- use multiple bubble layers
But only ONE of the layer(the last one?) is firing the OnShapeClick event.
Expected:
Clicking on any "bubble"/shape should always fire the event OnShapeClick()
Is there any workaround, or idea how to force event to fire?
Dynamic loading of multiple colored layers/bubbles, but same problem is when you "statically" put 2 or more layers on map:
<TelerikMap Center="@Center"
MinZoom="3" Height="80vh"
Zoomable="true" Pannable="true"
Zoom="7"
OnMarkerClick="@( (args) => OZRowCmd((CrmMapOrgModel)args.DataItem,15))"
OnShapeClick="@( (args) => OZRowCmd((CrmMapOrgModel)args.DataItem,15))"
>
<MapLayers>
<MapLayer Type="@MapLayersType.Tile"
Attribution="@Attribution"
Subdomains="@Subdomains"
UrlTemplate="@UrlTemplate">
</MapLayer>
@if (MarkerList != null) foreach (var it in MarkerList)
{
@if (it.MarkerType == (int)MapLayersType.Marker)
{
<MapLayer Type="@MapLayersType.Marker"
Data="@MarkerData1.Where(x=>x.MarkerType==it.MarkerType)"
LocationField="@nameof(CrmMapOrgModel.LatLng)"
TitleField="@nameof(CrmMapOrgModel.CisloOrgNazev)"
/>
}
@if (it.MarkerType == (int)MapLayersType.Bubble && MarkerData1.Any(x => x.MarkerType == it.MarkerType & x.StavTr == it.StavTr))
{
<MapLayer Type="@MapLayersType.Bubble"
Data="@MarkerData1.Where(x=>x.MarkerType==it.MarkerType & x.StavTr==it.StavTr)"
LocationField="@nameof(CrmMapOrgModel.LatLng)"
ValueField="@nameof(CrmMapOrgModel.MarkerValue)" MinSize=@it.MinMarkerValue MaxSize=@it.MaxMarkerValue
>
<MapLayerBubbleSettings>
<MapLayerBubbleSettingsStyle >
<MapLayerBubbleSettingsStyleFill Color="@it.MarkerColor"></MapLayerBubbleSettingsStyleFill>
<MapLayerBubbleSettingsStyleStroke Color="@it.MarkerStrokeColor"></MapLayerBubbleSettingsStyleStroke>
</MapLayerBubbleSettingsStyle>
</MapLayerBubbleSettings>
</MapLayer>
}
}
</MapLayers>
</TelerikMap>
I want to catch the user click on a shape and have the ability to change the color of that shape to show that it is selected. Currently, the OnShapeClick event does not expose such an option.
Please allow changing the shape color in the OnShapeClick event.