dymaptic.GeoBlazor.Core
4.0.0
See the version list below for details.
dotnet add package dymaptic.GeoBlazor.Core --version 4.0.0
NuGet\Install-Package dymaptic.GeoBlazor.Core -Version 4.0.0
<PackageReference Include="dymaptic.GeoBlazor.Core" Version="4.0.0" />
<PackageVersion Include="dymaptic.GeoBlazor.Core" Version="4.0.0" />
<PackageReference Include="dymaptic.GeoBlazor.Core" />
paket add dymaptic.GeoBlazor.Core --version 4.0.0
#r "nuget: dymaptic.GeoBlazor.Core, 4.0.0"
#addin nuget:?package=dymaptic.GeoBlazor.Core&version=4.0.0
#tool nuget:?package=dymaptic.GeoBlazor.Core&version=4.0.0
GeoBlazor
The premier mapping solution for Asp.NET Core Blazor applications.
GeoBlazor brings the power of the ArcGIS Maps SDK for JavaScript into your Blazor applications with 100% C# code - no JavaScript required. Create beautiful, interactive maps with industry-leading geospatial capabilities while maintaining a pure .NET development experience.
CORE
PRO
✨ Key Features
- Pure C# Development: Access the complete ArcGIS Maps SDK without writing a single line of JavaScript
- Rich Component Library: Includes maps, layers, widgets, geometries, and more
- Interactive Maps: Build responsive, interactive maps with minimal code
- Flexible Architecture: Works with Blazor Server, WebAssembly, and Hybrid MAUI apps
- Enterprise-Ready: Supports ArcGIS Enterprise for organizations with internal GIS infrastructure
🚀 Quick Links
<p align="center"> <img src="https://docs.geoblazor.com/assets/images/webmap.png" alt="GeoBlazor Map Example" width="800"> </p>
🧰 Installation
dotnet add package dymaptic.GeoBlazor.Core
Or for the Pro version with additional features:
dotnet add package dymaptic.GeoBlazor.Pro
Note: .NET 9 can cause very slow build times due to its new static asset compression. If you need faster builds, we recommend staying on .NET 8 for now, and using a global.json file to pin your SDK build version to .NET 8. See our open request for a fix here.
If you decide to stay with .NET 9, we suggest adding the following line to your
csproj
file to disable the new compression feature:<PropertyGroup> <CompressionEnabled Condition="$(Configuration) != 'RELEASE'">false</CompressionEnabled> </PropertyGroup>
🏁 Getting Started
(from https://docs.geoblazor.com/pages/gettingStarted.html)
Create a new Blazor Web App, Blazor Server, Blazor Wasm, or Blazor Hybrid (MAUI) project.
Add a
PackageReference
to the latest version of thedymaptic.GeoBlazor.Core
ordymaptic.GeoBlazor.Pro
(pro is a paid version with more features) package via your IDE's Nuget Package Manager or from the command line withdotnet add package dymaptic.GeoBlazor.Core
(ordotnet add package dymaptic.GeoBlazor.Pro
). For Blazor Web Apps supporting WebAssembly, add this reference to the.Client
WebAssembly project, or a Razor Class Library where you intend to write your mapping Razor components.Get an API Key from the ArcGIS Location Platform. Place this in your
appsettings.json
,secrets.json
(user secrets), orenvironment variables
.:{ "ArcGISApiKey": "YourArcGISApiKey" }
Register at licensing.dymaptic.com for a free GeoBlazor Core Registration key. Add the key to
appsettings.json
:{ "ArcGISApiKey": "YourArcGISApiKey", "GeoBlazor": { "RegistrationKey": "YourGeoBlazorRegistrationKey" } }
In the root file that defines your html (
App.razor
for Blazor Web Apps,_Layout.cshtml
for older Blazor Server apps, andindex.html
only for standalone Blazor WebAssembly apps), add the following to the<head>
section:<link href="_content/dymaptic.GeoBlazor.Core"/> <link href="_content/dymaptic.GeoBlazor.Core/assets/esri/themes/light/main.css" rel="stylesheet" /> <link href="YourProject.styles.css" rel="stylesheet" />
The
YourProject.styles.css
is the default stylesheet for your project, this line should already be present in your template, but is important for GeoBlazor to function correctly. For dark mode, replaceassets/esri/themes/light/main.css
withassets/esri/themes/dark/main.css
.Starting in .NET 9, there is also a new static asset compression feature that uses an
Assets
dictionary. If you see this pattern, follow the same pattern for GeoBlazor links:<link href="@Assets["_content/dymaptic.GeoBlazor.Core"]"/> <link href="@Assets["_content/dymaptic.GeoBlazor.Pro"]" /> <link href="@Assets["_content/dymaptic.GeoBlazor.Core/assets/esri/themes/light/main.css"]" rel="stylesheet" /> <link href="@Assets["YourProject.styles.css"]" rel="stylesheet" />
In
_Imports.razor
(for both Server and Client projects, if applicable), add the GeoBlazor namespaces:@using dymaptic.GeoBlazor.Core @using dymaptic.GeoBlazor.Core.Attributes @using dymaptic.GeoBlazor.Core.Components @using dymaptic.GeoBlazor.Core.Components.Geometries @using dymaptic.GeoBlazor.Core.Components.Layers @using dymaptic.GeoBlazor.Core.Components.Popups @using dymaptic.GeoBlazor.Core.Components.Renderers @using dymaptic.GeoBlazor.Core.Components.Symbols @using dymaptic.GeoBlazor.Core.Components.Views @using dymaptic.GeoBlazor.Core.Components.Widgets @using dymaptic.GeoBlazor.Core.Enums @using dymaptic.GeoBlazor.Core.Events @using dymaptic.GeoBlazor.Core.Exceptions @using dymaptic.GeoBlazor.Core.Extensions @using dymaptic.GeoBlazor.Core.Functions @using dymaptic.GeoBlazor.Core.Interfaces @using dymaptic.GeoBlazor.Core.Model @using dymaptic.GeoBlazor.Core.Options @using dymaptic.GeoBlazor.Core.Results
In
Program.cs
(for both Server and Client projects, if applicable), register the GeoBlazor services:builder.Services.AddGeoBlazor(builder.Configuration);
GeoBlazor requires Interactive Server or WebAssembly rendering enabled when using the modern
Blazor Web App
templates. Verify that the following lines are present in yourProgram.cs
. (This is not relevant if you are using the olderBlazor Server
template, and does not apply to WebAssembly projects).// Server builder.Services.AddRazorComponents() .AddInteractiveServerComponents(); // or WebAssembly builder.Services.AddRazorComponents .AddInteractiveWebAssemblyComponents(); // or both builder.Services.AddRazorComponents() .AddInteractiveServerComponents() .AddInteractiveWebAssemblyComponents();
and in the lower portion of the file:
// Server app.MapRazorComponents<App>() .AddInteractiveServerRenderMode(); // or WebAssembly app.MapRazorComponents<App>() .AddInteractiveWebAssemblyRenderMode() .AddAdditionalAssemblies(typeof(Counter).Assembly); // or both app.MapRazorComponents<App>() .AddInteractiveServerRenderMode() .AddInteractiveWebAssemblyRenderMode() .AddAdditionalAssemblies(typeof(Counter).Assembly);
Create a Razor Component page with a map. Again for Blazor Web Apps, be sure that the
@rendermode
is defined at the page or app level (line 2 of the example below). This should beInteractiveServer
for Blazor Server,InteractiveWebAssembly
for Blazor WebAssembly, orInteractiveAuto
for the automatic switching between modes. Learn more about Blazor render modes.@page "/map" @rendermode InteractiveServer <MapView Longitude="-118.805" Latitude="34.027" Zoom="11" Style="height: 400px; width: 100%;"> <WebMap> <PortalItem PortalItemId="4a6cb60ebbe3483a805999d481c2daa5" /> </WebMap> <ScaleBarWidget Position="OverlayPosition.BottomLeft" /> </MapView>
Run your application and see your map!
For complete documentation, please visit https://docs.geoblazor.com
🔄 Versions
GeoBlazor comes in two editions:
- GeoBlazor Core - Free, open-source edition with essential mapping capabilities
- GeoBlazor Pro - Commercial edition with advanced features, 3D support, and priority support
Check out our features comparison to see which edition is right for you.
📝 License
GeoBlazor Core is licensed under the MIT License.
GeoBlazor Pro is licensed under a Commercial License with a yearly subscription fee.
Product | Versions 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 was computed. 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. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- Microsoft.AspNetCore.Components.Web (>= 8.0.15)
- Microsoft.Extensions.Configuration (>= 8.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 8.0.2)
- Microsoft.Extensions.Http (>= 8.0.1)
- protobuf-net (>= 3.2.45)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on dymaptic.GeoBlazor.Core:
Package | Downloads |
---|---|
dymaptic.GeoBlazor.Pro
GeoBlazor is a GIS Component Library and SDK for building interactive maps in Blazor, powered by ArcGIS. For more information, visit https://www.geoblazor.com or contact dymaptic at geoblazor@dymaptic.com |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated | |
---|---|---|---|
4.0.1 | 367 | 6/3/2025 | |
4.0.0 | 192 | 5/29/2025 | |
4.0.0-beta-9.2 | 134 | 5/20/2025 | |
4.0.0-beta-8.2 | 228 | 5/15/2025 | |
4.0.0-beta-2.1 | 130 | 4/11/2025 | |
4.0.0-beta-1.13 | 115 | 3/28/2025 | |
3.2.2-beta-2 | 275 | 2/12/2025 | |
3.2.1 | 3,690 | 2/1/2025 | |
3.2.0 | 356 | 1/27/2025 | |
3.1.2-beta-1 | 495 | 12/20/2024 | |
3.1.1 | 4,399 | 8/15/2024 | |
3.1.0 | 677 | 8/1/2024 | |
3.0.3-beta-4 | 170 | 7/20/2024 | |
3.0.3-beta-3 | 310 | 6/27/2024 | |
3.0.3-beta-2 | 150 | 6/27/2024 | |
3.0.3-beta-1 | 160 | 6/27/2024 | |
3.0.2 | 2,498 | 5/8/2024 | |
3.0.2-beta-11 | 305 | 4/26/2024 | |
3.0.1 | 1,472 | 3/26/2024 | |
3.0.0 | 333 | 3/23/2024 | |
3.0.0-rc.2 | 162 | 3/9/2024 | |
3.0.0-rc.1 | 117 | 3/6/2024 | |
3.0.0-beta-95 | 342 | 2/24/2024 | |
2.5.3.2 | 5,553 | 2/11/2024 | |
2.5.3.1 | 328 | 2/10/2024 | |
2.5.3 | 362 | 2/10/2024 | |
2.5.2 | 1,867 | 12/20/2023 | |
2.5.1 | 776 | 12/13/2023 | |
2.5.0 | 1,137 | 11/26/2023 | |
2.4.1-beta-1 | 1,079 | 10/19/2023 | |
2.4.0 | 2,650 | 10/12/2023 | |
2.3.3 | 2,219 | 9/14/2023 | |
2.3.2 | 1,301 | 9/12/2023 | |
2.3.1-beta-1 | 1,600 | 8/18/2023 | |
2.3.0 | 2,166 | 8/9/2023 | |
2.3.0-beta-1 | 1,704 | 8/2/2023 | |
2.2.1 | 2,984 | 7/7/2023 | |
2.2.1-beta-1.1 | 177 | 6/16/2023 | |
2.2.0 | 3,387 | 6/2/2023 | |
2.2.0-beta-5 | 1,818 | 5/28/2023 | |
2.2.0-beta-4 | 2,341 | 5/23/2023 | |
2.2.0-beta-3 | 777 | 5/20/2023 | |
2.2.0-beta-2 | 803 | 5/20/2023 | |
2.2.0-beta-1 | 1,697 | 5/13/2023 | |
2.1.0 | 5,573 | 4/18/2023 | |
2.1.0-beta-1 | 1,790 | 4/16/2023 | |
2.0.2-beta-2 | 2,073 | 4/2/2023 | |
2.0.2-beta-1 | 2,076 | 4/1/2023 | |
2.0.1 | 2,365 | 3/18/2023 | |
2.0.1-beta-3 | 1,705 | 3/5/2023 | |
2.0.1-beta-2 | 1,732 | 3/4/2023 | |
2.0.1-beta-1 | 1,971 | 3/4/2023 | |
2.0.0 | 2,618 | 2/28/2023 | |
2.0.0-beta-9 | 1,802 | 2/24/2023 | |
2.0.0-beta-8 | 1,982 | 2/19/2023 | |
2.0.0-beta-7 | 1,682 | 2/19/2023 | |
2.0.0-beta-6 | 2,009 | 2/15/2023 | |
2.0.0-beta-5 | 1,767 | 2/15/2023 | |
2.0.0-beta-4 | 1,846 | 2/11/2023 | |
2.0.0-beta-3 | 1,933 | 2/9/2023 | |
2.0.0-beta-2 | 1,737 | 2/7/2023 | |
2.0.0-beta-11 | 1,866 | 2/25/2023 | |
2.0.0-beta-10 | 1,661 | 2/25/2023 | |
2.0.0-beta-1 | 1,827 | 2/5/2023 | |
1.2.0 | 3,428 | 11/13/2022 | |
1.1.1 | 1,413 | 10/20/2022 | |
1.1.0 | 1,243 | 10/8/2022 |