[map] Save points altitudes when saving route as a track (#10759)

[map] Save points altitudes when saving route as a track

Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
This commit is contained in:
Kiryl Kaveryn
2025-06-24 18:19:09 +04:00
committed by Konstantin Pastbin
parent 21cc2bbf52
commit cc6958282b
8 changed files with 31 additions and 18 deletions

View File

@@ -1297,7 +1297,7 @@ Java_app_organicmaps_Framework_nativeGetRouteFollowingInfo(JNIEnv * env, jclass)
JNIEXPORT jobjectArray JNICALL
Java_app_organicmaps_Framework_nativeGetRouteJunctionPoints(JNIEnv * env, jclass)
{
vector<m2::PointD> junctionPoints;
vector<geometry::PointWithAltitude> junctionPoints;
if (!frm()->GetRoutingManager().RoutingSession().GetRouteJunctionPoints(junctionPoints))
{
LOG(LWARNING, ("Can't get the route junction points"));

View File

@@ -2,19 +2,20 @@
#include "app/organicmaps/core/jni_helper.hpp"
#include "geometry/point2d.hpp"
#include "geometry/point_with_altitude.hpp"
#include <vector>
jobjectArray CreateJunctionInfoArray(JNIEnv * env, std::vector<m2::PointD> const & junctionPoints)
jobjectArray CreateJunctionInfoArray(JNIEnv * env, std::vector<geometry::PointWithAltitude> const & junctionPoints)
{
static jclass const junctionClazz = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/routing/JunctionInfo");
// Java signature : JunctionInfo(double lat, double lon)
static jmethodID const junctionConstructor = jni::GetConstructorID(env, junctionClazz, "(DD)V");
return jni::ToJavaArray(env, junctionClazz, junctionPoints,
[](JNIEnv * env, m2::PointD const & point)
[](JNIEnv * env, geometry::PointWithAltitude const & pointWithAltitude)
{
auto & point = pointWithAltitude.GetPoint();
return env->NewObject(junctionClazz, junctionConstructor, mercator::YToLat(point.y),
mercator::XToLon(point.x));
});