C#课设-数据可视化大屏-T3 第三方库GMap的使用

本文主要实现了两个功能,视频文件(MP4格式)的读取第三方库GMap.net的使用。

视频文件读取

        在之前预留的播放视频的位置添加MediaElement模块,并添加单个视频播放完之后的处理时间,示例代码如下:

<DockPanel  Grid.Row="1" Grid.Column="1" Background="Beige">
    <Label DockPanel.Dock="Top" FontSize="9"  >视频区</Label>
    <MediaElement x:Name="me1" MediaEnded ="media_MediaEnded"></MediaElement>
</DockPanel>

读取视频文件的方式和前面读取相关数据的方式一样。具体播放视频的方法如下:

//MeidaPath为视频文件的地址
me1.Source = new Uri(MeidaPath);
//全屏播放
me1.Stretch = Stretch.Fill;
me1.LoadedBehavior = MediaState.Manual;
me1.Play();
//音量设置为0
me1.Volume = 0;

要实现循环播放的功能,在添加MediaElement模块时添加了media_MediaEnded事件,具体代码与注释如下:

private void media_MediaEnded(object sender, RoutedEventArgs e)
{
    MediaElement me = (sender as MediaElement);
    me.Position =TimeSpan.Zero;
    me.Play();
}

第三方库GMap.net

引入第三方库的方法和前文一致。

首先设置地图的缓存位置,与数据放在同一个文件夹。

string BasePath = System.AppDomain.CurrentDomain.BaseDirectory;
//设置地图缓存位置
string cachepath = BasePath + "MapData";

之后将地图赋给添加的地图模块,并设置缩放级别,地图的起始点等等。

<DockPanel  Grid.Row="3" Grid.Column="1" Grid.RowSpan="2"  Grid.ColumnSpan="2" Background="AliceBlue">
    <Label DockPanel.Dock="Top">功能区a</Label>
    <windowspresentation:GMapControl x:Name="gmap"></windowspresentation:GMapControl>
</DockPanel>
//将设置的地址赋值给gmap
gmap.CacheLocation = cachepath;
//使用微软的卫星地图
gmap.MapProvider = GMapProviders.BingSatelliteMap;
//指定缩放级别
gmap.MinZoom = 2;
gmap.MaxZoom = 16;
//设置当前的缩放级别
gmap.Zoom = 4;
//设置是否显示中心的十字
gmap.ShowCenter = true;
//设置拖拽的键盘
 gmap.DragButton = MouseButton.Right;
//设置起始的坐标点
gmap.Position = new PointLatLng(34.8, 104.7);

接着读取数据,数据包括五列(名字、城市、经度、维度、常量),同样我们需要声明这样的数据类型,此处与之前略微不同,有疑问可私信,读取数据的方法与之前一致,此处不再赘述。之后将这些点标注在地图之上,实例代码如下:

//将数据标注到地图上
gmap.Markers.Clear();
for (int i = 0; i < dp.names.Count; i++)
{
    PointLatLng pll = new PointLatLng(dp.names[i].Lat, dp.names[i].Lon);
    GMapMarker gmm = new GMapMarker(pll);

    Ellipse e = new Ellipse();
    e.Width = 10;
    e.Height = 10;
    //填充颜色
    /e.Fill = Brushes.Red;
    //放射性填充
    e.Fill = new RadialGradientBrush(Colors.Yellow,Colors.Green);
    //鼠标悬停的提示
    e.ToolTip = dp.names[i].Name + ":\r\n" + dp.names[i].Production + "万吨";
    e.Cursor = Cursors.Hand;
    
    gmm.Shape = e;                     
    gmap.Markers.Add(gmm);
}

同样我们可以添加双击放大事件,整体效果图下图所示:

其中,点击原点显示相应的信息,鼠标形状改变等等细节均为在本文中说明与解释,大家可私信获得源码与答疑,如果对大家有帮助可以点赞,收藏,关注三连~~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值