From f11de6990c2fb0ab7ad8636c61efc41d24f3e1fd Mon Sep 17 00:00:00 2001 From: Dmitry Kunin Date: Fri, 21 Jun 2013 16:36:29 +0300 Subject: [PATCH] [android] Integration of DMS. --- android/jni/com/mapswithme/maps/Framework.cpp | 8 ++++++++ android/src/com/mapswithme/maps/Framework.java | 7 +++++++ android/src/com/mapswithme/util/UiUtils.java | 5 +++-- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/android/jni/com/mapswithme/maps/Framework.cpp b/android/jni/com/mapswithme/maps/Framework.cpp index a75adf3b12..cea03defa2 100644 --- a/android/jni/com/mapswithme/maps/Framework.cpp +++ b/android/jni/com/mapswithme/maps/Framework.cpp @@ -5,6 +5,7 @@ #include "../core/render_context.hpp" #include "../../../../../map/framework.hpp" +#include "../../../../../map/measurement_utils.hpp" #include "../../../../../gui/controller.hpp" @@ -1036,4 +1037,11 @@ extern "C" const double merX = MercatorBounds::LonToX(lon); return Java_com_mapswithme_maps_Framework_nativeGetDistanceAndAzimut(env, clazz, merX, merY, cLat, cLon, north); } + + JNIEXPORT jobject JNICALL + Java_com_mapswithme_maps_Framework_nativeLatLon2DMS(JNIEnv * env, jclass clazz, jdouble lat, jdouble lon) + { + const string dms = MeasurementUtils::FormatLatLonAsDMS(lat, lon, false); + return jni::ToJavaString(env, dms); + } } diff --git a/android/src/com/mapswithme/maps/Framework.java b/android/src/com/mapswithme/maps/Framework.java index 6d58891508..a28da64855 100644 --- a/android/src/com/mapswithme/maps/Framework.java +++ b/android/src/com/mapswithme/maps/Framework.java @@ -114,12 +114,19 @@ public class Framework return nativeGetDistanceAndAzimutFromLatLon(lat, lon, cLat, cLon, north); } + public static String latLon2DMS(double lat, double lon) + { + return nativeLatLon2DMS(lat, lon); + } + /* * "Implementation" - native methods */ private native static DistanceAndAzimut nativeGetDistanceAndAzimut(double merX, double merY, double cLat, double cLon, double north); private native static DistanceAndAzimut nativeGetDistanceAndAzimutFromLatLon(double lat, double lon, double cLat, double cLon, double north); + private native static String nativeLatLon2DMS(double lat, double lon); + private native static String nativeGetGe0Url(double lat, double lon, double zoomLevel, String name); private native static String nativeGetNameAndAddress4Point(double lat, double lon); diff --git a/android/src/com/mapswithme/util/UiUtils.java b/android/src/com/mapswithme/util/UiUtils.java index 62c2a1d646..ab3be1163f 100644 --- a/android/src/com/mapswithme/util/UiUtils.java +++ b/android/src/com/mapswithme/util/UiUtils.java @@ -6,6 +6,8 @@ import android.view.View; import java.util.Locale; +import com.mapswithme.maps.Framework; + public final class UiUtils { @@ -16,8 +18,7 @@ public final class UiUtils public static String formatLatLonToDMS(double lat, double lon) { - // TODO add native conversion method - return "40°26′47″N 079°58′36″W"; + return Framework.latLon2DMS(lat, lon); } public static Drawable setCompoundDrawableBounds(Drawable d, int dimenId, Resources res)