diff options
author | Nicholas Hallahan <nick@theoutpost.io> | 2015-07-13 18:11:36 -0700 |
---|---|---|
committer | Nicholas Hallahan <nick@theoutpost.io> | 2015-07-13 18:11:36 -0700 |
commit | f710e9607a2d7b5817a84df5c33bcb6a441d2dd6 (patch) | |
tree | 2d3375d7bd4bb2197e0792b9e765c8d7ebd4d9e1 | |
parent | 7efa69ff24a05d4972c38308feb30f005b972a04 (diff) | |
download | qtlocation-mapboxgl-f710e9607a2d7b5817a84df5c33bcb6a441d2dd6.tar.gz |
Returning annotationIds as long from JNI in addMarker
-rw-r--r-- | android/cpp/jni.cpp | 11 | ||||
-rw-r--r-- | android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/views/NativeMapView.java | 2 |
2 files changed, 7 insertions, 6 deletions
diff --git a/android/cpp/jni.cpp b/android/cpp/jni.cpp index 7b905598cf..23a297220f 100644 --- a/android/cpp/jni.cpp +++ b/android/cpp/jni.cpp @@ -434,7 +434,7 @@ void JNICALL nativeSetLatLng(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, j nativeMapView->getMap().setLatLng(mbgl::LatLng(latitude, longitude), std::chrono::milliseconds(duration)); } -void JNICALL nativeAddMarker(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, jobject latLng) { +jlong JNICALL nativeAddMarker(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, jobject latLng) { mbgl::Log::Debug(mbgl::Event::JNI, "nativeAddMarker"); assert(nativeMapViewPtr != 0); NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr); @@ -442,16 +442,17 @@ void JNICALL nativeAddMarker(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, j jdouble latitude = env->GetDoubleField(latLng, latLngLatitudeId); if (env->ExceptionCheck()) { env->ExceptionDescribe(); - return; + return -1; } jdouble longitude = env->GetDoubleField(latLng, latLngLongitudeId); if (env->ExceptionCheck()) { env->ExceptionDescribe(); - return; + return -1; } - nativeMapView->getMap().addPointAnnotation(mbgl::PointAnnotation(mbgl::LatLng(latitude, longitude), std::string("default_marker"))); + // Because Java only has int, not unsigned int, we need to bump the annotation id up to a long. + return (jlong) nativeMapView->getMap().addPointAnnotation(mbgl::PointAnnotation(mbgl::LatLng(latitude, longitude), std::string("default_marker"))); } jobject JNICALL nativeGetLatLng(JNIEnv *env, jobject obj, jlong nativeMapViewPtr) { @@ -997,7 +998,7 @@ extern "C" JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved) { {"nativeMoveBy", "(JDDJ)V", reinterpret_cast<void *>(&nativeMoveBy)}, {"nativeSetLatLng", "(JLcom/mapbox/mapboxgl/geometry/LatLng;J)V", reinterpret_cast<void *>(&nativeSetLatLng)}, - {"nativeAddMarker", "(JLcom/mapbox/mapboxgl/geometry/LatLng;)V", + {"nativeAddMarker", "(JLcom/mapbox/mapboxgl/geometry/LatLng;)J", reinterpret_cast<void *>(&nativeAddMarker)}, {"nativeGetLatLng", "(J)Lcom/mapbox/mapboxgl/geometry/LatLng;", reinterpret_cast<void *>(&nativeGetLatLng)}, diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/views/NativeMapView.java b/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/views/NativeMapView.java index c1969c9618..6d4f026b1e 100644 --- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/views/NativeMapView.java +++ b/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/views/NativeMapView.java @@ -449,7 +449,7 @@ class NativeMapView { private native void nativeSetLatLng(long nativeMapViewPtr, LatLng latLng, long duration); - private native void nativeAddMarker(long nativeMapViewPtr, LatLng latLng); + private native long nativeAddMarker(long nativeMapViewPtr, LatLng latLng); private native LatLng nativeGetLatLng(long nativeMapViewPtr); |