WPF自定义标记图标中的GMap.net

时间:2018-08-13 15:38:25

标签: wpf marker gmap.net

我想在WPF中使用GMAP.NET 我添加了GMap.NET.Core.dll和GMap.NET.WindowsForms.dll作为对我的项目的引用。 在此document的帮助下,我使用的是GMAP.Net,但使用的是WPF。现在,我想为标记使用一个自定义图标,但找不到方法。 我的代码如下

 gmap.MapProvider = GMap.NET.MapProviders.BingMapProvider.Instance;
        GMap.NET.GMaps.Instance.Mode = GMap.NET.AccessMode.ServerOnly; 
        gmap.Position = new GMap.NET.PointLatLng(35.6960617168288, 51.4005661010742);
        gmap.ShowCenter = false;

        GMap.NET.WindowsPresentation.GMapMarker marker = new GMap.NET.WindowsPresentation.GMapMarker(new GMap.NET.PointLatLng(35.6960617168288, 51.4005661010742));
        marker.Shape = new Ellipse
        {
            Width = 10,
            Height = 10,
            Stroke = Brushes.Red,
            StrokeThickness = 1.5,
            ToolTip = "This is tooltip",
            Visibility=Visibility.Visible,
            Fill=Brushes.Red,

        };
        gmap.Markers.Add(marker);

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

使用Image的实例作为Shape属性的值:

marker.Shape = new Image
{
    Width = 10,
    Height = 10,
    Source = new BitmapImage(new System.Uri("pack://application:,,,/assets/marker.png"))
};

答案 1 :(得分:0)

更多搜索后,我发现此代码有效:

 System.Windows.Media.Imaging.BitmapImage bitmapImage = new System.Windows.Media.Imaging.BitmapImage();
        bitmapImage.BeginInit();
        bitmapImage.UriSource = new Uri(@"D:\s.gif");
        bitmapImage.EndInit();
        GMap.NET.WindowsPresentation.GMapMarker marker2 = new GMap.NET.WindowsPresentation.GMapMarker(new GMap.NET.PointLatLng(35.6960617168288, 51.4005661010742));
        System.Windows.Controls.Image image = new System.Windows.Controls.Image();
        image.Source = bitmapImage;
        marker2.Shape = image;
        gmap.Markers.Add(marker2); 

link帮助了我。