summaryrefslogtreecommitdiff
path: root/platform/android/src/geometry/lat_lng.cpp
diff options
context:
space:
mode:
authorIvo van Dongen <info@ivovandongen.nl>2017-02-06 13:20:15 +0200
committerTobrun <tobrun.van.nuland@gmail.com>2017-02-10 21:15:18 +0100
commit2fc070ca9995bf4ceb4599ce7a94bee7a03b10b4 (patch)
tree4941842058cfddbc87b0c989d7b572ad6cc821fa /platform/android/src/geometry/lat_lng.cpp
parent35b810dd6ddfc5e6f1a635b2682b3add5ec5d5bb (diff)
downloadqtlocation-mapboxgl-2fc070ca9995bf4ceb4599ce7a94bee7a03b10b4.tar.gz
[android] native map view refactoringupstream/ivovandongen-gl-sv
Diffstat (limited to 'platform/android/src/geometry/lat_lng.cpp')
-rw-r--r--platform/android/src/geometry/lat_lng.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/platform/android/src/geometry/lat_lng.cpp b/platform/android/src/geometry/lat_lng.cpp
new file mode 100644
index 0000000000..9cf3630107
--- /dev/null
+++ b/platform/android/src/geometry/lat_lng.cpp
@@ -0,0 +1,31 @@
+#include "lat_lng.hpp"
+
+namespace mbgl {
+namespace android {
+
+jni::Object<LatLng> LatLng::New(jni::JNIEnv& env, double latitude, double longitude) {
+ static auto constructor = LatLng::javaClass.GetConstructor<double, double>(env);
+ return LatLng::javaClass.New(env, constructor, latitude, longitude);
+}
+
+mbgl::Point<double> LatLng::getGeometry(jni::JNIEnv& env, jni::Object<LatLng> latLng) {
+ static auto latitudeField = LatLng::javaClass.GetField<jni::jdouble>(env, "latitude");
+ static auto longitudeField = LatLng::javaClass.GetField<jni::jdouble>(env, "longitude");
+ return mbgl::Point<double>(latLng.Get(env, longitudeField), latLng.Get(env, latitudeField));
+}
+
+mbgl::LatLng LatLng::getLatLng(jni::JNIEnv& env, jni::Object<LatLng> latLng) {
+ auto point = LatLng::getGeometry(env, latLng);
+ return mbgl::LatLng(point.y, point.x);
+}
+
+void LatLng::registerNative(jni::JNIEnv& env) {
+ // Lookup the class
+ LatLng::javaClass = *jni::Class<LatLng>::Find(env).NewGlobalRef(env).release();
+}
+
+jni::Class<LatLng> LatLng::javaClass;
+
+
+} // namespace android
+} // namespace mbgl \ No newline at end of file