We just rolled out improved support for Chinese, Japanese, and Korean (CJK) labels in Mapbox GL JS and GL Native. With our GL improvements that accommodate a larger glyph atlas and character range, non-Latin characters and place names are now rendered fully and crisply, powered by the speed of our vector tiles.

Our improvements also allow the same design control over text label widths and line breaking that we offer for Latin character sets, using line breaking and character rotation rules that cater to CJK text, as Chinese text does not use spaces for word wrapping and each character tends to have a word-like meaning. You can learn more about the intricacies of rendering glyphs on GL from Konstantin’s blog post about drawing text.

Check out the map below for the top 8 Chinese restaurants in San Francisco, showcasing our improved CJK support. Whether you’re an American tourist in Beijing, or a Chinese tourist in San Francisco, knowing where you are on the map is important, and GL JS labels are here to help. And whether you’re a tourist or a long-time resident of San Francisco, knowing the best Chinese restaurants in the Bay Area is a necessity.

We’re working on adding further support for multiple languages in GL JS and GL Native, including right to left language (bi-directional) labels, more precise vertical labels, and text that requires connections between glyphs. Both GL JS and GL Native are open-source, so we invite you to join the fun and contribute!