Я только начинаю с xamarin для Android.Я создаю приложение, в котором человек может видеть трек, по которому он шел, на карте.Карта написана от руки с растровым изображением (это требование, так как это школьное задание).Мне нужно сохранить точки (что я и сделал в списке) и нарисовать точки и линии между точками, чтобы создать дорожку.
Проблема в том, что у меня есть метод 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, но рассчитаны для совпадения с тем же центром, как описано в коде.