dymaptic.GeoBlazor.Core 4.0.1

dotnet add package dymaptic.GeoBlazor.Core --version 4.0.1
                    
NuGet\Install-Package dymaptic.GeoBlazor.Core -Version 4.0.1
                    
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="dymaptic.GeoBlazor.Core" Version="4.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="dymaptic.GeoBlazor.Core" Version="4.0.1" />
                    
Directory.Packages.props
<PackageReference Include="dymaptic.GeoBlazor.Core" />
                    
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 dymaptic.GeoBlazor.Core --version 4.0.1
                    
#r "nuget: dymaptic.GeoBlazor.Core, 4.0.1"
                    
#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=dymaptic.GeoBlazor.Core&version=4.0.1
                    
Install dymaptic.GeoBlazor.Core as a Cake Addin
#tool nuget:?package=dymaptic.GeoBlazor.Core&version=4.0.1
                    
Install dymaptic.GeoBlazor.Core as a Cake Tool

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.

Go GeoBlazor Pro

Build Issues Pull Requests

CORE

NuGet Downloads

PRO

NuGet Downloads

Discord

✨ 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

<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)

  1. Create a new Blazor Web App, Blazor Server, Blazor Wasm, or Blazor Hybrid (MAUI) project.

  2. Add a PackageReference to the latest version of the dymaptic.GeoBlazor.Core or dymaptic.GeoBlazor.Pro (pro is a paid version with more features) package via your IDE's Nuget Package Manager or from the command line with dotnet add package dymaptic.GeoBlazor.Core (or dotnet 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.

  3. Get an API Key from the ArcGIS Location Platform. Place this in your appsettings.json, secrets.json (user secrets), or environment variables.:

    {
        "ArcGISApiKey": "YourArcGISApiKey"
    }
    
  4. Register at licensing.dymaptic.com for a free GeoBlazor Core Registration key. Add the key to appsettings.json:

        {
            "ArcGISApiKey": "YourArcGISApiKey",
            "GeoBlazor": {
                "RegistrationKey": "YourGeoBlazorRegistrationKey"
            }
        }
    
  5. In the root file that defines your html (App.razor for Blazor Web Apps, _Layout.cshtml for older Blazor Server apps, and index.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, replace assets/esri/themes/light/main.css with assets/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" />
    
  6. 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
    
  7. In Program.cs (for both Server and Client projects, if applicable), register the GeoBlazor services:

    builder.Services.AddGeoBlazor(builder.Configuration);
    
  8. GeoBlazor requires Interactive Server or WebAssembly rendering enabled when using the modern Blazor Web App templates. Verify that the following lines are present in your Program.cs. (This is not relevant if you are using the older Blazor 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);
    
  9. 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 be InteractiveServer for Blazor Server, InteractiveWebAssembly for Blazor WebAssembly, or InteractiveAuto 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>
    
  10. 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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 is deprecated because it has critical bugs.
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.1 is deprecated because it has critical bugs.
2.5.3 362 2/10/2024 2.5.3 is deprecated because it has critical bugs.
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