我刚开始使用适用于Android的xamarin。我正在构建一个应用程序,使人们可以在地图上看到他们行走的轨迹。该地图是用位图手写的(这是一项学校作业,因此是必需的)。我需要保存点(在列表中所做的)并在点之间绘制点和线以创建轨道。
问题是我有一个foreach方法来绘制所有点,我只需要在点之间绘制线即可。我不知道如何确保我拥有先前点和新点的注册表,因此无法将坐标放入drawLine方法中。
轨迹是一个列表,它将当前GPS位置添加到列表中。由于我在地图上使用位图,因此我需要自己实现地图的哪些坐标与实际区域的坐标相对应。这就是比例所指的。
paint.Color = Color.Magenta;
PointF previousPoint;
foreach (PointF p in track)
{
Console.WriteLine("works");
// p is a track-point in RD-meters
// calculates distance to centre bitmap
float bpx = (p.X - centrePos.X) * 0.4f;
float bpy = (centrePos.Y - p.Y) * 0.4f;
// converter to screen pixels
float sx = bpx * this.Proportion;
float sy = bpy * this.Proportion;
// calculate to absolute scherm-pixels
float x = this.Width / 2 + sx;
float y = this.Height / 2 + sy;
canvas.DrawCircle(x, y, 10, paint);
previousPoint = p;
//draws the lines between the points
canvas.DrawLine(previousPoint.X, previousPoint.Y, x, y, verf);
}
所以现在previousPoint和p相同,应该更像p1和p2,但是计算出的代码与代码中描述的中心相同。