前言
今天大姚給大家分享一個.NET開源(MIT License)、免費、同時支持多平臺框架(MAUI、WPF、Avalonia、Uno、Blazor、WinUI、Eto、.NET Android 和 .NET iOS)地圖組件庫:Mapsui。
項目源代碼
![](/files/attmgn/2024/6/admin20240625215708190_0.jpg)
支持的UI框架的NuGet包
![](/files/attmgn/2024/6/admin20240625215708342_1.jpg)
創建Blazor WebAssembly應用
創建名為:MapsuiExercise
的Blazor WebAssembly應用。
![](/files/attmgn/2024/6/admin20240625215708482_2.jpg)
![](/files/attmgn/2024/6/admin20240625215708550_3.jpg)
![](/files/attmgn/2024/6/admin20240625215708592_4.jpg)
安裝Mapsui.Blazor NuGet包
在NuGet包管理器中搜索:Mapsui.Blazor
安裝。
![](/files/attmgn/2024/6/admin20240625215708631_5.jpg)
地圖組件完整代碼
@page "/"
@using Mapsui.UI.Blazor
<PageTitle>MapsuiExercise</PageTitle>
<div class="container">
<div class="row">
<div class="col border rounded p-2 canvas-container">
<MapControlComponent @ref="_mapControl" />
</div>
</div>
</div>
<style>
.canvas-container canvas {
width: 100%;
height: 80vh;
}
</style>
@code
{
private MapControl? _mapControl;
protected override void OnAfterRender(bool firstRender)
{
base.OnAfterRender(firstRender);
if (firstRender)
{
if (_mapControl != null)
_mapControl.Map?.Layers.Add(Mapsui.Tiling.OpenStreetMap.CreateTileLayer());
}
}
}
運行效果展示
![](/files/attmgn/2024/6/admin20240625215708728_6.jpg)
![](/files/attmgn/2024/6/admin20240625215708943_7.jpg)
![](/files/attmgn/2024/6/admin20240625215709164_8.jpg)
項目源碼地址
該文章在 2024/6/25 21:59:33 編輯過