#include "polygon.hpp" #include "../conversion/color.hpp" namespace mbgl { namespace android { mbgl::FillAnnotation Polygon::toAnnotation(jni::JNIEnv& env, const jni::Object& polygon) { static auto& javaClass = jni::Class::Singleton(env); static auto points = javaClass.GetField>(env, "points"); static auto holes = javaClass.GetField>(env, "holes"); static auto alpha = javaClass.GetField(env, "alpha"); static auto fillColor = javaClass.GetField(env, "fillColor"); static auto strokeColor = javaClass.GetField(env, "strokeColor"); mbgl::Polygon geometry { MultiPoint::toGeometry>(env, polygon.Get(env, points)) }; auto jHoleListsArray = java::util::List::toArray(env, polygon.Get(env, holes)); std::size_t jHoleListsSize = jHoleListsArray.Length(env); for (std::size_t i = 0; i < jHoleListsSize; i++) { geometry.push_back(MultiPoint::toGeometry>(env, jHoleListsArray.Get(env, i))); } mbgl::FillAnnotation annotation { geometry }; annotation.opacity = polygon.Get(env, alpha); annotation.color = *conversion::convert(env, polygon.Get(env, fillColor)); annotation.outlineColor = *conversion::convert(env, polygon.Get(env, strokeColor)); return annotation; } void Polygon::registerNative(jni::JNIEnv& env) { jni::Class::Singleton(env); } } // namespace android } // namespace mbgl