BlazorGoogleMaps 4.9.3
BlazorGoogleMaps
Blazor interop for GoogleMap library
Usage
- Provide your Google API key to BlazorGoogleMaps with one of the following methods. (You can get a key here: https://developers.google.com/maps/documentation/javascript/get-api-key)
Use the bootstrap loader with a key service (recommended):
services.AddBlazorGoogleMaps("YOUR_KEY_GOES_HERE");
OR specify google api libraries and/or version:
services.AddBlazorGoogleMaps(new GoogleMapsComponents.Maps.MapApiLoadOptions("YOUR_KEY_GOES_HERE")
{
Version = "beta",
Libraries = "places,visualization,drawing,marker",
});
OR to do something more complex (e.g. looking up keys asynchronously), implement a Scoped key service and add it with something like:
services.AddScoped<IBlazorGoogleMapsKeyService, YourServiceImplementation>();
OR (legacy - not recommended) Add google map script HEAD tag to wwwroot/index.html in Client side or _Host.cshtml in Server Side.
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=YOUR_KEY_GOES_HERE&v=3"></script>
- Add path to project javascript functions file in wwwroot/index.html for Blazor WASM, or in _Host.cshtml or _HostLayout.cshtml for Blazor Server.
<script src="_content/BlazorGoogleMaps/js/objectManager.js"></script>
If you want to use marker clustering add this script as well:
<script src="https://unpkg.com/@googlemaps/markerclusterer/dist/index.min.js"></script>
- Using the component is the same for both Blazor WASM and Blazor Server
@page "/map"
@using GoogleMapsComponents
@using GoogleMapsComponents.Maps
<h1>Google Map</h1>
<div style="height:@Height">
<GoogleMap @ref="@_map1" Id="map1" Options="@mapOptions" Height="100%" OnAfterInit="AfterMapRender"></GoogleMap>
</div>
@functions {
private GoogleMap _map1;
private MapOptions mapOptions;
protected override void OnInitialized()
{
mapOptions = new MapOptions()
{
Zoom = 13,
Center = new LatLngLiteral()
{
Lat = 13.505892,
Lng = 100.8162
},
MapTypeId = MapTypeId.Roadmap
};
}
private async Task AfterMapRender()
{
_bounds = await LatLngBounds.CreateAsync(_map1.JsRuntime);
}
}
OR Render markers with Blazor (currently only with v=beta
version of google-maps, and specify a MapId
)
@page "/map"
@using GoogleMapsComponents
@using GoogleMapsComponents.Maps
<h1>Google Map</h1>
<AdvancedGoogleMap @ref="@_map1" Id="map1" Options="@mapOptions">
@foreach (var markerRef in Markers)
{
<MarkerComponent
@key="markerRef.Id"
Lat="@markerRef.Lat"
Lng="@markerRef.Lng"
Clickable="@markerRef.Clickable"
Draggable="@markerRef.Draggable"
OnClick="@(() => markerRef.Active = !markerRef.Active)"
OnMove="pos => markerRef.UpdatePosition(pos)">
<p>I am a blazor component</p>
</MarkerComponent>
}
</AdvancedGoogleMap>
@code {
private List<MarkerData> Markers =
[
new MarkerData { Id = 1, Lat = 13.505892, Lng = 100.8162 },
];
private AdvancedGoogleMap? _map1;
private MapOptions mapOptions =new MapOptions()
{
Zoom = 13,
Center = new LatLngLiteral()
{
Lat = 13.505892,
Lng = 100.8162
},
MapId = "DEMO_MAP_ID", //required for blazor markers
MapTypeId = MapTypeId.Roadmap
};
public class MarkerData
{
public int Id { get; set; }
public double Lat { get; set; }
public double Lng { get; set; }
public bool Clickable { get; set; } = true;
public bool Draggable { get; set; }
public bool Active { get; set; }
public void UpdatePosition(LatLngLiteral position)
{
Lat = position.Lat;
Lng = position.Lng;
}
}
}
Samples
Please check server side samples https://github.com/rungwiroon/BlazorGoogleMaps/tree/master/ServerSideDemo which are most to date
ClientSide demos online https://rungwiroon.github.io/BlazorGoogleMaps/mapEvents
Breaking change from 4.0.0 Migrate to .NET 8 #286.
Breaking change from 3.0.0 Migrate from Newtonsoft.Json to System.Text.Json.
Breaking change from 2.0.0 LatLngLiteral constructor's parameters order changed #173
No packages depend on BlazorGoogleMaps.
.NET 8.0
- Microsoft.AspNetCore.Components (>= 8.0.13)
- Microsoft.AspNetCore.Components.Web (>= 8.0.13)
- Microsoft.JSInterop (>= 8.0.13)
- OneOf (>= 3.0.271)
- System.Text.Json (>= 8.0.5)
.NET 9.0
- Microsoft.AspNetCore.Components (>= 9.0.2)
- Microsoft.AspNetCore.Components.Web (>= 9.0.2)
- Microsoft.JSInterop (>= 9.0.2)
- OneOf (>= 3.0.271)
- System.Text.Json (>= 9.0.2)
Version | Downloads | Last updated |
---|---|---|
4.13.0 | 0 | 6/5/2025 |
4.12.2 | 0 | 6/2/2025 |
4.12.1 | 0 | 6/1/2025 |
4.12.0 | 0 | 5/28/2025 |
4.11.3 | 0 | 5/28/2025 |
4.11.2 | 0 | 5/13/2025 |
4.11.1 | 0 | 4/20/2025 |
4.11.0 | 0 | 4/14/2025 |
4.10.1 | 0 | 4/1/2025 |
4.10.0 | 0 | 3/30/2025 |
4.9.5 | 0 | 3/28/2025 |
4.9.4 | 0 | 3/27/2025 |
4.9.3 | 1 | 3/7/2025 |
4.9.2 | 1 | 3/7/2025 |
4.9.1 | 1 | 3/7/2025 |
4.9.0 | 1 | 3/7/2025 |
4.8.0 | 1 | 3/7/2025 |
4.7.15 | 1 | 3/7/2025 |
4.7.14 | 1 | 3/7/2025 |
4.7.13 | 1 | 3/7/2025 |
4.7.12 | 1 | 3/7/2025 |
4.7.11 | 1 | 3/7/2025 |
4.7.10 | 1 | 3/7/2025 |
4.7.9 | 1 | 3/7/2025 |
4.7.8 | 1 | 3/7/2025 |
4.7.7 | 1 | 3/7/2025 |
4.7.6 | 1 | 3/7/2025 |
4.7.5 | 1 | 3/7/2025 |
4.7.4 | 1 | 3/7/2025 |
4.7.3 | 1 | 3/7/2025 |
4.7.2 | 1 | 3/7/2025 |
4.7.1 | 1 | 3/7/2025 |
4.7.0 | 1 | 3/7/2025 |
4.6.2 | 1 | 3/7/2025 |
4.6.1 | 1 | 3/7/2025 |
4.6.0 | 1 | 3/7/2025 |
4.5.0 | 1 | 3/7/2025 |
4.4.2 | 1 | 3/7/2025 |
4.4.1 | 1 | 3/7/2025 |
4.4.0 | 1 | 3/7/2025 |
4.3.0 | 1 | 3/7/2025 |
4.2.0 | 1 | 3/7/2025 |
4.1.2 | 1 | 3/7/2025 |
4.1.1 | 1 | 3/7/2025 |
4.1.0 | 1 | 3/7/2025 |
4.0.3 | 1 | 3/7/2025 |
4.0.2 | 1 | 3/7/2025 |
4.0.1 | 1 | 3/7/2025 |
4.0.0 | 1 | 3/7/2025 |
3.3.2 | 1 | 3/7/2025 |
3.3.1 | 1 | 3/7/2025 |
3.2.5 | 1 | 3/7/2025 |
3.2.4 | 1 | 3/7/2025 |
3.2.3 | 1 | 3/7/2025 |
3.2.2 | 1 | 3/7/2025 |
3.2.1 | 1 | 3/7/2025 |
3.2.0 | 1 | 3/7/2025 |
3.1.4 | 1 | 3/7/2025 |
3.1.3 | 1 | 3/7/2025 |
3.1.2 | 1 | 3/7/2025 |
3.1.1 | 1 | 3/7/2025 |
3.1.0 | 1 | 3/7/2025 |
3.0.8 | 1 | 3/7/2025 |
3.0.7 | 1 | 3/7/2025 |
3.0.6 | 1 | 3/7/2025 |
3.0.5 | 1 | 3/7/2025 |
3.0.4 | 1 | 3/7/2025 |
3.0.3 | 1 | 3/7/2025 |
3.0.2 | 1 | 3/7/2025 |
3.0.1 | 1 | 3/7/2025 |
3.0.0 | 1 | 3/7/2025 |
2.5.7 | 1 | 3/7/2025 |
2.5.6 | 1 | 3/7/2025 |
2.5.5 | 1 | 3/7/2025 |
2.5.4 | 1 | 3/7/2025 |
2.5.3 | 1 | 3/7/2025 |
2.5.2 | 4 | 6/25/2023 |
2.5.1 | 1 | 3/7/2025 |
2.4.4 | 2 | 3/7/2025 |
2.4.3 | 1 | 3/7/2025 |
2.4.2 | 1 | 3/7/2025 |
2.4.1 | 1 | 3/7/2025 |
2.3.1 | 1 | 3/7/2025 |
2.2.6 | 1 | 3/7/2025 |
2.2.5 | 1 | 3/7/2025 |
2.2.4 | 1 | 3/7/2025 |
2.2.3 | 1 | 3/7/2025 |
2.2.2 | 1 | 3/7/2025 |
2.2.1 | 1 | 3/7/2025 |
2.2.0 | 1 | 3/7/2025 |
2.1.1 | 1 | 3/7/2025 |
2.1.0 | 1 | 3/7/2025 |
2.0.6 | 1 | 3/7/2025 |
2.0.5 | 1 | 3/7/2025 |
2.0.4 | 1 | 3/7/2025 |
2.0.3 | 1 | 3/7/2025 |
2.0.2 | 1 | 3/7/2025 |
2.0.1 | 1 | 3/7/2025 |
2.0.0 | 1 | 3/7/2025 |
1.5.5 | 1 | 3/7/2025 |
1.5.4 | 1 | 3/7/2025 |
1.5.3 | 2 | 10/30/2023 |
1.5.2 | 1 | 3/7/2025 |
1.5.1 | 1 | 3/7/2025 |
1.4.2 | 1 | 3/7/2025 |
1.4.1 | 1 | 3/7/2025 |
1.4.0 | 1 | 3/7/2025 |
1.3.0 | 1 | 3/7/2025 |
1.2.1 | 1 | 3/7/2025 |
1.1.8 | 2 | 10/19/2023 |
1.1.7 | 1 | 3/7/2025 |
1.1.6 | 1 | 3/7/2025 |
1.1.5 | 1 | 3/7/2025 |
1.1.4 | 1 | 3/7/2025 |
1.1.3 | 2 | 10/21/2023 |
1.1.2 | 1 | 3/7/2025 |
1.1.1 | 1 | 3/7/2025 |
1.0.17 | 1 | 3/7/2025 |
1.0.16 | 1 | 3/7/2025 |
1.0.15 | 1 | 3/7/2025 |
1.0.14 | 1 | 3/7/2025 |
1.0.13 | 1 | 3/7/2025 |
1.0.12 | 1 | 3/7/2025 |
1.0.11 | 1 | 3/7/2025 |
1.0.10 | 1 | 3/7/2025 |
1.0.9 | 1 | 3/7/2025 |
1.0.8 | 2 | 3/7/2025 |
1.0.7 | 1 | 3/7/2025 |
1.0.6 | 1 | 3/7/2025 |
1.0.5 | 1 | 3/7/2025 |
1.0.4 | 1 | 3/7/2025 |
1.0.3 | 1 | 3/7/2025 |
1.0.2 | 1 | 3/7/2025 |
1.0.1 | 1 | 3/7/2025 |
1.0.0 | 2 | 3/7/2025 |
0.9.3 | 1 | 3/7/2025 |
0.9.2 | 1 | 3/7/2025 |
0.9.1 | 1 | 3/7/2025 |
0.9.0 | 2 | 10/28/2023 |
0.8.1 | 1 | 3/7/2025 |
0.8.0 | 1 | 3/7/2025 |
0.7.1 | 1 | 3/7/2025 |
0.6.14 | 1 | 3/7/2025 |
0.6.13 | 1 | 3/7/2025 |
0.6.12 | 1 | 3/7/2025 |
0.6.11 | 2 | 11/10/2023 |
0.6.10 | 1 | 3/7/2025 |
0.6.9 | 1 | 3/7/2025 |
0.6.8 | 1 | 3/7/2025 |
0.6.7 | 1 | 3/7/2025 |
0.6.6 | 2 | 11/3/2023 |
0.6.5 | 1 | 3/7/2025 |
0.6.4 | 1 | 3/7/2025 |
0.6.3 | 1 | 3/7/2025 |
0.6.2 | 1 | 3/7/2025 |
0.6.1 | 1 | 3/7/2025 |
0.6.0 | 1 | 3/7/2025 |
0.5.9 | 1 | 3/7/2025 |
0.5.8 | 1 | 3/7/2025 |
0.5.7 | 1 | 3/7/2025 |
0.5.6 | 1 | 3/7/2025 |
0.5.5 | 1 | 3/7/2025 |
0.5.4 | 1 | 3/7/2025 |
0.5.3 | 1 | 3/7/2025 |
0.5.2 | 1 | 3/7/2025 |
0.5.1-alpha | 1 | 3/7/2025 |
0.4.8-alpha | 1 | 3/7/2025 |
0.4.7-alpha | 1 | 3/7/2025 |
0.4.6-alpha | 1 | 3/7/2025 |
0.4.5-alpha | 1 | 3/7/2025 |
0.4.0-alpha | 1 | 3/7/2025 |
0.3.0 | 3 | 10/26/2023 |
0.1.0 | 1 | 3/7/2025 |