Welcome to mirror list, hosted at ThFree Co, Russian Federation.

track.cpp « map - github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: fa9cc3a02eae4773ecbc862e38535a1fbb91c13f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include "map/track.hpp"

#include "geometry/mercator.hpp"

#include "drape/color.hpp"

#include "geometry/distance_on_sphere.hpp"

Track::Track(Track::PolylineD const & polyline, Track::Params const & p)
  : m_polyline(polyline)
  , m_params(p)
{
  ASSERT_GREATER(m_polyline.GetSize(), 1, ());
}

string const & Track::GetName() const
{
  return m_params.m_name;
}

m2::RectD Track::GetLimitRect() const
{
  return m_polyline.GetLimitRect();
}

double Track::GetLengthMeters() const
{
  double res = 0.0;

  PolylineD::TIter i = m_polyline.Begin();
  double lat1 = MercatorBounds::YToLat(i->y);
  double lon1 = MercatorBounds::XToLon(i->x);
  for (++i; i != m_polyline.End(); ++i)
  {
    double const lat2 = MercatorBounds::YToLat(i->y);
    double const lon2 = MercatorBounds::XToLon(i->x);
    res += ms::DistanceOnEarth(lat1, lon1, lat2, lon2);
    lat1 = lat2;
    lon1 = lon2;
  }

  return res;
}

size_t Track::GetLayerCount() const
{
  return m_params.m_colors.size();
}

dp::Color const & Track::GetColor(size_t layerIndex) const
{
  return m_params.m_colors[layerIndex].m_color;
}

float Track::GetWidth(size_t layerIndex) const
{
  return m_params.m_colors[layerIndex].m_lineWidth;
}

float Track::GetLayerDepth(size_t layerIndex) const
{
  return 0 + layerIndex * 10;
}

size_t Track::GetPointCount() const
{
  return m_polyline.GetSize();
}

m2::PointD const & Track::GetPoint(size_t pointIndex) const
{
  return m_polyline.GetPoint(pointIndex);
}