#pragma once #include "../../conversion/conversion.hpp" #include #include #include "../../jni/local_object.hpp" #include "../position.hpp" namespace mbgl { namespace android { namespace conversion { template<> struct Converter, mbgl::style::Position> { Result> operator()(jni::JNIEnv &env, const mbgl::style::Position &value) const { std::array cartPosition = value.getSpherical(); return Position::fromPosition(env, cartPosition[0], cartPosition[1], cartPosition[2]); } }; template<> struct Converter> { Result operator()(jni::JNIEnv &env, const jni::Object &value) const { float radialCoordinate = Position::getRadialCoordinate(env, value); float azimuthalAngle = Position::getAzimuthalAngle(env, value); float polarAngle = Position::getPolarAngle(env, value); std::array cartPosition {{radialCoordinate, azimuthalAngle, polarAngle}}; mbgl::style::Position position{}; position.set(cartPosition); return position; } }; } } }