我目前的任务是在Visual C#2010 Express中创建一个小型C#应用程序,该应用程序加载CSV文件并处理信息以创建要在地图上显示的点阵列。 CSV中的条目如下:
设备;纬度;经度;速度;时间
57EA7531-0E1F-41C7-B785-22398D445FEA; 55.512.653; 13.306.292; 93; 13-4-2014 14:01
想法是加载此信息,拆分数据,将其指定为以下代码的不同属性:
ShapeLayer sl = new ShapeLayer("Marker");
wpfMap.Layers.Add(sl);
marker.Width = marker.Height = 20;
marker.ToolTip = "A map marker"; [needs to contain Device;Latitude;Longitude;Speed;Time]
sl.Shapes.Add(marker);
ShapeCanvas.SetLocation(marker, new System.Windows.Point(8.4, 49)); [needs to contain Longitude,Latitude]
中间注明[]是需要输入CSV的数据。
此CSV文件包含大约2000个条目,并且对于每个条目,需要使用上述代码创建点。我在加载CSV并使用处理过的数据创建数组方面经验非常有限,是否有人可以帮助我?
答案 0 :(得分:0)
有不同的方式。我会做那样的事。
注意即可。此解决方案中将需要异常处理。
string[] allLines = System.IO.File.ReadAllLines(@"yourCVSPath.csv");
foreach(string sLine in allLines)
{
string[] arrLine = sLine.Split(new char[] { ',' }); // or ';' according to provided data
if (arrLine.Length == 5)
{
string sDevice = arrLine[0];
string sLatitude = arrLine[1];
string sLongitude = arrLine[2];
string sSpeed = arrLine[3];
string sTime = arrLine[4];
ShapeLayer sl = new ShapeLayer("Marker");
wpfMap.Layers.Add(sl);
marker.Width = marker.Height = 20;
marker.ToolTip = sLine; //[needs to contain Device;Latitude;Longitude;Speed;Time]
sl.Shapes.Add(marker);
ShapeCanvas.SetLocation(marker, new System.Windows.Point(sLongitude, sLatitude)); //[needs to contain Longitude,Latitude]
}
}