BlazorGoogleMaps 4.9.5

There is a newer version of this package available.
See the version list below for details.
dotnet add package BlazorGoogleMaps --version 4.9.5
                    
NuGet\Install-Package BlazorGoogleMaps -Version 4.9.5
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="BlazorGoogleMaps" Version="4.9.5" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="BlazorGoogleMaps" Version="4.9.5" />
                    
Directory.Packages.props
<PackageReference Include="BlazorGoogleMaps" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add BlazorGoogleMaps --version 4.9.5
                    
#r "nuget: BlazorGoogleMaps, 4.9.5"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#addin nuget:?package=BlazorGoogleMaps&version=4.9.5
                    
Install BlazorGoogleMaps as a Cake Addin
#tool nuget:?package=BlazorGoogleMaps&version=4.9.5
                    
Install BlazorGoogleMaps as a Cake Tool

BlazorGoogleMaps

Blazor interop for GoogleMap library

NuGet version (BlazorGoogleMaps)

Usage

  1. 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>
  1. 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>
  1. 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

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (4)

Showing the top 4 NuGet packages that depend on BlazorGoogleMaps:

Package Downloads
templar-common-libary

Package Description

Magiq.Blazor

Provides views and services to be used in Blazor Client and Server projects.

AeroBlazor

A blazor library, extending MudBlazor

Microfrontend.one

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
4.10.1 905 12 days ago
4.10.0 319 15 days ago
4.9.5 169 16 days ago
4.9.4 158 18 days ago
4.9.3 3,726 2 months ago
4.9.2 10,987 4 months ago
4.9.1 4,447 5 months ago
4.9.0 2,018 5 months ago
4.8.0 282 5 months ago
4.7.15 117 5 months ago
4.7.14 9,943 6 months ago
4.7.13 5,500 6 months ago
4.7.12 1,519 7 months ago
4.7.11 9,710 8 months ago
4.7.10 758 8 months ago
4.7.9 133 8 months ago
4.7.8 183 8 months ago
4.7.7 1,513 8 months ago
4.7.6 4,838 8 months ago
4.7.5 198 8 months ago
4.7.4 144 8 months ago
4.7.3 2,181 9 months ago
4.7.2 2,462 9 months ago
4.7.1 6,239 9 months ago
4.7.0 315 9 months ago
4.6.2 359 9 months ago
4.6.1 197 9 months ago
4.6.0 1,044 10 months ago
4.5.0 928 10 months ago
4.4.2 4,663 6/12/2024
4.4.1 247 6/11/2024
4.4.0 223 6/10/2024
4.3.0 6,851 5/15/2024
4.2.0 6,097 4/25/2024
4.1.2 8,528 3/21/2024
4.1.1 486 3/20/2024
4.1.0 33,300 2/2/2024
4.0.3 922 1/18/2024
4.0.2 4,478 12/20/2023
4.0.1 1,884 12/17/2023
4.0.0 267 12/15/2023
3.3.2 20,536 12/15/2023
3.3.1 9,744 12/5/2023
3.2.5 2,644 11/23/2023
3.2.4 191 11/23/2023
3.2.3 8,180 10/30/2023
3.2.2 1,824 10/25/2023
3.2.1 261 10/25/2023
3.2.0 4,718 9/18/2023
3.1.4 3,834 9/9/2023
3.1.3 586 9/3/2023
3.1.2 7,786 8/1/2023
3.1.1 5,191 7/19/2023
3.1.0 2,069 7/10/2023
3.0.8 286 7/9/2023
3.0.7 11,042 6/9/2023
3.0.6 6,668 5/7/2023
3.0.5 3,746 4/13/2023
3.0.4 487 4/11/2023
3.0.3 1,404 4/6/2023
3.0.2 625 4/3/2023
3.0.1 367 4/1/2023
3.0.0 1,879 3/28/2023
2.5.7 12,746 3/14/2023
2.5.6 979 3/13/2023
2.5.5 3,897 2/24/2023
2.5.4 10,294 2/11/2023
2.5.3 973 2/6/2023
2.5.2 3,062 1/20/2023
2.5.1 1,235 1/17/2023
2.4.4 11,840 12/13/2022
2.4.3 6,868 11/29/2022
2.4.2 397 11/29/2022
2.4.1 1,547 11/25/2022
2.3.1 2,877 11/14/2022
2.2.6 26,899 9/5/2022
2.2.5 1,627 8/27/2022
2.2.4 462 8/27/2022
2.2.3 1,455 8/22/2022
2.2.2 595 8/19/2022
2.2.1 30,144 6/28/2022
2.2.0 3,011 6/20/2022
2.1.1 2,470 5/23/2022
2.1.0 2,253 5/3/2022
2.0.6 750 4/30/2022
2.0.5 1,759 4/21/2022
2.0.4 1,508 4/15/2022
2.0.3 1,161 4/1/2022
2.0.2 595 3/30/2022
2.0.1 532 3/30/2022
2.0.0 1,251 3/29/2022
1.5.5 11,620 2/24/2022
1.5.4 704 2/21/2022
1.5.3 1,990 2/16/2022
1.5.2 732 2/15/2022
1.5.1 4,186 2/7/2022
1.4.2 7,105 12/15/2021
1.4.1 6,860 12/8/2021
1.4.0 406 12/7/2021
1.3.0 563 12/2/2021
1.2.1 17,237 10/11/2021
1.1.8 1,386 9/27/2021
1.1.7 565 9/25/2021
1.1.6 439 9/23/2021
1.1.5 1,413 9/16/2021
1.1.4 1,319 9/12/2021
1.1.3 597 9/9/2021
1.1.2 802 9/7/2021
1.1.1 1,343 8/30/2021
1.0.17 2,266 7/27/2021
1.0.16 878 7/17/2021
1.0.15 9,018 4/29/2021
1.0.14 5,830 4/9/2021
1.0.13 31,323 3/18/2021
1.0.12 4,440 2/13/2021
1.0.11 615 2/10/2021
1.0.10 471 2/10/2021
1.0.9 449 2/10/2021
1.0.8 817 2/3/2021
1.0.7 4,066 1/30/2021
1.0.6 525 1/28/2021
1.0.5 1,001 1/18/2021
1.0.4 691 1/14/2021
1.0.3 486 1/13/2021
1.0.2 1,448 1/1/2021
1.0.1 898 12/25/2020
1.0.0 504 12/25/2020
0.9.3 499 12/25/2020
0.9.2 748 12/22/2020
0.9.1 1,210 12/4/2020
0.9.0 6,941 10/23/2020
0.8.1 1,128 10/4/2020
0.8.0 1,815 9/16/2020
0.7.1 1,689 8/9/2020
0.6.14 578 8/4/2020
0.6.13 735 8/2/2020
0.6.12 762 7/28/2020
0.6.11 555 7/27/2020
0.6.10 3,167 7/20/2020
0.6.9 660 7/14/2020
0.6.8 691 7/9/2020
0.6.7 640 7/7/2020
0.6.6 708 6/30/2020
0.6.5 1,089 6/4/2020
0.6.4 1,627 5/16/2020
0.6.3 1,029 5/5/2020
0.6.2 1,650 4/16/2020
0.6.1 756 3/27/2020
0.6.0 567 3/27/2020
0.5.9 587 3/26/2020
0.5.8 981 3/25/2020
0.5.7 564 3/25/2020
0.5.6 671 3/17/2020
0.5.5 1,563 3/7/2020
0.5.4 940 2/9/2020
0.5.3 668 2/8/2020
0.5.2 1,862 1/24/2020
0.5.1-alpha 869 12/9/2019
0.4.8-alpha 473 12/1/2019
0.4.7-alpha 559 10/18/2019
0.4.6-alpha 513 9/26/2019
0.4.5-alpha 372 8/20/2019
0.4.0-alpha 380 6/15/2019
0.3.0 914 6/1/2019
0.1.0 1,040 2/2/2019