diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/snapshotter/MapSnapshotter.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/snapshotter/MapSnapshotter.java index a4f1f2e75..93b7dd926 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/snapshotter/MapSnapshotter.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/snapshotter/MapSnapshotter.java @@ -95,6 +95,7 @@ public class MapSnapshotter { private LatLngBounds region; private CameraPosition cameraPosition; private boolean showLogo = true; + private String localIdeographFontFamily; /** * @param width the width of the image @@ -171,6 +172,22 @@ public class MapSnapshotter { return this; } + /** + * Set the font family for generating glyphs locally for ideographs in the 'CJK Unified Ideographs' + * and 'Hangul Syllables' ranges. + *
+ * The font family argument is passed to {@link android.graphics.Typeface#create(String, int)}.
+ * Default system fonts are defined in '/system/etc/fonts.xml'
+ *
+ * @param fontFamily font family for local ideograph generation.
+ * @return the mutated {@link Options}
+ */
+ @NonNull
+ public Options withLocalIdeographFontFamily(String fontFamily) {
+ this.localIdeographFontFamily = fontFamily;
+ return this;
+ }
+
/**
* @return the width of the image
*/
@@ -214,6 +231,14 @@ public class MapSnapshotter {
public CameraPosition getCameraPosition() {
return cameraPosition;
}
+
+ /**
+ * @return the font family used for locally generating ideographs
+ */
+ public String getLocalIdeographFontFamily() {
+ return localIdeographFontFamily;
+ }
+
}
/**
@@ -231,7 +256,7 @@ public class MapSnapshotter {
nativeInitialize(this, fileSource, options.pixelRatio, options.width,
options.height, options.styleUrl, options.styleJson, options.region, options.cameraPosition,
- options.showLogo, programCacheDir);
+ options.showLogo, programCacheDir, options.localIdeographFontFamily);
}
/**
@@ -513,7 +538,8 @@ public class MapSnapshotter {
FileSource fileSource, float pixelRatio,
int width, int height, String styleUrl, String styleJson,
LatLngBounds region, CameraPosition position,
- boolean showLogo, String programCacheDir);
+ boolean showLogo, String programCacheDir,
+ String localIdeographFontFamily);
@Keep
protected native void nativeStart();
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/snapshot/MapSnapshotterActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/snapshot/MapSnapshotterActivity.java
index aadf021a8..9f1e7b995 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/snapshot/MapSnapshotterActivity.java
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/snapshot/MapSnapshotterActivity.java
@@ -68,7 +68,8 @@ public class MapSnapshotterActivity extends AppCompatActivity {
.withPixelRatio(1)
// Optionally the style
- .withStyle((column + row) % 2 == 0 ? Style.MAPBOX_STREETS : Style.DARK);
+ .withStyle((column + row) % 2 == 0 ? Style.MAPBOX_STREETS : Style.DARK)
+ .withLocalIdeographFontFamily("sans-serif");
// Optionally the visible region
if (row % 2 == 0) {
diff --git a/platform/android/src/snapshotter/map_snapshotter.cpp b/platform/android/src/snapshotter/map_snapshotter.cpp
index e2e01f4e3..a5f44a1d4 100644
--- a/platform/android/src/snapshotter/map_snapshotter.cpp
+++ b/platform/android/src/snapshotter/map_snapshotter.cpp
@@ -24,7 +24,8 @@ MapSnapshotter::MapSnapshotter(jni::JNIEnv& _env,
const jni::Object