LeafletForBlazor 1.1.5
See the version list below for details.
dotnet add package LeafletForBlazor --version 1.1.5
NuGet\Install-Package LeafletForBlazor -Version 1.1.5
<PackageReference Include="LeafletForBlazor" Version="1.1.5" />
paket add LeafletForBlazor --version 1.1.5
#r "nuget: LeafletForBlazor, 1.1.5"
// Install LeafletForBlazor as a Cake Addin #addin nuget:?package=LeafletForBlazor&version=1.1.5 // Install LeafletForBlazor as a Cake Tool #tool nuget:?package=LeafletForBlazor&version=1.1.5
Leaflet Map for Blazor
You can quickly add a map to the blazor page. In addition, you can add GeoJSON data in the map, symbolize Map items, add tooltips to map items, working with basemap and overlay layers and others
This package is under development, but I will keep the code compatible from one version to another.
You can find more information:
What's New?
New Load Map boolean parmeter (anyway_overlay_layers_control), which forces the display of GeoJSON layers in the Layers Control.
Map.LoadParameters parameters = new Map.LoadParameters()
{
anyway_overlay_layers_control = true
}
The names of the files will be displayed in the Layers Control, the overlay layers section.
Basic map configuration:
Add in _Imports.razor project file
@using LeafletForBlazor
Add in your Blazor Page:
<Map
width="600px"
height="600px"
Parameters="@parameters"
></Map>
Blazor code block:
@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
Blazor Page:
<Map
width="600px"
height="600px"
Parameters="@parameters"
></Map>
Blazor code block:
@code {
//map initialization parameters
Map.LoadParameters parameters = new Map.LoadParameters()
{
map_scale = new Map.MapScale()
{
has = true,
meters = true,
miles = false
}
};
}
Basemaps
Now, you can define a base map list, from various sources (Open Street Map, Open Cycle Map and so one).
The user of the application, created by you, will be able to change the basemap.
Blazor page:
<Map
width="800px"
height="700px"
Parameters="@parameters"
></Map>
Blazor code block
Map.LoadParameters parameters = new Map.LoadParameters()
{
....
basemap_layers = new List<Map.BasemapConfigLayer>
{
new Map.BasemapConfigLayer()
{
url = "http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
attribution = "�Open Street Map",
title = "Open Street Map",
detect_retina = true
},
new Map.BasemapConfigLayer()
{
url = "https://tile.thunderforest.com/cycle/{z}/{x}/{y}.png?apikey=[your API Key]",
attribution = "�Open Cycle Map",
title = "Open Cycle Map"
}
}
};
Map enevts
LeafletForBlazor Map provide some events:
- OnLoadMap();
- OnMapClick();
- OnZoomChange();
Blazor page:
<Map
width="600px"
height="600px"
onLoadMap="@OnLoadMap"
onMapClick="@OnMapClick"
onZoomChange="@OnZoomChange">
</Map>
Blazor code block:
@code {
//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 (GeoJSON_urls Map parameter)
Blazor Page:
<Map
width="600px"
height="600px"
GeoJSON_urls="@urls.ToArray()"
></Map>
Blazor Code:
@code {
//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 improved format that allows custom symbolization
3. The simultaneous use of the two types of format (RFC 7946 format and improved format)
*/
List<string> urls = new List<string>() {
"http://localhost:5078/polygonsfile.json",
"http://localhost:5078/pointsfile.json"
};
}
1. Leaflet documentation format
Is the format shown in the Leaflet documentation
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 and tooltips configuration are stored along with the data;
Changing the symbolization will be done without changing the code;
Also, changing tooltips configuration 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": { ... } }
Meaning of JSON (improved format) parameters:
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 } } ] } "scaling": { "start_with": 16, "stop_with": 18 } }
In the previous example, we have a default symbol and two other symbols for two predefined classes. This two classes are defined based on the values in the "name" field.
Result of polygons classes symbolization of GitHub example:
Symbolization by classes is done based on a property (field) of the GeoJSON elements.
for example:
- commercial areas were symbolized in yellow;
- residential areas were symbolized in green;
- other areas were symbolized in red;
Symbology and tooltip scaling
Map elements (with symbology) and tooltips will be displayed in the map only for zoom levels between start_with and stop_with.
In the case of the GeoJSON layer, scaling will only work when we have defined at least one default symbol
JSON "symbology" parameter expects the definition of GeoJSON items tooltip. "scaling" parameter is not mandatory.
"symbology": { "default": { "color": "red", "weight": 5, "opacity": 0.4 }, "scaling": { "start_with": 15, "stop_with": 18 } }
JSON "tooltip" parameter expects the definition of GeoJSON items tooltip. "scaling" parameter is not mandatory.
"tooltip": { "fields_name": [ "name", "lanes" ], "offset": [ 0, 0 ], "permanent": true, "opacity": 0.5, "coordinate_inversion": true, "scaling": { "start_with": 16, "stop_with": 18 } }
O-L I
Thank you for choosing this package!
Laurentiu Ichim
Product | Versions 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. |
-
net7.0
- Microsoft.AspNetCore.Components.Web (>= 7.0.0)
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.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.3 | 746 | 2/14/2023 | |
1.0.2 | 753 | 2/14/2023 | |
1.0.1 | 746 | 2/13/2023 | |
1.0.0 | 778 | 2/13/2023 |
2023 03 02
bug003 duplication of symbolized layers with default and without symbolization
2023 03 02 functionalities
- code optimization;
- add geojson file name in Layers Control (overlay layers section), new anyway_overlay_layers_control boolean property;