New to Telerik UI for BlazorStart a free 30-day trial

Use a Custom Image as a Map in the Map Component

Environment

ProductMap for Blazor

Description

This knowledge base article answers the following questions:

  • How can I set a background image for the Blazor Map component?
  • Is it possible to overlay markers on a static image in Blazor Map?
  • Can I use a custom floor plan as a map in Blazor?

Solution

The solution depends on whether you want to show a static Map or if you want to support panning and zooming functionalities. This knowledge base shows the first option:

Static Map

This method is ideal when using the Map in a static context without the need for dynamic panning and zooming. In this case, you may use CSS to target the wrapping element of the component and set your image as a background image.

Use custom image as a map

<style>
    .custom-map-image {
        background-image: url(https://d585tldpucybw.cloudfront.net/sfimages/default-source/productsimages/telerik-ui-for-blazor/blazor-header-ninja.svg?sfvrsn=41f12bb3_3);
        position: relative;
    }

        .custom-map-image .k-map-controls {
            display: none;
        }
</style>

<TelerikMap Class="custom-map-image" Zoomable="false" Pannable="false" Width="515px" Height="440px">
    <MapLayers>
        <MapLayer Type="@MapLayersType.Marker"
                  Data="@MarkerData"
                  LocationField="@nameof(MarkerModel.LatLng)"
                  TitleField="@nameof(MarkerModel.Title)">
        </MapLayer>
    </MapLayers>
</TelerikMap>

@code {
    public List<MarkerModel> MarkerData { get; set; } = new List<MarkerModel>()
    {
        new MarkerModel()
        {
            LatLng = new double[] {-15.014573802798589, -36.825833916664131 },
            Title = "Marker 1"
        },
        new MarkerModel()
        {
            LatLng = new double[] {28.85837817460806, 25.92807233333588 },
            Title = "Marker 2"
        }
    };

    public class MarkerModel
    {
        public double[] LatLng { get; set; }
        public string Title { get; set; }
    }
}

Pannable and Zoomable Map

If you want to support panning and zooming the custom image in the Map, you will need to mimic the default Map behavior targeting the Tile layer. For that purpose, divide your image into small separate pieces that build up the whole map image and serve them to the Map component as tiles compliant to the WGS 84 coordinate system.

See Also