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
NuGet 团队不提供对此客户端的支持。请联系其 维护者 获取支持。
#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
NuGet 团队不提供对此客户端的支持。请联系其 维护者 获取支持。
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 已计算。 |
-
net6.0
- 无依赖项。
NuGet 包
此包不被任何 NuGet 包使用。
GitHub 仓库
此包不被任何流行的 GitHub 仓库使用。