#include "multi_line_string.hpp" #include "line_string.hpp" #include "util.hpp" namespace mbgl { namespace android { namespace geojson { jni::Object MultiLineString::New(jni::JNIEnv& env, const mbgl::MultiLineString& multiLineString) { static auto javaClass = jni::Class::Singleton(env); static auto method = javaClass.GetStaticMethod (jni::Object)>(env, "fromLngLats"); return javaClass.Call(env, method, *jni::SeizeLocal(env, asPointsListsList(env, multiLineString))); } mapbox::geojson::multi_line_string MultiLineString::convert(jni::JNIEnv &env, jni::Object jMultiLineString) { mapbox::geojson::multi_line_string multiLineString; if (jMultiLineString) { multiLineString = MultiLineString::convert(env, *jni::SeizeLocal(env, MultiLineString::coordinates(env, jMultiLineString))); } return multiLineString; } mapbox::geojson::multi_line_string MultiLineString::convert(jni::JNIEnv &env, jni::Object>*/> jPointListsList) { mapbox::geojson::multi_line_string multiLineString; if (jPointListsList) { auto jPositionListsArray = jni::SeizeLocal(env, java::util::List::toArray(env, jPointListsList)); auto size = jPositionListsArray->Length(env); multiLineString.reserve(size); for (std::size_t i = 0; i < size; i++) { multiLineString.push_back(LineString::convert(env, *jni::SeizeLocal(env, jPositionListsArray->Get(env, i)))); } } return multiLineString; } jni::Object MultiLineString::coordinates(jni::JNIEnv &env, jni::Object jLineString) { static auto javaClass = jni::Class::Singleton(env); static auto method = javaClass.GetMethod ()>(env, "coordinates"); return jLineString.Call(env, method); } void MultiLineString::registerNative(jni::JNIEnv &env) { jni::Class::Singleton(env); } } // namespace geojson } // namespace android } // namespace mbgl