CartoVectorTileLayer
(и CartoOnlineVectorTileLayer, и CartoOfflineVectorTileLayer являются его подклассами) имеет для него метод setLanguage(String), например:
layer.setLanguage("en");
даст вам карты на английском языке.
В SDK 4.0.2 SDK и исходниках тайлов nutiteq.osm вы можете использовать следующие языки: локальный/по умолчанию (в вашем случае будет Казахстан), en, es , de, fr, it, ru, ж ( китайский), tr (турецкий) и et (эстонский) в качестве языка
Из CARTO SDK 4.1.0 и нового источника carto.streets вы можете использовать любой язык OSM. Я бы предложил настроить карту на основе настроек языка устройства, например:
// Android
layer.setLanguage(Locale.getDefault().getLanguage());
// iOs / Xamarin
layer.Language = Foundation.NSLocale.PreferredLanguages[0].Substring(0, 2);
Что делать, если конкретное имя недоступно на данном языке? Затем MapView по умолчанию переключится на «местный» язык, карта не будет пустой. Но если «местный» язык все еще нечитаем, то я бы предпочел имена на латинице? В SDK 4.1.0 вы можете настроить первичный и вторичный резервные языки, например. вы устанавливаете основной язык на «de» для немцев, а затем, чтобы избежать странных алфавитов (скажем, иврит, греческий, большая часть Азии), устанавливаете «en» в качестве основного запасного варианта; тогда local используется только в том случае, если отсутствуют как ваше основное, так и английское имя.
person
JaakL
schedule
05.09.2017