LeafletForBlazor 1.1.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package LeafletForBlazor --version 1.1.1                
NuGet\Install-Package LeafletForBlazor -Version 1.1.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="LeafletForBlazor" Version="1.1.1" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add LeafletForBlazor --version 1.1.1                
#r "nuget: LeafletForBlazor, 1.1.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.
// Install LeafletForBlazor as a Cake Addin
#addin nuget:?package=LeafletForBlazor&version=1.1.1

// Install LeafletForBlazor as a Cake Tool
#tool nuget:?package=LeafletForBlazor&version=1.1.1                

Leaflet Map for Blazor

You can quickly add a map to the blazor page. In addition, you can <span style="color:green;font-weight:bold">symbolize</span>, add <span style="color:green;font-weight:bold">tooltips</span> to map items and others

This package is under development, but I will keep the code compatible from one version to another.

You can find more information:

Baic map configuration:

Add in _<span style="color:#6084FF;">Imports.razor</span> project file
@using LeafletForBlazor
Add in your Blazor Page:
<Map 
	width="600px" 
	height="600px"
	Parameters="@parameters"
	Options="@map_options"
	GeoJSON_urls="@urls.ToArray()"
	onLoadMap="@OnLoadMap"
	onMapClick="@OnMapClick"
	onZoomChange="@OnZoomChange">
</Map>
Blazor Code:
@code {
	//map initialization parameters
	Map.LoadParameters parameters = new Map.LoadParameters()
	{
		location = new Map.Location()
		{
			longitude = 26.097133,
			latitude = 44.446165
		},
		zoom_level = 12,
		map_scale = new Map.MapScale()
		{
			has = true,
			meters = true,
			miles = false
		}
	};

	//map customization
	Map.MapOptions map_options = new Map.MapOptions()
	{
		interaction_options = new Map.InteractionOptions()
		{
			doubleClickZoom = false
		}

	};

	//working with GEOJson file
	/*	
		GeoJSON_urls <Map> parameter expects an array of JSON url
		1. The JSON data complies with the Leaflet documentation
		2. A revised format that allows symbolization customization (https://github.com/ichim/LeafletForBlazor-NuGet)
	*/
	List<string> urls = new List<string>() { 
		"http://localhost:5078/polygonsfile.json", 
		"http://localhost:5078/pointsfile.json"  
		};

	//Map events
	public void OnLoadMap(Map.OnLoadEventParameters event_args)
	{
		
	}
	public void OnZoomChange(int zoom_level)
	{
    
	}
	public void OnMapClick(Map.Location event_args)
	{
    
	}
}

JSON file example (<span style="color:#6084FF;">GeoJSON_urls</span> Map parameter)

1. Leaflet documentation format

Is the format shown in the Leaflet documentation

Leaflet GeoJSON page

GeoJSON specification (RFC 7946)

[
	{
	  "type": "Feature",
	  "geometry": {
		"type": "Polygon",
		"coordinates": [
		  [
			[ 26.0931846, 44.4432512 ],
			[ 26.0945783, 44.4435381 ],
			[ 26.0959206, 44.4438006 ],
			...
		  ]
		]
	  }
]

2. Improved Leaflet Format. This format allows configuring the symbolization of map elements

Is an leaflet format in which symbolization has been added to the leaflet data

Advantages:

  • The symbology is stored along with the data.

  • Changing the symbolization will be done without changing the code

  • Several applications (web, mobile, etc.) will display the same map, the same symbols

      		{
      		  "data": [...GeoJSON specification (RFC 7946)...],
      		  "symbology": { ... },
      		  "tooltip": { ... }
      	  }
      	}
    
  • JSON "data" paratemeter expects an array of GeoJSON items GeoJSON specification (RFC 7946)

  • JSON "symbology" parameter expects the custom symbology of GeoJSON items

    "symbology": {
     	"default": {
     	"color": "red",
     	"weight": 5,
     	"opacity": 0.4
     	},
     	"case": {
     		"field_name": "name",
     		"classes": [
     				{
     				"value": "Bdul Magheru",
     				"symbol": {
     					"color": "yellow",
     					"weight": 5,
     					"opacity": 0.4
     					}
     				},
     				{
     			  "value": "Bdul Dacia",
     			  "symbol": {
     					"color": "green",
     					"weight": 5,
     					"opacity": 0.4
     				}
     			}
     		]
     	}
     }
    

Result of polygons classes symbolization of GitHub example:

<span style="color:green;font-weight:bold">Symbolization by classes</span> is done based on a property (field) of the GeoJSON elements.

for example:

  • commercial areas were symbolized in <span style="background-color:yellow;color:black">yellow</span>;
  • residential areas were symbolized in <span style="background-color:green;color:white">green</span>;
  • other areas were symbolized in <span style="background-color:red;color:white">red</red>;

PolygonsSymbolization

  • JSON "tooltip" parameter expects the definition of GeoJSON items tooltip

    "tooltip": {
     	"fields_name": [ "name", "lanes" ],
     	"offset": [ 0, 0 ],
     	"permanent": true,
     	"opacity": 0.5,
     	"coordinate_inversion": true,
     	    "scaling": {
     			"start_with": 16,
     			"stop_with": 18
     			}
     }
    

Thank you for choosing this package!

Laurentiu Ichim

Product Compatible and additional computed target framework versions.
.NET net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.2.2.2 678 11/4/2024
2.2.2 320 10/31/2024
2.2.0.4 1,319 9/22/2024
2.2.0.2 244 9/17/2024
2.2.0 625 8/28/2024
2.0.8.8 533 8/15/2024
2.0.8.6 602 7/31/2024
2.0.8.2 420 7/24/2024
2.0.6.8 1,432 6/7/2024
2.0.6.4 476 5/29/2024
2.0.6.2 124 5/28/2024
2.0.4.8 221 5/23/2024
2.0.4.6 1,970 4/18/2024
2.0.4.4 749 3/27/2024
2.0.4.2 221 3/22/2024
2.0.2.8 1,499 3/3/2024
2.0.2.6 474 2/28/2024
2.0.2.4 580 2/19/2024
2.0.2.2 1,380 1/24/2024
2.0.0.8 449 1/18/2024
2.0.0.6 1,143 12/25/2023
2.0.0.4 1,142 12/6/2023
1.2.4 1,452 4/7/2023
1.2.3 796 4/4/2023
1.2.2 844 3/27/2023
1.2.1 807 3/12/2023
1.2.0 786 3/11/2023
1.1.9 767 3/9/2023
1.1.8 782 3/8/2023
1.1.5 1,007 3/2/2023
1.1.4 728 2/28/2023
1.1.2 790 2/25/2023
1.1.1 701 2/24/2023
1.1.0 729 2/23/2023
1.0.9 849 2/23/2023 1.0.9 is deprecated because it has critical bugs.
1.0.8 730 2/22/2023
1.0.6 981 2/18/2023
1.0.5 841 2/17/2023
1.0.4 929 2/14/2023 1.0.4 is deprecated because it has critical bugs.
1.0.3 746 2/14/2023 1.0.3 is deprecated because it has critical bugs.
1.0.2 753 2/14/2023 1.0.2 is deprecated because it has critical bugs.
1.0.1 746 2/13/2023 1.0.1 is deprecated because it has critical bugs.
1.0.0 778 2/13/2023 1.0.0 is deprecated because it has critical bugs.

2023 02 24 scalling tooltips
- for polygons geometry
- for points geometry
- for linestring geometry
2023 02 24 code optimization