我想在基于 OpenStreetMap 的地图上显示 100 万个位置。
我在 C# VS2013 和 GMAP.NET WPF 上工作。但是,当我为每个位置添加标记时,地图无法显示,因为标记是位图图像。并且 100 万个标记在我的笔记本电脑上消耗了太多内存(使用 8 GB 内存)。
代码是:
public void add_marker(List<Tuple<double, double>> latLongList, ref GMapControl myMap)
{
System.Windows.Media.Imaging.BitmapImage bitmapImage = new BitmapImage();
bitmapImage.BeginInit();
bitmapImage.UriSource = new Uri(@"C:\djx_2014_6_3\my_projects\test_gmap_dot_net\GMap_WPF\try1\try_gmap_wpf\try_gmap_wpf\images\map_marker.png", UriKind.Absolute);
bitmapImage.DecodePixelHeight = 5;
bitmapImage.DecodePixelWidth = 5;
bitmapImage.EndInit();
foreach(var v in latLongList)
{
GMap.NET.PointLatLng point = new GMap.NET.PointLatLng(v.Item1, v.Item2);
GMapMarker marker = new GMapMarker(point);
System.Windows.Controls.Image image = new System.Windows.Controls.Image();
image.Source = bitmapImage;
marker.Shape = image;
marker.ZIndex = 5;
myMap.Markers.Add(marker);
}
}
我不想将图像用作标记,但我不知道如何在 openStreetMap 中使用默认标记。
任何帮助,将不胜感激。