mirror of
https://github.com/vicliu624/trail-mate.git
synced 2026-08-29 07:08:27 +00:00
0.1.26-alpha release
* refactor: render chat rows from presentation state * Fix Meshtastic channel sync and add MeshCore CN preset * Add granular chat notification settings * Add SD settings backup and restore * Prepare 0.1.26-alpha release --------- Co-authored-by: vicliu624 <vicliu@outlook.com>
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
#include "ui_map_runtime/map_overlay_projection_adapter.h"
|
||||
|
||||
namespace ui
|
||||
{
|
||||
namespace map_overlay
|
||||
{
|
||||
namespace
|
||||
{
|
||||
|
||||
constexpr std::size_t kMaxTeamPoints = 16;
|
||||
|
||||
} // namespace
|
||||
|
||||
bool MapOverlayProjectionAdapter::project(
|
||||
const IMapOverlayGpsSource* gps,
|
||||
const IMapOverlayTeamSource* team,
|
||||
::ui::map::MapOverlaySnapshot& out) const
|
||||
{
|
||||
out = ::ui::map::MapOverlaySnapshot{};
|
||||
out.header.valid = true;
|
||||
out.header.version = 1;
|
||||
|
||||
if (gps != nullptr)
|
||||
{
|
||||
double lat = 0.0;
|
||||
double lon = 0.0;
|
||||
bool valid = false;
|
||||
if (gps->currentFix(lat, lon, valid))
|
||||
{
|
||||
(void)projector_.projectCurrentPosition(lat, lon, valid, out);
|
||||
}
|
||||
}
|
||||
|
||||
if (team != nullptr)
|
||||
{
|
||||
IMapOverlayTeamSource::TeamPoint points[kMaxTeamPoints]{};
|
||||
const std::size_t count = team->latestTeamPoints(points, kMaxTeamPoints);
|
||||
for (std::size_t i = 0; i < count && i < kMaxTeamPoints; ++i)
|
||||
{
|
||||
(void)projector_.projectTeamMember(points[i].node_id,
|
||||
points[i].label,
|
||||
points[i].lat,
|
||||
points[i].lon,
|
||||
points[i].valid,
|
||||
out);
|
||||
}
|
||||
if (count > kMaxTeamPoints)
|
||||
{
|
||||
out.truncated = true;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace map_overlay
|
||||
} // namespace ui
|
||||
Reference in New Issue
Block a user