Codenizer.Avalonia.Map 0.3.0

dotnet add package Codenizer.Avalonia.Map --version 0.3.0                
NuGet\Install-Package Codenizer.Avalonia.Map -Version 0.3.0                
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用 NuGet 模块的 Install-Package 版本。
<PackageReference Include="Codenizer.Avalonia.Map" Version="0.3.0" />                
对于支持 PackageReference 的项目,将此 XML 节复制到项目文件中以引用包。
paket add Codenizer.Avalonia.Map --version 0.3.0                
#r "nuget: Codenizer.Avalonia.Map, 0.3.0"                
#r 指令可以在 F# Interactive 和多语言笔记本中使用。将其复制到交互式工具或脚本的源代码中以引用包。
// Install Codenizer.Avalonia.Map as a Cake Addin
#addin nuget:?package=Codenizer.Avalonia.Map&version=0.3.0

// Install Codenizer.Avalonia.Map as a Cake Tool
#tool nuget:?package=Codenizer.Avalonia.Map&version=0.3.0                

Codenizer.Avalonia.Map

Avalonia UI 控件,用于构建可缩放和可滚动的地图。

用法

在您的项目中引用 Codenizer.Avalonia.Map NuGet 包。

将必要的命名空间添加到您想包含控件的 AXAML 文件中

<Window xmlns="https://github.com/avaloniaui"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:map="clr-namespace:Codenizer.Avalonia.Map;assembly=Codenizer.Avalonia.Map" 

添加控件

<map:Map
            VerticalAlignment="Stretch"
            HorizontalAlignment="Stretch"
            Name="TestMap"
            MapObjectSelected="Map_OnMapObjectSelected"/>

然后从代码中向地图中添加对象,以便它们被渲染

TestMap.MapObjects.Add(new Square("redSquare", 0, 0, 1000, 1000, "#FF0000"));
TestMap.MapObjects.Add(new Square("greenSquare", 100, 100, 800, 800, "#00FF00"));
TestMap.MapObjects.Add(new Square("blueSquare", 400, 400, 200, 200, "#0000FF"));
TestMap.MapObjects.Add(new Square("yellowSquare", 700, 200, 100, 100, "#FFCC00"));

TestMap.MapObjects.Add(new Point("point1", 100, 100, 2, "#000000"));
TestMap.MapObjects.Add(new Point("point2", 400, 400, 2, "#000000"));
TestMap.MapObjects.Add(new Point("point3", 700, 200, 2, "#000000"));
TestMap.MapObjects.Add(new Point("point4", 750, 250, 2, "#000000"));

并观察结果: 已渲染地图的截图

有关更多详细信息,请参阅 MapTest 示例应用程序。

功能

控件支持缩放和平移。这些主要通过控件本身的方法来控制,例如

  • ZoomAll 确保所有添加到控件中的对象都将可见
  • ZoomExtent 将提供的对象拟合到视口中(带有一些额外的填充以提高美观性)
  • Zoom 支持缩放到任意级别和中心位置

此外,控件直接支持鼠标滚轮缩放。平移通过在控件上执行拖动操作来处理。

控件提供了一个 MapObjectSelected 事件,在单击一个可选择的(见下文)对象后触发。只有在光标下方有对象时才会触发。

向控件添加对象

控件支持以下内置对象类型

  • 方形
  • 路径
  • 图片

可以通过从 MapObject 继承来创建自定义对象,它提供以下属性和方法

  • Name 这是 ZoomExtent 使用的标识符
  • Bounds 对象的外围边界
  • IsSelectable,一个标志,表示是否可以通过单击选择此对象
  • IsVisible,一个标志,表示是否应该渲染此对象
  • Contains(position),当给定的位置在此对象边界内时返回true。如果您的形状复杂,则很有用。
  • TightContains(position),允许在位置上执行更具体的命中测试。如果您的形状很复杂,那么这很有用。
产品 兼容的和额外的计算目标框架版本。
.NET net6.0 兼容。 net6.0-android 已计算。 net6.0-ios 已计算。 net6.0-maccatalyst 已计算。 net6.0-macos 已计算。 net6.0-tvos 已计算。 net6.0-windows 已计算。 net7.0 已计算。 net7.0-android 已计算。 net7.0-ios 已计算。 net7.0-maccatalyst 已计算。 net7.0-macos 已计算。 net7.0-tvos 已计算。 net7.0-windows 已计算。 net8.0 已计算。 net8.0-android 已计算。 net8.0-browser 已计算。 net8.0-ios 已计算。 net8.0-maccatalyst 已计算。 net8.0-macos 已计算。 net8.0-tvos 已计算。 net8.0-windows 已计算。
兼容的目标框架
包含的目标框架(在包中)
有关目标框架.NET 标准化的更多信息。
  • net6.0

    • 无依赖项。

NuGet 包

此包不被任何 NuGet 包使用。

GitHub 仓库

此包不被任何流行的 GitHub 仓库使用。

版本 下载 最后更新
0.3.0 609 8/27/2023
0.2.0 854 11/6/2022
0.1.0 425 11/6/2022