如何在WPF版GMAP 中创建路线

GMapRoute gmRoute = new GMapRoute(new List<PointLatLng>() {

point_last, //上一次的位置

point_show //当前显示的位置

})  {  

Shape = new Line()     {

StrokeThickness = 4,

Stroke = System.Windows.Media.Brushes.BlueViolet 

}

};

  mapControl.Markers.Add(gmRoute);

WPF使用GMap.NET创建一个多边形并且允许用户通过鼠标长按时拖动它,你可以使用`GMapPolygon`控件并结合`MouseLeftButtonDown`、`MouseMove`和`MouseLeftButtonUp`事件。首先,你需要添加必要的NuGet包 `GMap.NET.WindowsForms` 和 `GMap.NET.MapProviders`。 下面是一个简单的示例代码: ```xml <Window x:Class="YourNamespace.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:gmap="clr-namespace:GMap.NET.WindowsForms;assembly=GMap.NET.WindowsForms" Title="MainWindow" Height="450" Width="800"> <Grid> <gmap:GMapControl Name="mapControl" DockPanel.Dock="Fill" Center="52.357500,-1.988591" Zoom="10"> <!-- 添加地图提供程序 --> <gmap:GMapProvider Name="provider" /> </gmap:GMapControl> </Grid> </Window> ``` 然后,在对应的`ViewModels`或者`CodeBehind`文件,处理鼠标事件: ```csharp using GMap.NET; using GMap.NET.MapProviders; using System.Windows.Input; public partial class MainWindow : Window { private GMapPolygon polygon; public MainWindow() { InitializeComponent(); // 设置地图提供程序 mapControl.MapProvider = provider; } private void MapControl_MouseDown(object sender, MouseEventArgs e) { if (e.LeftButton == MouseButtonState.Pressed) { // 初始化多边形 polygon = new GMapPolygon(new[] { /* 多边形顶点坐标 */ }, "YourPolygonName"); mapControl.Children.Add(polygon); polygon.MouseDown += Polygon_MouseDown; } } private void Polygon_MouseDown(object sender, MouseEventArgs e) { polygon.StartDragging(e.X, e.Y); } private void MapControl_MouseMove(object sender, MouseEventArgs e) { if (polygon != null && polygon.IsDragging) { polygon.Position = new Point(e.X, e.Y); } } private void MapControl_MouseUp(object sender, MouseEventArgs e) { polygon.EndDragging(); polygon.MouseDown -= Polygon_MouseDown; } } ```
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值